<?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>169733</bug_id>
          
          <creation_ts>2017-03-15 21:28:44 -0700</creation_ts>
          <short_desc>[Cocoa] Web Automation: non-sticky virtual keys like &apos;left arrow&apos; don&apos;t work properly</short_desc>
          <delta_ts>2017-03-19 08:54:40 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>bburg</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1288445</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-03-15 21:28:44 -0700</bug_when>
    <thetext>This fixes several bugs which when combined prevent the arrow keys from being interpreted correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288446</commentid>
    <comment_count>1</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-03-15 21:29:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/30162608&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288464</commentid>
    <comment_count>2</comment_count>
      <attachid>304611</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-03-15 22:08:50 -0700</bug_when>
    <thetext>Created attachment 304611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288949</commentid>
    <comment_count>3</comment_count>
      <attachid>304759</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-03-16 23:04:43 -0700</bug_when>
    <thetext>Created attachment 304759
Proposed Fix (v2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289069</commentid>
    <comment_count>4</comment_count>
      <attachid>304759</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-03-17 11:12:01 -0700</bug_when>
    <thetext>Comment on attachment 304759
Proposed Fix (v2)

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

&gt; Source/WebKit2/UIProcess/Automation/ios/WebAutomationSessionIOS.mm:120
&gt; -        [eventsToBeSent addObject:[[[::WebEvent alloc] initWithKeyEventType:WebEventKeyDown timeStamp:CFAbsoluteTimeGetCurrent() characters:characters charactersIgnoringModifiers:characters modifiers:m_currentModifiers isRepeating:NO withFlags:inputFlags withInputManagerHint:nil keyCode:keyCode isTabKey:isTabKey] autorelease]];
&gt; +        [eventsToBeSent addObject:[[[::WebEvent alloc] initWithKeyEventType:WebEventKeyDown timeStamp:CFAbsoluteTimeGetCurrent() characters:characters charactersIgnoringModifiers:unmodifiedCharacters modifiers:m_currentModifiers isRepeating:NO withFlags:inputFlags withInputManagerHint:nil keyCode:keyCode isTabKey:isTabKey] autorelease]];

iOS build error, seems legit:

    CompileC WebAutomationSessionIOS.o
    Source/WebKit2/UIProcess/Automation/ios/WebAutomationSessionIOS.mm:120:180: error: use of undeclared identifier &apos;unmodifiedCharacters&apos;
            [eventsToBeSent addObject:[[[::WebEvent alloc] initWithKeyEventType:WebEventKeyDown timeStamp:CFAbsoluteTimeGetCurrent() characters:characters charactersIgnoringModifiers:unmodifiedCharacters modifiers:m_currentModifiers isRepeating:NO withFlags:inputFlags withInputManagerHint:nil keyCode:keyCode isTabKey:isTabKey] autorelease]];
                                                                                                                                                                                       ^</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289071</commentid>
    <comment_count>5</comment_count>
      <attachid>304759</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-03-17 11:28:32 -0700</bug_when>
    <thetext>Comment on attachment 304759
Proposed Fix (v2)

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

r=me, assuming you add unmodifiedCharacters to iOS similarly to how you did with Mac

&gt; Source/WebKit2/UIProcess/Automation/mac/WebAutomationSessionMac.mm:328
&gt; -        // The &apos;pause&apos; key does not exist on Apple keyboards and has no keycode.
&gt; +        // The &apos;pause&apos; key does not exist on Apple keyboards and has no return

Find and replace error.

&gt; Source/WebKit2/UIProcess/Automation/mac/WebAutomationSessionMac.mm:332
&gt; -        // The &apos;cancel&apos; key does not exist on Apple keyboards and has no keycode.
&gt; +        // The &apos;cancel&apos; key does not exist on Apple keyboards and has no return

Find and replace error.

&gt; Source/WebKit2/UIProcess/Automation/mac/WebAutomationSessionMac.mm:353
&gt; -        // The &apos;insert&apos; key does not exist on Apple keyboards and has no keycode.
&gt; +        // The &apos;insert&apos; key does not exist on Apple keyboards and has no return

Find and replace error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289097</commentid>
    <comment_count>6</comment_count>
      <attachid>304759</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-03-17 12:36:45 -0700</bug_when>
    <thetext>Comment on attachment 304759
Proposed Fix (v2)

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

&gt;&gt; Source/WebKit2/UIProcess/Automation/ios/WebAutomationSessionIOS.mm:120
&gt;&gt; +        [eventsToBeSent addObject:[[[::WebEvent alloc] initWithKeyEventType:WebEventKeyDown timeStamp:CFAbsoluteTimeGetCurrent() characters:characters charactersIgnoringModifiers:unmodifiedCharacters modifiers:m_currentModifiers isRepeating:NO withFlags:inputFlags withInputManagerHint:nil keyCode:keyCode isTabKey:isTabKey] autorelease]];
&gt; 
&gt; iOS build error, seems legit:
&gt; 
&gt;     CompileC WebAutomationSessionIOS.o
&gt;     Source/WebKit2/UIProcess/Automation/ios/WebAutomationSessionIOS.mm:120:180: error: use of undeclared identifier &apos;unmodifiedCharacters&apos;
&gt;             [eventsToBeSent addObject:[[[::WebEvent alloc] initWithKeyEventType:WebEventKeyDown timeStamp:CFAbsoluteTimeGetCurrent() characters:characters charactersIgnoringModifiers:unmodifiedCharacters modifiers:m_currentModifiers isRepeating:NO withFlags:inputFlags withInputManagerHint:nil keyCode:keyCode isTabKey:isTabKey] autorelease]];
&gt;                                                                                                                                                                                        ^

Yeah, I messed up the rebase. I&apos;ll test it locally again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289373</commentid>
    <comment_count>7</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-03-19 08:54:40 -0700</bug_when>
    <thetext>Committed r214144: &lt;http://trac.webkit.org/changeset/214144&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304611</attachid>
            <date>2017-03-15 22:08:50 -0700</date>
            <delta_ts>2017-03-16 23:04:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169733-20170315220849.patch</filename>
            <type>text/plain</type>
            <size>48707</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWY0ZDUzMjJiOTc3YTYy
NWM4YmQ1ODE1ZjI2MWZmNGM0MjE4YWU0OC4uZDJkNjNiMDY4MzYzZWFjNTM2YWFjYWY4ZDVkYWUx
MWI3ZWQwNDY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDE3LTAzLTE1ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIEF1dG9tYXRp
b246IG5vbi1zdGlja3kgdmlydHVhbCBrZXlzIGxpa2UgJ2xlZnQgYXJyb3cnIGRvbid0IHdvcmsg
cHJvcGVybHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2OTczMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzAxNjI2MDg+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlcmUgd2VyZSBzZXZlcmFsIGlz
c3VlcyB0aGF0IGNhdXNlZCBjZXJ0YWluIHZpcnR1YWwga2V5cyB0byBub3Qgd29yayBjb3JyZWN0
bHkuCisgICAgICAgIFdoZW4gYSB2aXJ0dWFsIGtleSBsaWtlICdsZWZ0IGFycm93JyB3YXMgZGlz
cGF0Y2hlZCBhcyBhIGtleWRvd24gZXZlbnQsIGl0IHdhcworICAgICAgICB1bHRpbWF0ZWx5IGJl
aW5nIHRyYW5zbGF0ZWQgaW50byBhbiBpbnNlcnRUZXh0OiBjb21tYW5kIGluc3RlYWQgb2YgbW92
ZUxlZnQ6LgorCisgICAgICAgICAtIFRoZSBhdXRvbWF0aW9uIGJyb3dzZXIgd2luZG93IHdhcyBu
b3QgcHJvcGVybHkgbWFkZSBrZXkgd2luZG93IGFuZCBhY3RpdmUsIHNvCisgICAgICAgICAgIEFw
cEtpdCBuZXZlciB0cmllZCB0byBtYXRjaCB0aGUgTlNFdmVudCBhcyBhIGtleSBlcXVpdmFsZW50
LiBUaGF0IGNvZGUgcGF0aAorICAgICAgICAgICBtdXN0IGJlIHRha2VuIGluIHRoaXMgY2FzZSwg
YXMgaXQgdHJhbnNsYXRlcyBhcnJvdyBrZXlzIGludG8gY29tbWFuZCBzZWxlY3RvcnMuCisKKyAg
ICAgICAgIC0gQXBwS2l0IHJlbGllcyBvbiBpdHMgb3duIHByaXZhdGUgdXNlIGFyZWEgKFBVQSkg
dW5pY29kZSBjaGFyYWN0ZXJzIHRvIGVuY29kZQorICAgICAgICAgICBjb250cm9sIGtleXMgdGhh
dCBkbyBub3QgYWZmZWN0IGtleSBtb2RpZmllciBzdGF0ZSwgbGlrZSB0aGUgYXJyb3cga2V5cy4K
KyAgICAgICAgICAgU2luY2UgdGhlc2UgUFVBIGNoYXJhY3RlcnMgd2VyZSBub3QgYmVpbmcgdXNl
ZCBhcyB0aGUgJ2NoYXJhY3RlcnMnIG9mIHRoZQorICAgICAgICAgICBOU0V2ZW50cyB3ZSBzeW50
aGVzaXplLCB0aGUgZXZlbnRzIGFyZSB0cmVhdGVkIGFzIHVua25vd24gYW5kIEFwcEtpdCBmYWxs
cworICAgICAgICAgICBiYWNrIHRvIGluc2VydGluZyB0aGUgY29kZXBvaW50IGFzIHVuaW50ZXJw
cmV0ZWQgdGV4dC4KKworICAgICAgICAgLSBUaGUgTWFjIGltcGxlbWVudGF0aW9uIG9mIHBsYXRm
b3JtU2ltdWxhdGVLZXlTdHJva2UgZGlkIG5vdCBhbGxvdyBub24tc3RpY2t5CisgICAgICAgICAg
IHZpcnR1YWwga2V5cyB0byB1c2UgdGhlICdJbnNlcnRCeUtleScgaW50ZXJhY3Rpb24gd2hpY2gg
c2VuZHMga2V5ZG93bitrZXl1cC4KKyAgICAgICAgICAgVGhpcyBpcyBhIHByb2dyYW1taW5nIG1p
c3Rha2UgdGhhdCBjYXVzZXMgc3VjaCBpbnB1dHMgdG8gYXNzZXJ0IGluIGRlYnVnIGJ1aWxkcwor
ICAgICAgICAgICBhbmQgYmFpbCBvdXQgdG8gZG8gbm90aGluZyBpbiBub24tZGVidWcgYnVpbGRz
LgorCisgICAgICAgICAtIEEgZmV3IHNpbXVsYXRlZCB2aXJ0dWFsIGtleXMgdGhhdCBhcmUgbWF0
Y2hlZCB0byBrZXkgZXF1aXZhbGVudHMgZGlkIG5vdCBwcm9wZXJseSBzZXQKKyAgICAgICAgICAg
J2NoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVycycgb24gTlNFdmVudHMsIHdoaWNoIG1heSB1c2Ug
dGhlIHdyb25nIGVkaXRpbmcgY29tbWFuZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0
aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21h
dGlvblNlc3Npb246OnBlcmZvcm1LZXlib2FyZEludGVyYWN0aW9ucyk6CisgICAgICAgIEZpeCB0
aGlzIGd1YXJkIHNvIHRoYXQgd2UgYWN0dWFsbHkgY2FsbCBpbnRvIGtleSBldmVudCBzeW50aGVz
aXMgY29kZSBmb3IgaU9TLgorCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb24uaDogQWRkIGRlY2xhcmF0aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BdXRvbWF0aW9uL2NvY29hL1dlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpjaGFyQ29kZUZvclZpcnR1YWxLZXkpOiBN
b3ZlZCBmcm9tIGlPUyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21h
dGlvblNlc3Npb246OmNoYXJDb2RlSWdub3JpbmdNb2RpZmllcnNGb3JWaXJ0dWFsS2V5KTogQWRk
ZWQuCisgICAgICAgIFRoZXJlIGFyZSBvbmx5IGEgZmV3IHNwZWNpYWwgY2FzZXMgZm9yIG5vdy4g
V2Ugd2lsbCBwcm9iYWJseSBuZWVkIHRvIGhhcmRjb2RlCisgICAgICAgIHRoZSBkZWNvbXBvc2l0
aW9uIGZvciBvdGhlciBBU0NJSSBjaGFyYWN0ZXJzIHNvIHRoZSBleHBlY3RlZCBET00gZXZlbnRz
IGFyZSBmaXJlZAorICAgICAgICB3aGVuIGVudGVyaW5nIGEgc2hpZnRlZCBjaGFyYWN0ZXIgKGku
ZS4sICdBJyBzaG91bGQgYmUgJ1NoaWZ0JysnYScsIG5vdCAnQScpLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0F1dG9tYXRpb24vaW9zL1dlYkF1dG9tYXRpb25TZXNzaW9uSU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVN0cm9r
ZSk6CisgICAgICAgIFVzZSBjaGFyQ29kZUlnbm9yaW5nTW9kaWZpZXJzRm9yVmlydHVhbEtleSgp
LgorCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vbWFjL1dlYkF1dG9tYXRpb25TZXNz
aW9uTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VuZFN5
bnRoZXNpemVkRXZlbnRzVG9QYWdlKTogdXNlIC1iZWNvbWVLZXlXaW5kb3cuCisgICAgICAgIChX
ZWJLaXQ6OmtleUhhc1N0aWNreU1vZGlmaWVyKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Omtl
eUNvZGVGb3JWaXJ0dWFsS2V5KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OmV2ZW50TW9kaWZp
ZXJGbGFnc0ZvclZpcnR1YWxLZXkpOkFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVN0cm9rZSk6CisgICAgICAgIFNlcGFyYXRl
bHkgY29tcHV0ZSBrZXkgc3RpY2tpbmVzcywga2V5Q29kZSwgZXZlbnQgbW9kaWZpZXIsIGFuZCBj
aGFyQ29kZSBmb3IKKyAgICAgICAgdGhlIHNpbXVsYXRlZCBrZXlzdHJva2UuIFRoZSBjb2RlIHRv
IGNvbXB1dGUgY2hhckNvZGUgaXMgbm93IHNoYXJlZCBiZXR3ZWVuCisgICAgICAgIGlPUyBhbmQg
bWFjT1Mgc2luY2UgdGhlIFBVQSBjaGFyYWN0ZXJzIGFyZSB0aGUgc2FtZSBmb3IgYm90aCBBcHBL
aXQgYW5kIFVJS2l0LgorCiAyMDE3LTAzLTEwICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29t
PgogCiAgICAgICAgIFtpT1MgV0syXSBXZWIgQXV0b21hdGlvbjogaW1wbGVtZW50IHBsYXRmb3Jt
IG1ldGhvZHMgZm9yIHNpbXVsYXRpbmcga2V5Ym9hcmQgZXZlbnRzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5jcHAKaW5kZXggYTFlZDVhMzUxZmE1YmE4ODY4N2ViOTExZDI4NjVjZWI1Njc4YzkwOC4uNDgy
NGYyZjcwNDJmMzkwZTMxMjIwMTY0YzAwMjliOTBhMjBmMzMzYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNz
aW9uLmNwcApAQCAtODIwLDcgKzgyMCw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBl
cmZvcm1Nb3VzZUludGVyYWN0aW9uKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9yCiAKIHZv
aWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBlcmZvcm1LZXlib2FyZEludGVyYWN0aW9ucyhFcnJv
clN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJbnNwZWN0
b3I6Okluc3BlY3RvckFycmF5JiBpbnRlcmFjdGlvbnMsIFJlZjxQZXJmb3JtS2V5Ym9hcmRJbnRl
cmFjdGlvbnNDYWxsYmFjaz4mJiBjYWxsYmFjaykKIHsKLSNpZiAhVVNFKEFQUEtJVCkKKyNpZiAh
UExBVEZPUk0oQ09DT0EpCiAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoTm90SW1wbGVt
ZW50ZWQpOwogI2Vsc2UKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JI
YW5kbGUoaGFuZGxlKTsKQEAgLTg5MCw3ICs4OTAsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNz
aW9uOjpwZXJmb3JtS2V5Ym9hcmRJbnRlcmFjdGlvbnMoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5n
LAogCiAgICAgZm9yIChhdXRvJiBhY3Rpb24gOiBhY3Rpb25zVG9QZXJmb3JtKQogICAgICAgICBh
Y3Rpb24oKTsKLSNlbmRpZiAvLyBVU0UoQVBQS0lUKQorI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09B
KQogfQogCiB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp0YWtlU2NyZWVuc2hvdChFcnJvclN0
cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBSZWY8VGFrZVNjcmVlbnNo
b3RDYWxsYmFjaz4mJiBjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCmluZGV4IGE0MmFmYWM4
ZmVjMWI4NGFmY2JlOWUwNzM5M2M1YWY2Yzg3YzQyNDAuLjg1ZDM2NmIyMmQ5ZDM1NmNmNDIwZDI2
OTA1OTg5ZDgwZjUzYjg2NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaApAQCAtNTQsNiArNTQsNyBA
QCBzdHJ1Y3QgQ29va2llOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiBPQkpDX0NMQVNTIE5TQXJy
YXk7Cit0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVuaWNoYXI7CiAjZW5kaWYKIAogI2lmIFVTRShB
UFBLSVQpCkBAIC0xNzIsOSArMTczLDEyIEBAIHByaXZhdGU6CiAgICAgLy8gR2V0IGJhc2U2NCBl
bmNvZGVkIFBORyBkYXRhIGZyb20gYSBiaXRtYXAuCiAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+
IHBsYXRmb3JtR2V0QmFzZTY0RW5jb2RlZFBOR0RhdGEoY29uc3QgU2hhcmVhYmxlQml0bWFwOjpI
YW5kbGUmKTsKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIC8vIFRoZSB0eXBlIHBhcmFtZXRlciBvZiB0aGUgTlNBcnJheSBhcmd1
bWVudCBpcyBwbGF0Zm9ybS1kZXBlbmRlbnQuCiAgICAgdm9pZCBzZW5kU3ludGhlc2l6ZWRFdmVu
dHNUb1BhZ2UoV2ViUGFnZVByb3h5JiwgTlNBcnJheSAqZXZlbnRzVG9TZW5kKTsKKworICAgIHN0
ZDo6b3B0aW9uYWw8dW5pY2hhcj4gY2hhckNvZGVGb3JWaXJ0dWFsS2V5KEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXkpIGNvbnN0OworICAgIHN0ZDo6b3B0aW9uYWw8
dW5pY2hhcj4gY2hhckNvZGVJZ25vcmluZ01vZGlmaWVyc0ZvclZpcnR1YWxLZXkoSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleSkgY29uc3Q7CiAjZW5kaWYKIAogICAg
IFdlYlByb2Nlc3NQb29sKiBtX3Byb2Nlc3NQb29sIHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vY29jb2EvV2ViQXV0b21hdGlvblNl
c3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2NvY29h
L1dlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0KaW5kZXggYmVhZGVjYjU3NDUyNmEwYmZhZmZl
ZmVkYmExNWY4ODRlMTJiNWY0NC4uMzhlYmQ1OGZmODJkOGJkNTliODI0N2ExODE2MDAxZGQwN2Vk
YzNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vY29j
b2EvV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9jb2NvYS9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tCkBAIC0z
MSw2ICszMSw3IEBACiAjaWYgUExBVEZPUk0oSU9TKQogI2luY2x1ZGUgPEltYWdlSU8vQ0dJbWFn
ZURlc3RpbmF0aW9uLmg+CiAjaW5jbHVkZSA8TW9iaWxlQ29yZVNlcnZpY2VzL1VUQ29yZVR5cGVz
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9LZXlFdmVudENvZGVzSU9TLmg+CiAjZW5kaWYKIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC01NSw2ICs1NiwxMzQgQEAgc3RkOjpvcHRpb25hbDxT
dHJpbmc+IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybUdldEJhc2U2NEVuY29kZWRQTkdE
YXRhKGNvbnMKICAgICByZXR1cm4gU3RyaW5nKFtpbWFnZURhdGEgYmFzZTY0RW5jb2RlZFN0cmlu
Z1dpdGhPcHRpb25zOjBdKTsKIH0KIAorc3RkOjpvcHRpb25hbDx1bmljaGFyPiBXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6Y2hhckNvZGVGb3JWaXJ0dWFsS2V5KEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXkga2V5KSBjb25zdAoreworICAgIHN3aXRjaCAoa2V5KSB7Cisg
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpTaGlm
dDoKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
OkNvbnRyb2w6CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0
dWFsS2V5OjpBbHRlcm5hdGU6CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpNZXRhOgorICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6Q29tbWFuZDoKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
OkhlbHA6CisgICAgICAgIHJldHVybiBOU0hlbHBGdW5jdGlvbktleTsKKyAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkJhY2tzcGFjZToKKyAgICAg
ICAgcmV0dXJuIE5TQmFja3NwYWNlQ2hhcmFjdGVyOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6VGFiOgorICAgICAgICByZXR1cm4gTlNUYWJD
aGFyYWN0ZXI7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0
dWFsS2V5OjpDbGVhcjoKKyAgICAgICAgcmV0dXJuIE5TQ2xlYXJMaW5lRnVuY3Rpb25LZXk7Cisg
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpFbnRl
cjoKKyAgICAgICAgcmV0dXJuIE5TRW50ZXJDaGFyYWN0ZXI7CisgICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYXVzZToKKyAgICAgICAgcmV0dXJu
IE5TUGF1c2VGdW5jdGlvbktleTsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OlZpcnR1YWxLZXk6OkNhbmNlbDoKKyAgICAgICAgLy8gVGhlICdjYW5jZWwnIGtleSBk
b2VzIG5vdCBleGlzdCBvbiBBcHBsZSBrZXlib2FyZHMgYW5kIGhhcyBubyBrZXljb2RlLgorICAg
ICAgICAvLyBBY2NvcmRpbmcgdG8gdGhlIGludGVybmV0IGl0cyBmdW5jdGlvbmFsaXR5IGlzIHNp
bWlsYXIgdG8gJ0VzY2FwZScuCisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpFc2NhcGU6CisgICAgICAgIHJldHVybiAweDFCOworICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6UGFnZVVwOgorICAg
ICAgICByZXR1cm4gTlNQYWdlVXBGdW5jdGlvbktleTsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlBhZ2VEb3duOgorICAgICAgICByZXR1cm4g
TlNQYWdlRG93bkZ1bmN0aW9uS2V5OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6RW5kOgorICAgICAgICByZXR1cm4gTlNFbmRGdW5jdGlvbktl
eTsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
OkhvbWU6CisgICAgICAgIHJldHVybiBOU0hvbWVGdW5jdGlvbktleTsKKyAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkxlZnRBcnJvdzoKKyAgICAg
ICAgcmV0dXJuIE5TTGVmdEFycm93RnVuY3Rpb25LZXk7CisgICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpVcEFycm93OgorICAgICAgICByZXR1cm4g
TlNVcEFycm93RnVuY3Rpb25LZXk7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5OjpSaWdodEFycm93OgorICAgICAgICByZXR1cm4gTlNSaWdodEFy
cm93RnVuY3Rpb25LZXk7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpWaXJ0dWFsS2V5OjpEb3duQXJyb3c6CisgICAgICAgIHJldHVybiBOU0Rvd25BcnJvd0Z1bmN0
aW9uS2V5OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6SW5zZXJ0OgorICAgICAgICByZXR1cm4gTlNJbnNlcnRGdW5jdGlvbktleTsKKyAgICBj
YXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkRlbGV0ZToK
KyAgICAgICAgcmV0dXJuIE5TRGVsZXRlQ2hhcmFjdGVyOworICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6U3BhY2U6CisgICAgICAgIHJldHVybiAn
ICc7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5
OjpTZW1pY29sb246CisgICAgICAgIHJldHVybiAnOyc7CisgICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpFcXVhbHM6CisgICAgICAgIHJldHVybiAn
PSc7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5
OjpSZXR1cm46CisgICAgICAgIHJldHVybiBOU0NhcnJpYWdlUmV0dXJuQ2hhcmFjdGVyOworICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVy
UGFkMDoKKyAgICAgICAgcmV0dXJuICcwJzsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDE6CisgICAgICAgIHJldHVybiAnMSc7
CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpO
dW1iZXJQYWQyOgorICAgICAgICByZXR1cm4gJzInOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkMzoKKyAgICAgICAgcmV0dXJu
ICczJzsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6Ok51bWJlclBhZDQ6CisgICAgICAgIHJldHVybiAnNCc7CisgICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ1OgorICAgICAgICBy
ZXR1cm4gJzUnOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6TnVtYmVyUGFkNjoKKyAgICAgICAgcmV0dXJuICc2JzsKKyAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDc6CisgICAg
ICAgIHJldHVybiAnNyc7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ4OgorICAgICAgICByZXR1cm4gJzgnOworICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkOToK
KyAgICAgICAgcmV0dXJuICc5JzsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZE11bHRpcGx5OgorICAgICAgICByZXR1cm4gJyon
OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6
TnVtYmVyUGFkQWRkOgorICAgICAgICByZXR1cm4gJysnOworICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkU3VidHJhY3Q6CisgICAg
ICAgIHJldHVybiAnLSc7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWRTZXBhcmF0b3I6CisgICAgICAgIC8vIFRoZSAnU2VwYXJh
dG9yJyBrZXkgaXMgb25seSBwcmVzZW50IG9uIGEgZmV3IGludGVybmF0aW9uYWwga2V5Ym9hcmRz
LgorICAgICAgICAvLyBJdCBpcyB1c3VhbGx5IG1hcHBlZCB0byB0aGUgc2FtZSBjaGFyYWN0ZXIg
YXMgRGVjaW1hbCAoJy4nIG9yICcsJykuCisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWREZWNpbWFsOgorICAgICAgICByZXR1cm4g
Jy4nOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtl
eTo6TnVtYmVyUGFkRGl2aWRlOgorICAgICAgICByZXR1cm4gJy8nOworICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24xOgorICAgICAg
ICByZXR1cm4gTlNGMUZ1bmN0aW9uS2V5OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24yOgorICAgICAgICByZXR1cm4gTlNGMkZ1
bmN0aW9uS2V5OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6RnVuY3Rpb24zOgorICAgICAgICByZXR1cm4gTlNGM0Z1bmN0aW9uS2V5OworICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rp
b240OgorICAgICAgICByZXR1cm4gTlNGNEZ1bmN0aW9uS2V5OworICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb241OgorICAgICAgICBy
ZXR1cm4gTlNGNUZ1bmN0aW9uS2V5OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb242OgorICAgICAgICByZXR1cm4gTlNGNkZ1bmN0
aW9uS2V5OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6RnVuY3Rpb243OgorICAgICAgICByZXR1cm4gTlNGN0Z1bmN0aW9uS2V5OworICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb244
OgorICAgICAgICByZXR1cm4gTlNGOEZ1bmN0aW9uS2V5OworICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb245OgorICAgICAgICByZXR1
cm4gTlNGOUZ1bmN0aW9uS2V5OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24xMDoKKyAgICAgICAgcmV0dXJuIE5TRjEwRnVuY3Rp
b25LZXk7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFs
S2V5OjpGdW5jdGlvbjExOgorICAgICAgICByZXR1cm4gTlNGMTFGdW5jdGlvbktleTsKKyAgICBj
YXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9u
MTI6CisgICAgICAgIHJldHVybiBOU0YxMkZ1bmN0aW9uS2V5OworICAgIGRlZmF1bHQ6CisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorfQorCitzdGQ6Om9wdGlvbmFsPHVuaWNo
YXI+IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpjaGFyQ29kZUlnbm9yaW5nTW9kaWZpZXJzRm9yVmly
dHVhbEtleShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5IGtleSkg
Y29uc3QKK3sKKyAgICBzd2l0Y2ggKGtleSkgeworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkTXVsdGlwbHk6CisgICAgICAgIHJl
dHVybiAnOCc7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0
dWFsS2V5OjpOdW1iZXJQYWRBZGQ6CisgICAgICAgIHJldHVybiAnPSc7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgcmV0dXJuIGNoYXJDb2RlRm9yVmlydHVhbEtleShrZXkpOworICAgIH0KK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2lvcy9XZWJBdXRvbWF0
aW9uU2Vzc2lvbklPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2lv
cy9XZWJBdXRvbWF0aW9uU2Vzc2lvbklPUy5tbQppbmRleCA3ZjQ3ZTExYTg3NTJmNDYyZTMzMzY0
ZDc3ZWU2NTIzYzczZDliNGRlLi45ZTQ3YTg2ODJiOWQyMzM0MmU3N2MzZjIzYTU5ZjhkMzFjNjUw
ZjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9pb3Mv
V2ViQXV0b21hdGlvblNlc3Npb25JT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0F1dG9tYXRpb24vaW9zL1dlYkF1dG9tYXRpb25TZXNzaW9uSU9TLm1tCkBAIC03MCwxMSArNzAs
NyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5U3Ryb2tl
KFdlYlBhZ2VQcm94eSYgcGFnZSwgSW5zcGVjdAogICAgIC8vIFRoZSBtb2RpZmllcnMgY2hhbmdl
ZCBieSB0aGUgdmlydHVhbCBrZXkgd2hlbiBpdCBpcyBwcmVzc2VkIG9yIHJlbGVhc2VkLgogICAg
IFdlYkV2ZW50RmxhZ3MgY2hhbmdlZE1vZGlmaWVycyA9IDA7CiAKLSAgICAvLyBVSUtpdCBkb2Vz
IG5vdCBzZW5kIGtleSBjb2RlcyBmb3IgdmlydHVhbCBrZXlzIGV2ZW4gZm9yIGEgaGFyZHdhcmUg
a2V5Ym9hcmQuCi0gICAgLy8gSW5zdGVhZCwgaXQgc2VuZHMgc2luZ2xlIHVuaWNoYXJzIGFuZCBX
ZWJDb3JlIG1hcHMgdGhlc2UgdG8gIndpbmRvd3MiIGtleSBjb2Rlcy4KLSAgICAvLyBTeW50aGVz
aXplIGEgc2luZ2xlIHVuaWNoYXIgc3VjaCB0aGF0IHRoZSBjb3JyZWN0IGtleSBjb2RlIGlzIGlu
ZmVycmVkLgotICAgIHN0ZDo6b3B0aW9uYWw8dW5pY2hhcj4gY2hhckNvZGUgPSBzdGQ6Om51bGxv
cHQ7Ci0KKyAgICAvLyBGaWd1cmUgb3V0IHRoZSBlZmZlY3RzIG9mIHN0aWNreSBtb2RpZmllcnMu
CiAgICAgc3dpdGNoIChrZXkpIHsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OlZpcnR1YWxLZXk6OlNoaWZ0OgogICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IFdl
YkV2ZW50RmxhZ01hc2tTaGlmdDsKQEAgLTkxLDE2NiArODcsMjEgQEAgdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVN0cm9rZShXZWJQYWdlUHJveHkmIHBhZ2Us
IEluc3BlY3QKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1
YWxLZXk6OkNvbW1hbmQ6CiAgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gV2ViRXZlbnRGbGFn
TWFza0NvbW1hbmQ7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6SGVscDoKLSAgICAgICAgY2hhckNvZGUgPSBOU0hl
bHBGdW5jdGlvbktleTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpCYWNrc3BhY2U6Ci0gICAgICAgIGNoYXJDb2Rl
ID0gTlNCYWNrc3BhY2VDaGFyYWN0ZXI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6VGFiOgotICAgICAgICBjaGFy
Q29kZSA9IE5TVGFiQ2hhcmFjdGVyOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkNsZWFyOgotICAgICAgICBjaGFy
Q29kZSA9IE5TQ2xlYXJMaW5lRnVuY3Rpb25LZXk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RW50ZXI6Ci0gICAg
ICAgIGNoYXJDb2RlID0gTlNFbnRlckNoYXJhY3RlcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYXVzZToKLSAg
ICAgICAgY2hhckNvZGUgPSBOU1BhdXNlRnVuY3Rpb25LZXk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkNhbmNl
bDoKLSAgICAgICAgLy8gVGhlICdjYW5jZWwnIGtleSBkb2VzIG5vdCBleGlzdCBvbiBBcHBsZSBr
ZXlib2FyZHMgYW5kIGhhcyBubyBrZXljb2RlLgotICAgICAgICAvLyBBY2NvcmRpbmcgdG8gdGhl
IGludGVybmV0IGl0cyBmdW5jdGlvbmFsaXR5IGlzIHNpbWlsYXIgdG8gJ0VzY2FwZScuCi0gICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpFc2NhcGU6
Ci0gICAgICAgIGNoYXJDb2RlID0gMHgxQjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYWdlVXA6Ci0gICAgICAg
IGNoYXJDb2RlID0gTlNQYWdlVXBGdW5jdGlvbktleTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYWdlRG93bjoK
LSAgICAgICAgY2hhckNvZGUgPSBOU1BhZ2VEb3duRnVuY3Rpb25LZXk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6
RW5kOgotICAgICAgICBjaGFyQ29kZSA9IE5TRW5kRnVuY3Rpb25LZXk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6
SG9tZToKLSAgICAgICAgY2hhckNvZGUgPSBOU0hvbWVGdW5jdGlvbktleTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5
OjpMZWZ0QXJyb3c6Ci0gICAgICAgIGNoYXJDb2RlID0gTlNMZWZ0QXJyb3dGdW5jdGlvbktleTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpWaXJ0dWFsS2V5OjpVcEFycm93OgotICAgICAgICBjaGFyQ29kZSA9IE5TVXBBcnJvd0Z1bmN0
aW9uS2V5OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6OlJpZ2h0QXJyb3c6Ci0gICAgICAgIGNoYXJDb2RlID0gTlNS
aWdodEFycm93RnVuY3Rpb25LZXk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RG93bkFycm93OgotICAgICAgICBj
aGFyQ29kZSA9IE5TRG93bkFycm93RnVuY3Rpb25LZXk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6SW5zZXJ0Ogot
ICAgICAgICBjaGFyQ29kZSA9IE5TSW5zZXJ0RnVuY3Rpb25LZXk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RGVs
ZXRlOgotICAgICAgICBjaGFyQ29kZSA9IE5TRGVsZXRlQ2hhcmFjdGVyOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
OlNwYWNlOgotICAgICAgICBjaGFyQ29kZSA9ICcgJzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpTZW1pY29sb246
Ci0gICAgICAgIGNoYXJDb2RlID0gJzsnOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkVxdWFsczoKLSAgICAgICAg
Y2hhckNvZGUgPSAnPSc7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6UmV0dXJuOgotICAgICAgICBjaGFyQ29kZSA9
IE5TQ2FycmlhZ2VSZXR1cm5DaGFyYWN0ZXI7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgLy8gT24g
aU9TLCBpdCBzZWVtcyB0byBiZSBpcnJlbGV2YW50IGluIGxhdGVyIHByb2Nlc3Npbmcgd2hldGhl
ciB0aGUgbnVtYmVyIGNhbWUgZnJvbSBudW1iZXIgcGFkIG9yIG5vdC4KLSAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDA6Ci0gICAg
ICAgIGNoYXJDb2RlID0gJzAnOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDE6Ci0gICAgICAgIGNo
YXJDb2RlID0gJzEnOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDI6Ci0gICAgICAgIGNoYXJDb2Rl
ID0gJzInOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDM6Ci0gICAgICAgIGNoYXJDb2RlID0gJzMn
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDQ6Ci0gICAgICAgIGNoYXJDb2RlID0gJzQnOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZp
cnR1YWxLZXk6Ok51bWJlclBhZDU6Ci0gICAgICAgIGNoYXJDb2RlID0gJzUnOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6Ok51bWJlclBhZDY6Ci0gICAgICAgIGNoYXJDb2RlID0gJzYnOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51
bWJlclBhZDc6Ci0gICAgICAgIGNoYXJDb2RlID0gJzcnOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBh
ZDg6Ci0gICAgICAgIGNoYXJDb2RlID0gJzgnOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDk6Ci0g
ICAgICAgIGNoYXJDb2RlID0gJzknOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZE11bHRpcGx5Ogot
ICAgICAgICBjaGFyQ29kZSA9ICcqJzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWRBZGQ6Ci0gICAg
ICAgIGNoYXJDb2RlID0gJysnOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZFN1YnRyYWN0OgotICAg
ICAgICBjaGFyQ29kZSA9ICctJzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWRTZXBhcmF0b3I6Ci0g
ICAgICAgIC8vIFRoZSAnU2VwYXJhdG9yJyBrZXkgaXMgb25seSBwcmVzZW50IG9uIGEgZmV3IGlu
dGVybmF0aW9uYWwga2V5Ym9hcmRzLgotICAgICAgICAvLyBJdCBpcyB1c3VhbGx5IG1hcHBlZCB0
byB0aGUgc2FtZSBjaGFyYWN0ZXIgYXMgRGVjaW1hbCAoJy4nIG9yICcsJykuCi0gICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWREZWNp
bWFsOgotICAgICAgICBjaGFyQ29kZSA9ICcuJzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWREaXZp
ZGU6Ci0gICAgICAgIGNoYXJDb2RlID0gJy8nOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMToKLSAg
ICAgICAgY2hhckNvZGUgPSBOU0YxRnVuY3Rpb25LZXk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24y
OgotICAgICAgICBjaGFyQ29kZSA9IE5TRjJGdW5jdGlvbktleTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5j
dGlvbjM6Ci0gICAgICAgIGNoYXJDb2RlID0gTlNGM0Z1bmN0aW9uS2V5OwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
OkZ1bmN0aW9uNDoKLSAgICAgICAgY2hhckNvZGUgPSBOU0Y0RnVuY3Rpb25LZXk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6RnVuY3Rpb241OgotICAgICAgICBjaGFyQ29kZSA9IE5TRjVGdW5jdGlvbktleTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpW
aXJ0dWFsS2V5OjpGdW5jdGlvbjY6Ci0gICAgICAgIGNoYXJDb2RlID0gTlNGNkZ1bmN0aW9uS2V5
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uNzoKLSAgICAgICAgY2hhckNvZGUgPSBOU0Y3RnVuY3Rp
b25LZXk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb244OgotICAgICAgICBjaGFyQ29kZSA9IE5TRjhG
dW5jdGlvbktleTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjk6Ci0gICAgICAgIGNoYXJDb2RlID0g
TlNGOUZ1bmN0aW9uS2V5OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMTA6Ci0gICAgICAgIGNoYXJD
b2RlID0gTlNGMTBGdW5jdGlvbktleTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjExOgotICAgICAg
ICBjaGFyQ29kZSA9IE5TRjExRnVuY3Rpb25LZXk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24xMjoK
LSAgICAgICAgY2hhckNvZGUgPSBOU0YxMkZ1bmN0aW9uS2V5OworICAgIGRlZmF1bHQ6CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIAotICAgIEFTU0VSVChjaGFuZ2VkTW9kaWZpZXJzIHx8IGludGVy
YWN0aW9uID09IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OktleWJvYXJkSW50ZXJh
Y3Rpb25UeXBlOjpLZXlQcmVzcyk7CisgICAgLy8gVUlLaXQgZG9lcyBub3Qgc2VuZCBrZXkgY29k
ZXMgZm9yIHZpcnR1YWwga2V5cyBldmVuIGZvciBhIGhhcmR3YXJlIGtleWJvYXJkLgorICAgIC8v
IEluc3RlYWQsIGl0IHNlbmRzIHNpbmdsZSB1bmljaGFycyBhbmQgV2ViQ29yZSBtYXBzIHRoZXNl
IHRvICJ3aW5kb3dzIiBrZXkgY29kZXMuCisgICAgLy8gU3ludGhlc2l6ZSBhIHNpbmdsZSB1bmlj
aGFyIHN1Y2ggdGhhdCB0aGUgY29ycmVjdCBrZXkgY29kZSBpcyBpbmZlcnJlZC4KKyAgICBzdGQ6
Om9wdGlvbmFsPHVuaWNoYXI+IGNoYXJDb2RlID0gY2hhckNvZGVGb3JWaXJ0dWFsS2V5KGtleSk7
CisgICAgc3RkOjpvcHRpb25hbDx1bmljaGFyPiBjaGFyQ29kZUlnbm9yaW5nTW9kaWZpZXJzID0g
Y2hhckNvZGVJZ25vcmluZ01vZGlmaWVyc0ZvclZpcnR1YWxLZXkoa2V5KTsKIAogICAgIC8vIEZJ
WE1FOiBjb25zaWRlciB1c2luZyBVSUtpdCBTUEkgdG8gbm9ybWFsaXplICdjaGFyYWN0ZXJzJywg
aS5lLiwgY2hhbmdpbmcgKiB0byBTaGlmdC04LAogICAgIC8vIGFuZCBwYXNzaW5nIHRoYXQgaW4g
dG8gY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzLiBUaGlzIGlzIHByb2JhYmx5IG5vdCB3b3J0
aCB0aGUgdHJvdWJsZQogICAgIC8vIHVubGVzcyBpdCBjYXVzZXMgYW4gYWN0dWFsIGJlaGF2aW9y
YWwgZGlmZmVyZW5jZS4KICAgICBOU1N0cmluZyAqY2hhcmFjdGVycyA9IGNoYXJDb2RlID8gW05T
U3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzOiZjaGFyQ29kZS52YWx1ZSgpIGxlbmd0aDoxXSA6
IG5pbDsKKyAgICBOU1N0cmluZyAqdW5tb2RpZmllZENoYXJhY3RlcnMgPSBjaGFyQ29kZUlnbm9y
aW5nTW9kaWZpZXJzID8gW05TU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzOiZjaGFyQ29kZUln
bm9yaW5nTW9kaWZpZXJzLnZhbHVlKCkgbGVuZ3RoOjFdIDogbmlsOwogICAgIEJPT0wgaXNUYWJL
ZXkgPSBjaGFyQ29kZSAmJiBjaGFyQ29kZS52YWx1ZSgpID09IE5TVGFiQ2hhcmFjdGVyOwogCiAg
ICAgLy8gVGhpcyBpcyB1c2VkIGFzIFdlYkV2ZW50LmtleWJvYXJkRmxhZ3MsIHdoaWNoIGFyZSBv
bmx5IHVzZWQgaWYgd2UgbmVlZCB0bwpAQCAtMjY3LDE5ICsxMTgsMTkgQEAgdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVN0cm9rZShXZWJQYWdlUHJveHkmIHBh
Z2UsIEluc3BlY3QKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Oktl
eWJvYXJkSW50ZXJhY3Rpb25UeXBlOjpLZXlQcmVzczogewogICAgICAgICBtX2N1cnJlbnRNb2Rp
ZmllcnMgfD0gY2hhbmdlZE1vZGlmaWVyczsKIAotICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRk
T2JqZWN0OltbOjpXZWJFdmVudCBhbGxvY10gaW5pdFdpdGhLZXlFdmVudFR5cGU6V2ViRXZlbnRL
ZXlEb3duIHRpbWVTdGFtcDpDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSBjaGFyYWN0ZXJzOmNo
YXJhY3RlcnMgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJhY3RlcnMgbW9kaWZpZXJz
Om1fY3VycmVudE1vZGlmaWVycyBpc1JlcGVhdGluZzpOTyB3aXRoRmxhZ3M6aW5wdXRGbGFncyB3
aXRoSW5wdXRNYW5hZ2VySGludDpuaWwga2V5Q29kZTprZXlDb2RlIGlzVGFiS2V5OmlzVGFiS2V5
XV07CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W1s6OldlYkV2ZW50IGFsbG9j
XSBpbml0V2l0aEtleUV2ZW50VHlwZTpXZWJFdmVudEtleURvd24gdGltZVN0YW1wOkNGQWJzb2x1
dGVUaW1lR2V0Q3VycmVudCgpIGNoYXJhY3RlcnM6Y2hhcmFjdGVycyBjaGFyYWN0ZXJzSWdub3Jp
bmdNb2RpZmllcnM6dW5tb2RpZmllZENoYXJhY3RlcnMgbW9kaWZpZXJzOm1fY3VycmVudE1vZGlm
aWVycyBpc1JlcGVhdGluZzpOTyB3aXRoRmxhZ3M6aW5wdXRGbGFncyB3aXRoSW5wdXRNYW5hZ2Vy
SGludDpuaWwga2V5Q29kZTprZXlDb2RlIGlzVGFiS2V5OmlzVGFiS2V5XV07CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Oktl
eWJvYXJkSW50ZXJhY3Rpb25UeXBlOjpLZXlSZWxlYXNlOiB7CiAgICAgICAgIG1fY3VycmVudE1v
ZGlmaWVycyAmPSB+Y2hhbmdlZE1vZGlmaWVyczsKIAotICAgICAgICBbZXZlbnRzVG9CZVNlbnQg
YWRkT2JqZWN0OltbOjpXZWJFdmVudCBhbGxvY10gaW5pdFdpdGhLZXlFdmVudFR5cGU6V2ViRXZl
bnRLZXlVcCB0aW1lU3RhbXA6Q0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgY2hhcmFjdGVyczpj
aGFyYWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJzIG1vZGlmaWVy
czptX2N1cnJlbnRNb2RpZmllcnMgaXNSZXBlYXRpbmc6Tk8gd2l0aEZsYWdzOmlucHV0RmxhZ3Mg
d2l0aElucHV0TWFuYWdlckhpbnQ6bmlsIGtleUNvZGU6a2V5Q29kZSBpc1RhYktleTppc1RhYktl
eV1dOworICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltbOjpXZWJFdmVudCBhbGxv
Y10gaW5pdFdpdGhLZXlFdmVudFR5cGU6V2ViRXZlbnRLZXlVcCB0aW1lU3RhbXA6Q0ZBYnNvbHV0
ZVRpbWVHZXRDdXJyZW50KCkgY2hhcmFjdGVyczpjaGFyYWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmlu
Z01vZGlmaWVyczp1bm1vZGlmaWVkQ2hhcmFjdGVycyBtb2RpZmllcnM6bV9jdXJyZW50TW9kaWZp
ZXJzIGlzUmVwZWF0aW5nOk5PIHdpdGhGbGFnczppbnB1dEZsYWdzIHdpdGhJbnB1dE1hbmFnZXJI
aW50Om5pbCBrZXlDb2RlOmtleUNvZGUgaXNUYWJLZXk6aXNUYWJLZXldXTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6S2V5
Ym9hcmRJbnRlcmFjdGlvblR5cGU6Okluc2VydEJ5S2V5OiB7CiAgICAgICAgIC8vIE1vZGlmaWVy
cyBvbmx5IGNoYW5nZSB3aXRoIEtleVByZXNzIG9yIEtleVJlbGVhc2UsIHRoaXMgY29kZSBwYXRo
IGlzIGZvciBzaW5nbGUgY2hhcmFjdGVycy4KLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9i
amVjdDpbWzo6V2ViRXZlbnQgYWxsb2NdIGluaXRXaXRoS2V5RXZlbnRUeXBlOldlYkV2ZW50S2V5
RG93biB0aW1lU3RhbXA6Q0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgY2hhcmFjdGVyczpjaGFy
YWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJzIG1vZGlmaWVyczpt
X2N1cnJlbnRNb2RpZmllcnMgaXNSZXBlYXRpbmc6Tk8gd2l0aEZsYWdzOmlucHV0RmxhZ3Mgd2l0
aElucHV0TWFuYWdlckhpbnQ6bmlsIGtleUNvZGU6a2V5Q29kZSBpc1RhYktleTppc1RhYktleV1d
OwotICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltbOjpXZWJFdmVudCBhbGxvY10g
aW5pdFdpdGhLZXlFdmVudFR5cGU6V2ViRXZlbnRLZXlVcCB0aW1lU3RhbXA6Q0ZBYnNvbHV0ZVRp
bWVHZXRDdXJyZW50KCkgY2hhcmFjdGVyczpjaGFyYWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01v
ZGlmaWVyczpjaGFyYWN0ZXJzIG1vZGlmaWVyczptX2N1cnJlbnRNb2RpZmllcnMgaXNSZXBlYXRp
bmc6Tk8gd2l0aEZsYWdzOmlucHV0RmxhZ3Mgd2l0aElucHV0TWFuYWdlckhpbnQ6bmlsIGtleUNv
ZGU6a2V5Q29kZSBpc1RhYktleTppc1RhYktleV1dOworICAgICAgICBbZXZlbnRzVG9CZVNlbnQg
YWRkT2JqZWN0OltbOjpXZWJFdmVudCBhbGxvY10gaW5pdFdpdGhLZXlFdmVudFR5cGU6V2ViRXZl
bnRLZXlEb3duIHRpbWVTdGFtcDpDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSBjaGFyYWN0ZXJz
OmNoYXJhY3RlcnMgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOnVubW9kaWZpZWRDaGFyYWN0
ZXJzIG1vZGlmaWVyczptX2N1cnJlbnRNb2RpZmllcnMgaXNSZXBlYXRpbmc6Tk8gd2l0aEZsYWdz
OmlucHV0RmxhZ3Mgd2l0aElucHV0TWFuYWdlckhpbnQ6bmlsIGtleUNvZGU6a2V5Q29kZSBpc1Rh
YktleTppc1RhYktleV1dOworICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltbOjpX
ZWJFdmVudCBhbGxvY10gaW5pdFdpdGhLZXlFdmVudFR5cGU6V2ViRXZlbnRLZXlVcCB0aW1lU3Rh
bXA6Q0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgY2hhcmFjdGVyczpjaGFyYWN0ZXJzIGNoYXJh
Y3RlcnNJZ25vcmluZ01vZGlmaWVyczp1bm1vZGlmaWVkQ2hhcmFjdGVycyBtb2RpZmllcnM6bV9j
dXJyZW50TW9kaWZpZXJzIGlzUmVwZWF0aW5nOk5PIHdpdGhGbGFnczppbnB1dEZsYWdzIHdpdGhJ
bnB1dE1hbmFnZXJIaW50Om5pbCBrZXlDb2RlOmtleUNvZGUgaXNUYWJLZXk6aXNUYWJLZXldXTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL21hYy9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL21hYy9XZWJBdXRvbWF0aW9uU2Vzc2lv
bk1hYy5tbQppbmRleCA3YWRmYjM1NjRhY2M1MGJmOTA5ZTA5Y2M1YjI2OTM4NjZhMTJlNTZlLi4y
ZjYyY2I2YzE4OGUwOWFiZTQzNTNmOTRhMWZkN2VmNWQ1ZDgzM2FkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25N
YWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vbWFjL1dlYkF1
dG9tYXRpb25TZXNzaW9uTWFjLm1tCkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6c2VuZFN5bnRoZXNpemVkRXZlbnRzVG9QYWdlKFdlYlBhZ2VQcm94eSYgcGFn
ZSwgTlNBcnIKICAgICBmb3IgKE5TRXZlbnQgKmV2ZW50IGluIGV2ZW50c1RvU2VuZCkgewogICAg
ICAgICAvLyBUYWtlIGZvY3VzIGJhY2sgaW4gY2FzZSB0aGUgSW5zcGVjdG9yIGJlY2FtZSBmb2N1
c2VkIHdoaWxlIHRoZSBwcmlvciBjb21tYW5kIG9yCiAgICAgICAgIC8vIE5TRXZlbnQgd2FzIGRl
bGl2ZXJlZCB0byB0aGUgd2luZG93LgotICAgICAgICBbd2luZG93IG1ha2VLZXlBbmRPcmRlckZy
b250Om5pbF07CisgICAgICAgIFt3aW5kb3cgYmVjb21lS2V5V2luZG93XTsKIAogICAgICAgICBt
YXJrRXZlbnRBc1N5bnRoZXNpemVkRm9yQXV0b21hdGlvbihldmVudCk7CiAgICAgICAgIFt3aW5k
b3cgc2VuZEV2ZW50OmV2ZW50XTsKQEAgLTI4MywyNjQgKzI4MywyNDYgQEAgdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZU1vdXNlSW50ZXJhY3Rpb24oV2ViUGFnZVBy
b3h5JiBwYWdlLAogICAgIHNlbmRTeW50aGVzaXplZEV2ZW50c1RvUGFnZShwYWdlLCBldmVudHNU
b0JlU2VudC5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3Jt
U2ltdWxhdGVLZXlTdHJva2UoV2ViUGFnZVByb3h5JiBwYWdlLCBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpLZXlib2FyZEludGVyYWN0aW9uVHlwZSBpbnRlcmFjdGlvbiwgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleSBrZXkpCitzdGF0aWMgYm9vbCBr
ZXlIYXNTdGlja3lNb2RpZmllcihJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0
dWFsS2V5IGtleSkKIHsKLSAgICAvLyBJZiB0cnVlLCB0aGUga2V5J3MgbW9kaWZpZXIgZmxhZ3Mg
c2hvdWxkIGFmZmVjdCBvdGhlciBldmVudHMgd2hpbGUgcHJlc3NlZCBkb3duLgotICAgIGJvb2wg
aXNTdGlja3lNb2RpZmllciA9IGZhbHNlOwotICAgIC8vIFRoZSBtb2RpZmllcnMgY2hhbmdlZCBi
eSB0aGUgdmlydHVhbCBrZXkgd2hlbiBpdCBpcyBwcmVzc2VkIG9yIHJlbGVhc2VkLgotICAgIC8v
IFRoZSBtYXBwaW5nIGZyb20ga2V5cyB0byBtb2RpZmllcnMgaXMgc3BlY2lmaWVkIGluIHRoZSBk
b2N1bWVudGF0aW9uIGZvciBOU0V2ZW50LgotICAgIE5TRXZlbnRNb2RpZmllckZsYWdzIGNoYW5n
ZWRNb2RpZmllcnMgPSAwOwotICAgIC8vIFRoZSBsaWtlbHkga2V5Q29kZSBmb3IgdGhlIHZpcnR1
YWwga2V5IGFzIGRlZmluZWQgaW4gPEhJVG9vbGJveC9FdmVudHMuaD4uCi0gICAgaW50IGtleUNv
ZGUgPSAwOwotICAgIC8vIFR5cGljYWwgY2hhcmFjdGVycyBwcm9kdWNlZCBieSB0aGUgdmlydHVh
bCBrZXksIGlmIGFueS4KLSAgICBOU1N0cmluZyAqY2hhcmFjdGVycyA9IEAiIjsKKyAgICAvLyBS
ZXR1cm5zIHdoZXRoZXIgdGhlIGtleSdzIG1vZGlmaWVyIGZsYWdzIHNob3VsZCBhZmZlY3Qgb3Ro
ZXIgZXZlbnRzIHdoaWxlIHByZXNzZWQgZG93bi4KKyAgICBzd2l0Y2ggKGtleSkgeworICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6U2hpZnQ6Cisg
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpDb250
cm9sOgorICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtl
eTo6QWx0ZXJuYXRlOgorICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleTo6TWV0YToKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6OkNvbW1hbmQ6CisgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgLy8g
RklYTUU6IHRoaXMgZnVuY3Rpb24gYW5kIHRoZSBBdXRvbWF0aW9uIHByb3RvY29sIGVudW0gc2hv
dWxkIHByb2JhYmx5IGFkb3B0IGtleSBuYW1lcwotICAgIC8vIGZyb20gVzNDIFVJRXZlbnRzIHN0
YW5kYXJkLiBGb3IgbW9yZSBkZXRhaWxzOiBodHRwczovL3czYy5naXRodWIuaW8vdWlldmVudHMt
Y29kZS8KKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQogCitz
dGF0aWMgaW50IGtleUNvZGVGb3JWaXJ0dWFsS2V5KEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OlZpcnR1YWxLZXkga2V5KQoreworICAgIC8vIFRoZSBsaWtlbHkga2V5Q29kZSBmb3Ig
dGhlIHZpcnR1YWwga2V5IGFzIGRlZmluZWQgaW4gPEhJVG9vbGJveC9FdmVudHMuaD4uCiAgICAg
c3dpdGNoIChrZXkpIHsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlZpcnR1YWxLZXk6OlNoaWZ0OgotICAgICAgICBpc1N0aWNreU1vZGlmaWVyID0gdHJ1ZTsKLSAg
ICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQ7Ci0gICAg
ICAgIGtleUNvZGUgPSBrVktfU2hpZnQ7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4g
a1ZLX1NoaWZ0OwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6Q29udHJvbDoKLSAgICAgICAgaXNTdGlja3lNb2RpZmllciA9IHRydWU7Ci0gICAg
ICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2w7Ci0gICAg
ICAgIGtleUNvZGUgPSBrVktfQ29udHJvbDsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVy
biBrVktfQ29udHJvbDsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlZpcnR1YWxLZXk6OkFsdGVybmF0ZToKLSAgICAgICAgaXNTdGlja3lNb2RpZmllciA9IHRydWU7
Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsK
LSAgICAgICAga2V5Q29kZSA9IGtWS19PcHRpb247Ci0gICAgICAgIGJyZWFrOworICAgICAgICBy
ZXR1cm4ga1ZLX09wdGlvbjsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6Ok1ldGE6CiAgICAgICAgIC8vIFRoZSAnbWV0YScga2V5IGRvZXMgbm90
IGV4aXN0IG9uIEFwcGxlIGtleWJvYXJkcyBhbmQgaXMgdXN1YWxseQogICAgICAgICAvLyBtYXBw
ZWQgdG8gdGhlIENvbW1hbmQga2V5IHdoZW4gdXNpbmcgdGhpcmQtcGFydHkga2V5Ym9hcmRzLgog
ICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6Q29t
bWFuZDoKLSAgICAgICAgaXNTdGlja3lNb2RpZmllciA9IHRydWU7Ci0gICAgICAgIGNoYW5nZWRN
b2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7Ci0gICAgICAgIGtleUNvZGUg
PSBrVktfQ29tbWFuZDsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBrVktfQ29tbWFu
ZDsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
OkhlbHA6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0hl
bHAgfCBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktf
SGVscDsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBrVktfSGVscDsKICAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkJhY2tzcGFjZToK
LSAgICAgICAga2V5Q29kZSA9IGtWS19EZWxldGU7Ci0gICAgICAgIGJyZWFrOworICAgICAgICBy
ZXR1cm4ga1ZLX0RlbGV0ZTsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6OlRhYjoKLSAgICAgICAga2V5Q29kZSA9IGtWS19UYWI7Ci0gICAgICAg
IGJyZWFrOworICAgICAgICByZXR1cm4ga1ZLX1RhYjsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkNsZWFyOgotICAgICAgICBjaGFuZ2VkTW9k
aWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOwotICAgICAgICBrZXlDb2Rl
ID0ga1ZLX0FOU0lfS2V5cGFkQ2xlYXI7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4g
a1ZLX0FOU0lfS2V5cGFkQ2xlYXI7CiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5OjpFbnRlcjoKLSAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tl
eXBhZEVudGVyOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19BTlNJX0tleXBh
ZEVudGVyOwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6UGF1c2U6Ci0gICAgICAgIC8vIFRoZSAncGF1c2UnIGtleSBkb2VzIG5vdCBleGlzdCBv
biBBcHBsZSBrZXlib2FyZHMgYW5kIGhhcyBubyBrZXljb2RlLgorICAgICAgICAvLyBUaGUgJ3Bh
dXNlJyBrZXkgZG9lcyBub3QgZXhpc3Qgb24gQXBwbGUga2V5Ym9hcmRzIGFuZCBoYXMgbm8gcmV0
dXJuCiAgICAgICAgIC8vIFRoZSBzZW1hbnRpY3MgYXJlIHVuY2xlYXIgc28ganVzdCBhYm9ydCBh
bmQgZG8gbm90aGluZy4KLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gMDsKICAgICBj
YXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkNhbmNlbDoK
LSAgICAgICAgLy8gVGhlICdjYW5jZWwnIGtleSBkb2VzIG5vdCBleGlzdCBvbiBBcHBsZSBrZXli
b2FyZHMgYW5kIGhhcyBubyBrZXljb2RlLgorICAgICAgICAvLyBUaGUgJ2NhbmNlbCcga2V5IGRv
ZXMgbm90IGV4aXN0IG9uIEFwcGxlIGtleWJvYXJkcyBhbmQgaGFzIG5vIHJldHVybgogICAgICAg
ICAvLyBBY2NvcmRpbmcgdG8gdGhlIGludGVybmV0IGl0cyBmdW5jdGlvbmFsaXR5IGlzIHNpbWls
YXIgdG8gJ0VzY2FwZScuCiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpWaXJ0dWFsS2V5OjpFc2NhcGU6Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRXNjYXBlOwotICAg
ICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19Fc2NhcGU7CiAgICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYWdlVXA6Ci0gICAgICAgIGNo
YW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBr
ZXlDb2RlID0ga1ZLX1BhZ2VVcDsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBrVktf
UGFnZVVwOwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6UGFnZURvd246Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlm
aWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX1BhZ2VEb3duOwotICAgICAg
ICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19QYWdlRG93bjsKICAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkVuZDoKLSAgICAgICAgY2hhbmdl
ZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNv
ZGUgPSBrVktfRW5kOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19FbmQ7CiAg
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpIb21l
OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlv
bjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19Ib21lOwotICAgICAgICBicmVhazsKKyAgICAgICAg
cmV0dXJuIGtWS19Ib21lOwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6VmlydHVhbEtleTo6TGVmdEFycm93OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5T
RXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkIHwgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9u
OwotICAgICAgICBrZXlDb2RlID0ga1ZLX0xlZnRBcnJvdzsKLSAgICAgICAgYnJlYWs7CisgICAg
ICAgIHJldHVybiBrVktfTGVmdEFycm93OwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6VXBBcnJvdzoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVy
cyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZCB8IE5TRXZlbnRNb2RpZmllckZsYWdG
dW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19VcEFycm93OwotICAgICAgICBicmVhazsK
KyAgICAgICAgcmV0dXJuIGtWS19VcEFycm93OwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6UmlnaHRBcnJvdzoKLSAgICAgICAgY2hhbmdlZE1v
ZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZCB8IE5TRXZlbnRNb2RpZmll
ckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19SaWdodEFycm93OwotICAgICAg
ICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19SaWdodEFycm93OwogICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RG93bkFycm93OgotICAgICAg
ICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkIHwgTlNF
dmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0Rvd25BcnJv
dzsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBrVktfRG93bkFycm93OwogICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6SW5zZXJ0Ogot
ICAgICAgICAvLyBUaGUgJ2luc2VydCcga2V5IGRvZXMgbm90IGV4aXN0IG9uIEFwcGxlIGtleWJv
YXJkcyBhbmQgaGFzIG5vIGtleWNvZGUuCisgICAgICAgIC8vIFRoZSAnaW5zZXJ0JyBrZXkgZG9l
cyBub3QgZXhpc3Qgb24gQXBwbGUga2V5Ym9hcmRzIGFuZCBoYXMgbm8gcmV0dXJuCiAgICAgICAg
IC8vIFRoZSBzZW1hbnRpY3MgYXJlIHVuY2xlYXIgc28ganVzdCBhYm9ydCBhbmQgZG8gbm90aGlu
Zy4KLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gMDsKICAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkRlbGV0ZToKLSAgICAgICAgY2hh
bmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtl
eUNvZGUgPSBrVktfRm9yd2FyZERlbGV0ZTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVy
biBrVktfRm9yd2FyZERlbGV0ZTsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OlZpcnR1YWxLZXk6OlNwYWNlOgotICAgICAgICBrZXlDb2RlID0ga1ZLX1NwYWNlOwot
ICAgICAgICBjaGFyYWN0ZXJzID0gQCIgIjsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVy
biBrVktfU3BhY2U7CiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpW
aXJ0dWFsS2V5OjpTZW1pY29sb246Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9TZW1pY29s
b247Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjsiOwotICAgICAgICBicmVhazsKKyAgICAgICAg
cmV0dXJuIGtWS19BTlNJX1NlbWljb2xvbjsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkVxdWFsczoKLSAgICAgICAga2V5Q29kZSA9IGtWS19B
TlNJX0VxdWFsOwotICAgICAgICBjaGFyYWN0ZXJzID0gQCI9IjsKLSAgICAgICAgYnJlYWs7Cisg
ICAgICAgIHJldHVybiBrVktfQU5TSV9FcXVhbDsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlJldHVybjoKLSAgICAgICAga2V5Q29kZSA9IGtW
S19SZXR1cm47Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4ga1ZLX1JldHVybjsKICAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJl
clBhZDA6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051
bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQwOwotICAgICAgICBj
aGFyYWN0ZXJzID0gQCIwIjsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBrVktfQU5T
SV9LZXlwYWQwOwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6TnVtYmVyUGFkMToKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50
TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBh
ZDE7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjEiOwotICAgICAgICBicmVhazsKKyAgICAgICAg
cmV0dXJuIGtWS19BTlNJX0tleXBhZDE7CiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQyOgotICAgICAgICBjaGFuZ2VkTW9kaWZp
ZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0g
a1ZLX0FOU0lfS2V5cGFkMjsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAiMiI7Ci0gICAgICAgIGJy
ZWFrOworICAgICAgICByZXR1cm4ga1ZLX0FOU0lfS2V5cGFkMjsKICAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDM6Ci0gICAgICAg
IGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAg
ICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQzOwotICAgICAgICBjaGFyYWN0ZXJzID0gQCIz
IjsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBrVktfQU5TSV9LZXlwYWQzOwogICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVy
UGFkNDoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVt
ZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZDQ7Ci0gICAgICAgIGNo
YXJhY3RlcnMgPSBAIjQiOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19BTlNJ
X0tleXBhZDQ7CiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0
dWFsS2V5OjpOdW1iZXJQYWQ1OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdOdW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFk
NTsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAiNSI7Ci0gICAgICAgIGJyZWFrOworICAgICAgICBy
ZXR1cm4ga1ZLX0FOU0lfS2V5cGFkNTsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDY6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmll
cnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBr
VktfQU5TSV9LZXlwYWQ2OwotICAgICAgICBjaGFyYWN0ZXJzID0gQCI2IjsKLSAgICAgICAgYnJl
YWs7CisgICAgICAgIHJldHVybiBrVktfQU5TSV9LZXlwYWQ2OwogICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkNzoKLSAgICAgICAg
Y2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAg
ICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZDc7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjci
OwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19BTlNJX0tleXBhZDc7CiAgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQ
YWQ4OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1l
cmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkODsKLSAgICAgICAgY2hh
cmFjdGVycyA9IEAiOCI7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4ga1ZLX0FOU0lf
S2V5cGFkODsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1
YWxLZXk6Ok51bWJlclBhZDk6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1v
ZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQ5
OwotICAgICAgICBjaGFyYWN0ZXJzID0gQCI5IjsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJl
dHVybiBrVktfQU5TSV9LZXlwYWQ5OwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkTXVsdGlwbHk6Ci0gICAgICAgIGNoYW5nZWRN
b2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNv
ZGUgPSBrVktfQU5TSV9LZXlwYWRNdWx0aXBseTsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAiKiI7
Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4ga1ZLX0FOU0lfS2V5cGFkTXVsdGlwbHk7
CiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpO
dW1iZXJQYWRBZGQ6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWRQbHVzOwot
ICAgICAgICBjaGFyYWN0ZXJzID0gQCIrIjsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVy
biBrVktfQU5TSV9LZXlwYWRQbHVzOwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkU3VidHJhY3Q6Ci0gICAgICAgIGNoYW5nZWRN
b2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNv
ZGUgPSBrVktfQU5TSV9LZXlwYWRNaW51czsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAiLSI7Ci0g
ICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4ga1ZLX0FOU0lfS2V5cGFkTWludXM7CiAgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQ
YWRTZXBhcmF0b3I6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ051bWVyaWNQYWQ7CiAgICAgICAgIC8vIFRoZSAnU2VwYXJhdG9yJyBrZXkgaXMgb25seSBw
cmVzZW50IG9uIGEgZmV3IGludGVybmF0aW9uYWwga2V5Ym9hcmRzLgogICAgICAgICAvLyBJdCBp
cyB1c3VhbGx5IG1hcHBlZCB0byB0aGUgc2FtZSBjaGFyYWN0ZXIgYXMgRGVjaW1hbCAoJy4nIG9y
ICcsJykuCiAgICAgICAgIEZBTExUSFJPVUdIOwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkRGVjaW1hbDoKLSAgICAgICAgY2hh
bmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAg
a2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZERlY2ltYWw7CisgICAgICAgIHJldHVybiBrVktfQU5T
SV9LZXlwYWREZWNpbWFsOwogICAgICAgICAvLyBGSVhNRTogdGhpcyBtaWdodCBiZSBsb2NhbGUt
ZGVwZW5kZW50LiBTZWUgdGhlIGFib3ZlIGNvbW1lbnQuCi0gICAgICAgIGNoYXJhY3RlcnMgPSBA
Ii4iOwotICAgICAgICBicmVhazsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZERpdmlkZToKLSAgICAgICAgY2hhbmdlZE1vZGlm
aWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9
IGtWS19BTlNJX0tleXBhZERpdmlkZTsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAiLyI7Ci0gICAg
ICAgIGJyZWFrOworICAgICAgICByZXR1cm4ga1ZLX0FOU0lfS2V5cGFkRGl2aWRlOwogICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24x
OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlv
bjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19GMTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJl
dHVybiBrVktfRjE7CiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpW
aXJ0dWFsS2V5OjpGdW5jdGlvbjI6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0YyOwotICAgICAg
ICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19GMjsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMzoKLSAgICAgICAgY2hhbmdl
ZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNv
ZGUgPSBrVktfRjM7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4ga1ZLX0YzOwogICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rp
b240OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5j
dGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19GNDsKLSAgICAgICAgYnJlYWs7CisgICAgICAg
IHJldHVybiBrVktfRjQ7CiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjU6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNF
dmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0Y1OwotICAg
ICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19GNTsKICAgICBjYXNlIEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uNjoKLSAgICAgICAgY2hh
bmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtl
eUNvZGUgPSBrVktfRjY7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4ga1ZLX0Y2Owog
ICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVu
Y3Rpb243OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdG
dW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19GNzsKLSAgICAgICAgYnJlYWs7CisgICAg
ICAgIHJldHVybiBrVktfRjc7CiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjg6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0g
TlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0Y4Owot
ICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19GODsKICAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uOToKLSAgICAgICAg
Y2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAg
IGtleUNvZGUgPSBrVktfRjk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4ga1ZLX0Y5
OwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6
RnVuY3Rpb24xMDoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRjEwOwotICAgICAgICBicmVhazsK
KyAgICAgICAgcmV0dXJuIGtWS19GMTA7CiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjExOgotICAgICAgICBjaGFuZ2VkTW9kaWZp
ZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtW
S19GMTE7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4ga1ZLX0YxMTsKICAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMTI6
Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9u
OwotICAgICAgICBrZXlDb2RlID0ga1ZLX0YxMjsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJl
dHVybiBrVktfRjEyOwogICAgIH0KK30KIAotICAgIGF1dG8gZXZlbnRzVG9CZVNlbnQgPSBhZG9w
dE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKK3N0YXRpYyBOU0V2ZW50TW9kaWZp
ZXJGbGFncyBldmVudE1vZGlmaWVyRmxhZ3NGb3JWaXJ0dWFsS2V5KEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXkga2V5KQoreworICAgIC8vIENvbXB1dGVzIHRoZSBt
b2RpZmllcnMgY2hhbmdlZCBieSB0aGUgdmlydHVhbCBrZXkgd2hlbiBpdCBpcyBwcmVzc2VkIG9y
IHJlbGVhc2VkLgorICAgIC8vIFRoZSBtYXBwaW5nIGZyb20ga2V5cyB0byBtb2RpZmllcnMgaXMg
c3BlY2lmaWVkIGluIHRoZSBkb2N1bWVudGF0aW9uIGZvciBOU0V2ZW50LgorICAgIHN3aXRjaCAo
a2V5KSB7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFs
S2V5OjpTaGlmdDoKKyAgICAgICAgcmV0dXJuIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdDsKKwor
ICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6Q29u
dHJvbDoKKyAgICAgICAgcmV0dXJuIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sOworCisgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpBbHRlcm5h
dGU6CisgICAgICAgIHJldHVybiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uOworCisgICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpNZXRhOgorICAg
ICAgICAvLyBUaGUgJ21ldGEnIGtleSBkb2VzIG5vdCBleGlzdCBvbiBBcHBsZSBrZXlib2FyZHMg
YW5kIGlzIHVzdWFsbHkKKyAgICAgICAgLy8gbWFwcGVkIHRvIHRoZSBDb21tYW5kIGtleSB3aGVu
IHVzaW5nIHRoaXJkLXBhcnR5IGtleWJvYXJkcy4KKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkNvbW1hbmQ6CisgICAgICAgIHJldHVybiBOU0V2
ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKKworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6SGVscDoKKyAgICAgICAgcmV0dXJuIE5TRXZlbnRNb2Rp
ZmllckZsYWdIZWxwIHwgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworCisgICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYWdlVXA6CisgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYWdlRG93
bjoKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
OkVuZDoKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6OkhvbWU6CisgICAgICAgIHJldHVybiBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CiAK
LSAgICBBU1NFUlQoaXNTdGlja3lNb2RpZmllciB8fCBpbnRlcmFjdGlvbiA9PSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpLZXlib2FyZEludGVyYWN0aW9uVHlwZTo6S2V5UHJlc3Mp
OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6
TGVmdEFycm93OgorICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6VXBBcnJvdzoKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6OlJpZ2h0QXJyb3c6CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpEb3duQXJyb3c6CisgICAgICAgIHJldHVybiBOU0V2
ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZCB8IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsK
KworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6
RGVsZXRlOgorICAgICAgICByZXR1cm4gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworCisg
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpDbGVh
cjoKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
Ok51bWJlclBhZDA6CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpW
aXJ0dWFsS2V5OjpOdW1iZXJQYWQxOgorICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkMjoKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDM6CisgICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ0OgorICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVy
UGFkNToKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6Ok51bWJlclBhZDY6CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ3OgorICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkODoKKyAgICBjYXNlIEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDk6CisgICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWRNdWx0
aXBseToKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6Ok51bWJlclBhZEFkZDoKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6Ok51bWJlclBhZFN1YnRyYWN0OgorICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkU2VwYXJhdG9yOgorICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVy
UGFkRGVjaW1hbDoKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZp
cnR1YWxLZXk6Ok51bWJlclBhZERpdmlkZToKKyAgICAgICAgcmV0dXJuIE5TRXZlbnRNb2RpZmll
ckZsYWdOdW1lcmljUGFkOworCisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjE6CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjI6CisgICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjM6CisgICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjQ6Cisg
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5j
dGlvbjU6CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFs
S2V5OjpGdW5jdGlvbjY6CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjc6CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjg6CisgICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjk6CisgICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjEwOgorICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rp
b24xMToKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6OkZ1bmN0aW9uMTI6CisgICAgICAgIHJldHVybiBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rp
b247CisKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gMDsKKyAgICB9Cit9CisKK3ZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTdHJva2UoV2ViUGFnZVBy
b3h5JiBwYWdlLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpLZXlib2FyZEludGVy
YWN0aW9uVHlwZSBpbnRlcmFjdGlvbiwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleSBrZXkpCit7CisgICAgLy8gRklYTUU6IHRoaXMgZnVuY3Rpb24gYW5kIHRoZSBB
dXRvbWF0aW9uIHByb3RvY29sIGVudW0gc2hvdWxkIHByb2JhYmx5IGFkb3B0IGtleSBuYW1lcwor
ICAgIC8vIGZyb20gVzNDIFVJRXZlbnRzIHN0YW5kYXJkLiBGb3IgbW9yZSBkZXRhaWxzOiBodHRw
czovL3czYy5naXRodWIuaW8vdWlldmVudHMtY29kZS8KKworICAgIGJvb2wgaXNTdGlja3lNb2Rp
ZmllciA9IGtleUhhc1N0aWNreU1vZGlmaWVyKGtleSk7CisgICAgTlNFdmVudE1vZGlmaWVyRmxh
Z3MgY2hhbmdlZE1vZGlmaWVycyA9IGV2ZW50TW9kaWZpZXJGbGFnc0ZvclZpcnR1YWxLZXkoa2V5
KTsKKyAgICBpbnQga2V5Q29kZSA9IGtleUNvZGVGb3JWaXJ0dWFsS2V5KGtleSk7CisKKyAgICAv
LyBGSVhNRTogY29uc2lkZXIgdXNpbmcgQXBwS2l0IFNQSSB0byBub3JtYWxpemUgJ2NoYXJhY3Rl
cnMnLCBpLmUuLCBjaGFuZ2luZyAqIHRvIFNoaWZ0LTgsCisgICAgLy8gYW5kIHBhc3NpbmcgdGhh
dCBpbiB0byBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnMuIFdlIGNvdWxkIGhhcmRjb2RlIHRo
aXMgZm9yIEFTQ0lJIGlmIG5lZWRlZC4KKyAgICBzdGQ6Om9wdGlvbmFsPHVuaWNoYXI+IGNoYXJD
b2RlID0gY2hhckNvZGVGb3JWaXJ0dWFsS2V5KGtleSk7CisgICAgc3RkOjpvcHRpb25hbDx1bmlj
aGFyPiBjaGFyQ29kZUlnbm9yaW5nTW9kaWZpZXJzID0gY2hhckNvZGVJZ25vcmluZ01vZGlmaWVy
c0ZvclZpcnR1YWxLZXkoa2V5KTsKKyAgICBOU1N0cmluZyAqY2hhcmFjdGVycyA9IGNoYXJDb2Rl
ID8gW05TU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzOiZjaGFyQ29kZS52YWx1ZSgpIGxlbmd0
aDoxXSA6IG5pbDsKKyAgICBOU1N0cmluZyAqdW5tb2RpZmllZENoYXJhY3RlcnMgPSBjaGFyQ29k
ZUlnbm9yaW5nTW9kaWZpZXJzID8gW05TU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzOiZjaGFy
Q29kZUlnbm9yaW5nTW9kaWZpZXJzLnZhbHVlKCkgbGVuZ3RoOjFdIDogbmlsOworCisgICAgYXV0
byBldmVudHNUb0JlU2VudCA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0p
OwogCiAgICAgTlNFdmVudE1vZGlmaWVyRmxhZ3MgZXhpc3RpbmdNb2RpZmllcnMgPSBbTlNFdmVu
dCBtb2RpZmllckZsYWdzXTsKICAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyB1cGRhdGVkTW9kaWZp
ZXJzID0gMDsKKworICAgIC8vIEZJWE1FOiB0aGlzIHRpbWVzdGFtcCBpcyBub3QgZXZlbiBjbG9z
ZSB0byBtYXRjaGluZyBuYXRpdmUgZXZlbnRzLiBGaW5kIG91dCBob3cgdG8gZ2V0IGNsb3Nlci4K
ICAgICBOU1RpbWVJbnRlcnZhbCB0aW1lc3RhbXAgPSBbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNl
UmVmZXJlbmNlRGF0ZV07CiAgICAgTlNXaW5kb3cgKndpbmRvdyA9IHBhZ2UucGxhdGZvcm1XaW5k
b3coKTsKICAgICBOU0ludGVnZXIgd2luZG93TnVtYmVyID0gd2luZG93LndpbmRvd051bWJlcjsK
QEAgLTU1MCwxMyArNTMyLDEzIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3Jt
U2ltdWxhdGVLZXlTdHJva2UoV2ViUGFnZVByb3h5JiBwYWdlLCBJbnNwZWN0CiAgICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpLZXlib2FyZEludGVyYWN0aW9uVHlwZTo6
S2V5UHJlc3M6IHsKICAgICAgICAgTlNFdmVudFR5cGUgZXZlbnRUeXBlID0gaXNTdGlja3lNb2Rp
ZmllciA/IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkIDogTlNFdmVudFR5cGVLZXlEb3duOwogICAg
ICAgICB1cGRhdGVkTW9kaWZpZXJzID0gZXhpc3RpbmdNb2RpZmllcnMgfCBjaGFuZ2VkTW9kaWZp
ZXJzOwotICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IGtleUV2ZW50
V2l0aFR5cGU6ZXZlbnRUeXBlIGxvY2F0aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZpZXJGbGFnczp1
cGRhdGVkTW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051
bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlcnMgY2hhcmFjdGVyc0lnbm9yaW5n
TW9kaWZpZXJzOmNoYXJhY3RlcnMgaXNBUmVwZWF0Ok5PIGtleUNvZGU6a2V5Q29kZV1dOworICAg
ICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6
ZXZlbnRUeXBlIGxvY2F0aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZpZXJGbGFnczp1cGRhdGVkTW9k
aWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250
ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlcnMgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJz
OnVubW9kaWZpZWRDaGFyYWN0ZXJzIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmtleUNvZGVdXTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGU6OktleVJlbGVhc2U6IHsKICAgICAgICAgTlNF
dmVudFR5cGUgZXZlbnRUeXBlID0gaXNTdGlja3lNb2RpZmllciA/IE5TRXZlbnRUeXBlRmxhZ3ND
aGFuZ2VkIDogTlNFdmVudFR5cGVLZXlVcDsKICAgICAgICAgdXBkYXRlZE1vZGlmaWVycyA9IGV4
aXN0aW5nTW9kaWZpZXJzICYgfmNoYW5nZWRNb2RpZmllcnM7Ci0gICAgICAgIFtldmVudHNUb0Jl
U2VudCBhZGRPYmplY3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpldmVudFR5cGUgbG9jYXRp
b246ZXZlbnRQb3NpdGlvbiBtb2RpZmllckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1w
OnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3Rl
cnM6Y2hhcmFjdGVycyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVycyBpc0FS
ZXBlYXQ6Tk8ga2V5Q29kZTprZXlDb2RlXV07CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRP
YmplY3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpldmVudFR5cGUgbG9jYXRpb246ZXZlbnRQ
b3NpdGlvbiBtb2RpZmllckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFt
cCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFj
dGVycyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6dW5tb2RpZmllZENoYXJhY3RlcnMgaXNB
UmVwZWF0Ok5PIGtleUNvZGU6a2V5Q29kZV1dOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpLZXlib2FyZEludGVyYWN0aW9u
VHlwZTo6SW5zZXJ0QnlLZXk6IHsKQEAgLTU2Niw4ICs1NDgsOCBAQCB2b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5U3Ryb2tlKFdlYlBhZ2VQcm94eSYgcGFnZSwg
SW5zcGVjdAogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHVwZGF0ZWRNb2RpZmllcnMg
PSBleGlzdGluZ01vZGlmaWVycyB8IGNoYW5nZWRNb2RpZmllcnM7Ci0gICAgICAgIFtldmVudHNU
b0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtl
eURvd24gbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBtb2RpZmllckZsYWdzOnVwZGF0ZWRNb2RpZmll
cnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6
bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVycyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hh
cmFjdGVycyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTprZXlDb2RlXV07Ci0gICAgICAgIFtldmVudHNU
b0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtl
eVVwIGxvY2F0aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZpZXJGbGFnczp1cGRhdGVkTW9kaWZpZXJz
IHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5p
bCBjaGFyYWN0ZXJzOmNoYXJhY3RlcnMgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJh
Y3RlcnMgaXNBUmVwZWF0Ok5PIGtleUNvZGU6a2V5Q29kZV1dOworICAgICAgICBbZXZlbnRzVG9C
ZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlE
b3duIGxvY2F0aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZpZXJGbGFnczp1cGRhdGVkTW9kaWZpZXJz
IHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5p
bCBjaGFyYWN0ZXJzOmNoYXJhY3RlcnMgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOnVubW9k
aWZpZWRDaGFyYWN0ZXJzIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmtleUNvZGVdXTsKKyAgICAgICAg
W2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZl
bnRUeXBlS2V5VXAgbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBtb2RpZmllckZsYWdzOnVwZGF0ZWRN
b2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNv
bnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVycyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmll
cnM6dW5tb2RpZmllZENoYXJhY3RlcnMgaXNBUmVwZWF0Ok5PIGtleUNvZGU6a2V5Q29kZV1dOwog
ICAgICAgICBicmVhazsKICAgICB9CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304759</attachid>
            <date>2017-03-16 23:04:43 -0700</date>
            <delta_ts>2017-03-17 11:28:32 -0700</delta_ts>
            <desc>Proposed Fix (v2)</desc>
            <filename>bug-169733-20170316230442.patch</filename>
            <type>text/plain</type>
            <size>47083</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0MDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmRjYzA4Y2FiNDRhNWNh
OTg5ZWNkYTgyMDM2ZmVjMThmNzRlM2M4Ny4uOWFkMjJiOTc1ZGI1ZWYyMjE3YWVjNWY1MzQyMDIy
ZTZjMTlhNjM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYyIEBACiAyMDE3LTAzLTE2ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCisgICAgICAgIFtDb2NvYV0gV2ViIEF1dG9tYXRp
b246IG5vbi1zdGlja3kgdmlydHVhbCBrZXlzIGxpa2UgJ2xlZnQgYXJyb3cnIGRvbid0IHdvcmsg
cHJvcGVybHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2OTczMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzAxNjI2MDg+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlcmUgd2VyZSBzZXZlcmFsIGlz
c3VlcyB0aGF0IGNhdXNlZCBjZXJ0YWluIHZpcnR1YWwga2V5cyB0byBub3Qgd29yayBjb3JyZWN0
bHkuCisgICAgICAgIFdoZW4gYSB2aXJ0dWFsIGtleSBsaWtlICdsZWZ0IGFycm93JyB3YXMgZGlz
cGF0Y2hlZCBhcyBhIGtleWRvd24gZXZlbnQsIGl0IHdhcworICAgICAgICB1bHRpbWF0ZWx5IGJl
aW5nIHRyYW5zbGF0ZWQgaW50byBhbiBpbnNlcnRUZXh0OiBjb21tYW5kIGluc3RlYWQgb2YgbW92
ZUxlZnQ6LgorCisgICAgICAgICAtIFRoZSBhdXRvbWF0aW9uIGJyb3dzZXIgd2luZG93IHdhcyBu
b3QgcHJvcGVybHkgbWFkZSBrZXkgd2luZG93IGFuZCBhY3RpdmUsIHNvCisgICAgICAgICAgIEFw
cEtpdCBuZXZlciB0cmllZCB0byBtYXRjaCB0aGUgTlNFdmVudCBhcyBhIGtleSBlcXVpdmFsZW50
LiBUaGF0IGNvZGUgcGF0aAorICAgICAgICAgICBtdXN0IGJlIHRha2VuIGluIHRoaXMgY2FzZSwg
YXMgaXQgdHJhbnNsYXRlcyBhcnJvdyBrZXlzIGludG8gY29tbWFuZCBzZWxlY3RvcnMuCisKKyAg
ICAgICAgIC0gQXBwS2l0IHJlbGllcyBvbiBpdHMgb3duIHByaXZhdGUgdXNlIGFyZWEgKFBVQSkg
dW5pY29kZSBjaGFyYWN0ZXJzIHRvIGVuY29kZQorICAgICAgICAgICBjb250cm9sIGtleXMgdGhh
dCBkbyBub3QgYWZmZWN0IGtleSBtb2RpZmllciBzdGF0ZSwgbGlrZSB0aGUgYXJyb3cga2V5cy4K
KyAgICAgICAgICAgU2luY2UgdGhlc2UgUFVBIGNoYXJhY3RlcnMgd2VyZSBub3QgYmVpbmcgdXNl
ZCBhcyB0aGUgJ2NoYXJhY3RlcnMnIG9mIHRoZQorICAgICAgICAgICBOU0V2ZW50cyB3ZSBzeW50
aGVzaXplLCB0aGUgZXZlbnRzIGFyZSB0cmVhdGVkIGFzIHVua25vd24gYW5kIEFwcEtpdCBmYWxs
cworICAgICAgICAgICBiYWNrIHRvIGluc2VydGluZyB0aGUgY29kZXBvaW50IGFzIHVuaW50ZXJw
cmV0ZWQgdGV4dC4KKworICAgICAgICAgLSBUaGUgTWFjIGltcGxlbWVudGF0aW9uIG9mIHBsYXRm
b3JtU2ltdWxhdGVLZXlTdHJva2UgZGlkIG5vdCBhbGxvdyBub24tc3RpY2t5CisgICAgICAgICAg
IHZpcnR1YWwga2V5cyB0byB1c2UgdGhlICdJbnNlcnRCeUtleScgaW50ZXJhY3Rpb24gd2hpY2gg
c2VuZHMga2V5ZG93bitrZXl1cC4KKyAgICAgICAgICAgVGhpcyBpcyBhIHByb2dyYW1taW5nIG1p
c3Rha2UgdGhhdCBjYXVzZXMgc3VjaCBpbnB1dHMgdG8gYXNzZXJ0IGluIGRlYnVnIGJ1aWxkcwor
ICAgICAgICAgICBhbmQgYmFpbCBvdXQgdG8gZG8gbm90aGluZyBpbiBub24tZGVidWcgYnVpbGRz
LgorCisgICAgICAgICAtIEEgZmV3IHNpbXVsYXRlZCB2aXJ0dWFsIGtleXMgdGhhdCBhcmUgbWF0
Y2hlZCB0byBrZXkgZXF1aXZhbGVudHMgZGlkIG5vdCBwcm9wZXJseSBzZXQKKyAgICAgICAgICAg
J2NoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVycycgb24gTlNFdmVudHMsIHdoaWNoIG1heSB1c2Ug
dGhlIHdyb25nIGVkaXRpbmcgY29tbWFuZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0
aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21h
dGlvblNlc3Npb246OnBlcmZvcm1LZXlib2FyZEludGVyYWN0aW9ucyk6CisgICAgICAgIEZpeCB0
aGlzIGd1YXJkIHNvIHRoYXQgd2UgYWN0dWFsbHkgY2FsbCBpbnRvIGtleSBldmVudCBzeW50aGVz
aXMgY29kZSBmb3IgaU9TLgorCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb24uaDogQWRkIGRlY2xhcmF0aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BdXRvbWF0aW9uL2NvY29hL1dlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpjaGFyQ29kZUZvclZpcnR1YWxLZXkpOiBN
b3ZlZCBmcm9tIGlPUyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21h
dGlvblNlc3Npb246OmNoYXJDb2RlSWdub3JpbmdNb2RpZmllcnNGb3JWaXJ0dWFsS2V5KTogQWRk
ZWQuCisgICAgICAgIFRoZXJlIGFyZSBvbmx5IGEgZmV3IHNwZWNpYWwgY2FzZXMgZm9yIG5vdy4g
V2Ugd2lsbCBwcm9iYWJseSBuZWVkIHRvIGhhcmRjb2RlCisgICAgICAgIHRoZSBkZWNvbXBvc2l0
aW9uIGZvciBvdGhlciBBU0NJSSBjaGFyYWN0ZXJzIHNvIHRoZSBleHBlY3RlZCBET00gZXZlbnRz
IGFyZSBmaXJlZAorICAgICAgICB3aGVuIGVudGVyaW5nIGEgc2hpZnRlZCBjaGFyYWN0ZXIgKGku
ZS4sICdBJyBzaG91bGQgYmUgJ1NoaWZ0JysnYScsIG5vdCAnQScpLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0F1dG9tYXRpb24vaW9zL1dlYkF1dG9tYXRpb25TZXNzaW9uSU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVN0cm9r
ZSk6CisgICAgICAgIFVzZSBjaGFyQ29kZUlnbm9yaW5nTW9kaWZpZXJzRm9yVmlydHVhbEtleSgp
LgorCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vbWFjL1dlYkF1dG9tYXRpb25TZXNz
aW9uTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VuZFN5
bnRoZXNpemVkRXZlbnRzVG9QYWdlKTogdXNlIC1iZWNvbWVLZXlXaW5kb3cuCisgICAgICAgIChX
ZWJLaXQ6OmtleUhhc1N0aWNreU1vZGlmaWVyKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Omtl
eUNvZGVGb3JWaXJ0dWFsS2V5KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OmV2ZW50TW9kaWZp
ZXJGbGFnc0ZvclZpcnR1YWxLZXkpOkFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVN0cm9rZSk6CisgICAgICAgIFNlcGFyYXRl
bHkgY29tcHV0ZSBrZXkgc3RpY2tpbmVzcywga2V5Q29kZSwgZXZlbnQgbW9kaWZpZXIsIGFuZCBj
aGFyQ29kZSBmb3IKKyAgICAgICAgdGhlIHNpbXVsYXRlZCBrZXlzdHJva2UuIFRoZSBjb2RlIHRv
IGNvbXB1dGUgY2hhckNvZGUgaXMgbm93IHNoYXJlZCBiZXR3ZWVuCisgICAgICAgIGlPUyBhbmQg
bWFjT1Mgc2luY2UgdGhlIFBVQSBjaGFyYWN0ZXJzIGFyZSB0aGUgc2FtZSBmb3IgYm90aCBBcHBL
aXQgYW5kIFVJS2l0LgorCisyMDE3LTAzLTE2ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29t
PgorCiAgICAgICAgIFtpT1MgV0syXSBXZWIgQXV0b21hdGlvbjogaW1wbGVtZW50IHBsYXRmb3Jt
IG1ldGhvZHMgZm9yIHNpbXVsYXRpbmcga2V5Ym9hcmQgZXZlbnRzCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk0ODcKICAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzI4MzYwNTY0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1
dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKaW5kZXggNTY2MWM3N2MxNTQ5NDQ5
ODY0NjNhNTE0MjE0ZjMzNTVjYTVlNzVkMy4uNTYwODc4ODg4YzIyYTQxMWY0YzJhOGE2MGJmYjc3
NzNiODJhZGI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRp
b24vV2ViQXV0b21hdGlvblNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCkBAIC01NCw2ICs1NCw3IEBAIHN0cnVj
dCBDb29raWU7CiAKICNpZiBQTEFURk9STShDT0NPQSkKIE9CSkNfQ0xBU1MgTlNBcnJheTsKK3R5
cGVkZWYgdW5zaWduZWQgc2hvcnQgdW5pY2hhcjsKICNlbmRpZgogCiAjaWYgVVNFKEFQUEtJVCkK
QEAgLTE3NSw2ICsxNzYsOSBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIC8v
IFRoZSB0eXBlIHBhcmFtZXRlciBvZiB0aGUgTlNBcnJheSBhcmd1bWVudCBpcyBwbGF0Zm9ybS1k
ZXBlbmRlbnQuCiAgICAgdm9pZCBzZW5kU3ludGhlc2l6ZWRFdmVudHNUb1BhZ2UoV2ViUGFnZVBy
b3h5JiwgTlNBcnJheSAqZXZlbnRzVG9TZW5kKTsKKworICAgIHN0ZDo6b3B0aW9uYWw8dW5pY2hh
cj4gY2hhckNvZGVGb3JWaXJ0dWFsS2V5KEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlZpcnR1YWxLZXkpIGNvbnN0OworICAgIHN0ZDo6b3B0aW9uYWw8dW5pY2hhcj4gY2hhckNvZGVJ
Z25vcmluZ01vZGlmaWVyc0ZvclZpcnR1YWxLZXkoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6VmlydHVhbEtleSkgY29uc3Q7CiAjZW5kaWYKIAogICAgIFdlYlByb2Nlc3NQb29sKiBt
X3Byb2Nlc3NQb29sIHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0F1dG9tYXRpb24vY29jb2EvV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2NvY29hL1dlYkF1dG9tYXRpb25TZXNz
aW9uQ29jb2EubW0KaW5kZXggYmVhZGVjYjU3NDUyNmEwYmZhZmZlZmVkYmExNWY4ODRlMTJiNWY0
NC4uNDU1ZjdmMjJlMWViNzliY2M1MWIyNDFjYjY1YmEzYjgyMzE4OTUzNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vY29jb2EvV2ViQXV0b21hdGlvblNl
c3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9j
b2NvYS9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaWYg
UExBVEZPUk0oSU9TKQogI2luY2x1ZGUgPEltYWdlSU8vQ0dJbWFnZURlc3RpbmF0aW9uLmg+CiAj
aW5jbHVkZSA8TW9iaWxlQ29yZVNlcnZpY2VzL1VUQ29yZVR5cGVzLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9LZXlFdmVudENvZGVzSU9TLmg+CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CkBAIC01NSw2ICs1NiwxMzQgQEAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpwbGF0Zm9ybUdldEJhc2U2NEVuY29kZWRQTkdEYXRhKGNvbnMKICAgICByZXR1
cm4gU3RyaW5nKFtpbWFnZURhdGEgYmFzZTY0RW5jb2RlZFN0cmluZ1dpdGhPcHRpb25zOjBdKTsK
IH0KIAorc3RkOjpvcHRpb25hbDx1bmljaGFyPiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Y2hhckNv
ZGVGb3JWaXJ0dWFsS2V5KEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXkga2V5KSBjb25zdAoreworICAgIHN3aXRjaCAoa2V5KSB7CisgICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpTaGlmdDoKKyAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkNvbnRyb2w6CisgICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpBbHRlcm5hdGU6
CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpN
ZXRhOgorICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtl
eTo6Q29tbWFuZDoKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkhlbHA6CisgICAgICAgIHJl
dHVybiBOU0hlbHBGdW5jdGlvbktleTsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6OkJhY2tzcGFjZToKKyAgICAgICAgcmV0dXJuIE5TQmFja3Nw
YWNlQ2hhcmFjdGVyOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleTo6VGFiOgorICAgICAgICByZXR1cm4gTlNUYWJDaGFyYWN0ZXI7CisgICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpDbGVhcjoKKyAg
ICAgICAgcmV0dXJuIE5TQ2xlYXJMaW5lRnVuY3Rpb25LZXk7CisgICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpFbnRlcjoKKyAgICAgICAgcmV0dXJu
IE5TRW50ZXJDaGFyYWN0ZXI7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpQYXVzZToKKyAgICAgICAgcmV0dXJuIE5TUGF1c2VGdW5jdGlvbktl
eTsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
OkNhbmNlbDoKKyAgICAgICAgLy8gVGhlICdjYW5jZWwnIGtleSBkb2VzIG5vdCBleGlzdCBvbiBB
cHBsZSBrZXlib2FyZHMgYW5kIGhhcyBubyBrZXljb2RlLgorICAgICAgICAvLyBBY2NvcmRpbmcg
dG8gdGhlIGludGVybmV0IGl0cyBmdW5jdGlvbmFsaXR5IGlzIHNpbWlsYXIgdG8gJ0VzY2FwZScu
CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpF
c2NhcGU6CisgICAgICAgIHJldHVybiAweDFCOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6UGFnZVVwOgorICAgICAgICByZXR1cm4gTlNQYWdl
VXBGdW5jdGlvbktleTsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlZpcnR1YWxLZXk6OlBhZ2VEb3duOgorICAgICAgICByZXR1cm4gTlNQYWdlRG93bkZ1bmN0aW9u
S2V5OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtl
eTo6RW5kOgorICAgICAgICByZXR1cm4gTlNFbmRGdW5jdGlvbktleTsKKyAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkhvbWU6CisgICAgICAgIHJl
dHVybiBOU0hvbWVGdW5jdGlvbktleTsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6OkxlZnRBcnJvdzoKKyAgICAgICAgcmV0dXJuIE5TTGVmdEFy
cm93RnVuY3Rpb25LZXk7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpWaXJ0dWFsS2V5OjpVcEFycm93OgorICAgICAgICByZXR1cm4gTlNVcEFycm93RnVuY3Rpb25L
ZXk7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5
OjpSaWdodEFycm93OgorICAgICAgICByZXR1cm4gTlNSaWdodEFycm93RnVuY3Rpb25LZXk7Cisg
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpEb3du
QXJyb3c6CisgICAgICAgIHJldHVybiBOU0Rvd25BcnJvd0Z1bmN0aW9uS2V5OworICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6SW5zZXJ0OgorICAg
ICAgICByZXR1cm4gTlNJbnNlcnRGdW5jdGlvbktleTsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkRlbGV0ZToKKyAgICAgICAgcmV0dXJuIE5T
RGVsZXRlRnVuY3Rpb25LZXk7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpTcGFjZToKKyAgICAgICAgcmV0dXJuICcgJzsKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlNlbWljb2xvbjoKKyAg
ICAgICAgcmV0dXJuICc7JzsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6OkVxdWFsczoKKyAgICAgICAgcmV0dXJuICc9JzsKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlJldHVybjoKKyAgICAg
ICAgcmV0dXJuIE5TQ2FycmlhZ2VSZXR1cm5DaGFyYWN0ZXI7CisgICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQwOgorICAgICAgICBy
ZXR1cm4gJzAnOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6TnVtYmVyUGFkMToKKyAgICAgICAgcmV0dXJuICcxJzsKKyAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDI6CisgICAg
ICAgIHJldHVybiAnMic7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQzOgorICAgICAgICByZXR1cm4gJzMnOworICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkNDoK
KyAgICAgICAgcmV0dXJuICc0JzsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDU6CisgICAgICAgIHJldHVybiAnNSc7CisgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQ
YWQ2OgorICAgICAgICByZXR1cm4gJzYnOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkNzoKKyAgICAgICAgcmV0dXJuICc3JzsK
KyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51
bWJlclBhZDg6CisgICAgICAgIHJldHVybiAnOCc7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ5OgorICAgICAgICByZXR1cm4g
JzknOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtl
eTo6TnVtYmVyUGFkTXVsdGlwbHk6CisgICAgICAgIHJldHVybiAnKic7CisgICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWRBZGQ6Cisg
ICAgICAgIHJldHVybiAnKyc7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWRTdWJ0cmFjdDoKKyAgICAgICAgcmV0dXJuICctJzsK
KyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51
bWJlclBhZFNlcGFyYXRvcjoKKyAgICAgICAgLy8gVGhlICdTZXBhcmF0b3InIGtleSBpcyBvbmx5
IHByZXNlbnQgb24gYSBmZXcgaW50ZXJuYXRpb25hbCBrZXlib2FyZHMuCisgICAgICAgIC8vIEl0
IGlzIHVzdWFsbHkgbWFwcGVkIHRvIHRoZSBzYW1lIGNoYXJhY3RlciBhcyBEZWNpbWFsICgnLicg
b3IgJywnKS4KKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1
YWxLZXk6Ok51bWJlclBhZERlY2ltYWw6CisgICAgICAgIHJldHVybiAnLic7CisgICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWREaXZp
ZGU6CisgICAgICAgIHJldHVybiAnLyc7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjE6CisgICAgICAgIHJldHVybiBOU0YxRnVu
Y3Rpb25LZXk7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0
dWFsS2V5OjpGdW5jdGlvbjI6CisgICAgICAgIHJldHVybiBOU0YyRnVuY3Rpb25LZXk7CisgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlv
bjM6CisgICAgICAgIHJldHVybiBOU0YzRnVuY3Rpb25LZXk7CisgICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjQ6CisgICAgICAgIHJl
dHVybiBOU0Y0RnVuY3Rpb25LZXk7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjU6CisgICAgICAgIHJldHVybiBOU0Y1RnVuY3Rp
b25LZXk7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFs
S2V5OjpGdW5jdGlvbjY6CisgICAgICAgIHJldHVybiBOU0Y2RnVuY3Rpb25LZXk7CisgICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjc6
CisgICAgICAgIHJldHVybiBOU0Y3RnVuY3Rpb25LZXk7CisgICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjg6CisgICAgICAgIHJldHVy
biBOU0Y4RnVuY3Rpb25LZXk7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjk6CisgICAgICAgIHJldHVybiBOU0Y5RnVuY3Rpb25L
ZXk7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5
OjpGdW5jdGlvbjEwOgorICAgICAgICByZXR1cm4gTlNGMTBGdW5jdGlvbktleTsKKyAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMTE6
CisgICAgICAgIHJldHVybiBOU0YxMUZ1bmN0aW9uS2V5OworICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24xMjoKKyAgICAgICAgcmV0
dXJuIE5TRjEyRnVuY3Rpb25LZXk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICB9Cit9CisKK3N0ZDo6b3B0aW9uYWw8dW5pY2hhcj4gV2ViQXV0b21hdGlv
blNlc3Npb246OmNoYXJDb2RlSWdub3JpbmdNb2RpZmllcnNGb3JWaXJ0dWFsS2V5KEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXkga2V5KSBjb25zdAoreworICAgIHN3
aXRjaCAoa2V5KSB7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpW
aXJ0dWFsS2V5OjpOdW1iZXJQYWRNdWx0aXBseToKKyAgICAgICAgcmV0dXJuICc4JzsKKyAgICBj
YXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBh
ZEFkZDoKKyAgICAgICAgcmV0dXJuICc9JzsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4g
Y2hhckNvZGVGb3JWaXJ0dWFsS2V5KGtleSk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vaW9zL1dlYkF1dG9tYXRpb25TZXNzaW9uSU9TLm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vaW9zL1dlYkF1dG9tYXRpb25T
ZXNzaW9uSU9TLm1tCmluZGV4IDdmNGMyZTEyZDI3YWM5ZDQxZmMzZmJiNTM1YTE1NWE2MTYzYWIw
YjguLjNlNDU2NmNkNjE3ODlkNTlkYjdiMGEwYTI4N2JmMzI4ZjdiOWU3MzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2lvcy9XZWJBdXRvbWF0aW9uU2Vz
c2lvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9pb3Mv
V2ViQXV0b21hdGlvblNlc3Npb25JT1MubW0KQEAgLTcwLDExICs3MCw3IEBAIHZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTdHJva2UoV2ViUGFnZVByb3h5JiBw
YWdlLCBJbnNwZWN0CiAgICAgLy8gVGhlIG1vZGlmaWVycyBjaGFuZ2VkIGJ5IHRoZSB2aXJ0dWFs
IGtleSB3aGVuIGl0IGlzIHByZXNzZWQgb3IgcmVsZWFzZWQuCiAgICAgV2ViRXZlbnRGbGFncyBj
aGFuZ2VkTW9kaWZpZXJzID0gMDsKIAotICAgIC8vIFVJS2l0IGRvZXMgbm90IHNlbmQga2V5IGNv
ZGVzIGZvciB2aXJ0dWFsIGtleXMgZXZlbiBmb3IgYSBoYXJkd2FyZSBrZXlib2FyZC4KLSAgICAv
LyBJbnN0ZWFkLCBpdCBzZW5kcyBzaW5nbGUgdW5pY2hhcnMgYW5kIFdlYkNvcmUgbWFwcyB0aGVz
ZSB0byAid2luZG93cyIga2V5IGNvZGVzLgotICAgIC8vIFN5bnRoZXNpemUgYSBzaW5nbGUgdW5p
Y2hhciBzdWNoIHRoYXQgdGhlIGNvcnJlY3Qga2V5IGNvZGUgaXMgaW5mZXJyZWQuCi0gICAgc3Rk
OjpvcHRpb25hbDx1bmljaGFyPiBjaGFyQ29kZSA9IHN0ZDo6bnVsbG9wdDsKLQorICAgIC8vIEZp
Z3VyZSBvdXQgdGhlIGVmZmVjdHMgb2Ygc3RpY2t5IG1vZGlmaWVycy4KICAgICBzd2l0Y2ggKGtl
eSkgewogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtl
eTo6U2hpZnQ6CiAgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gV2ViRXZlbnRGbGFnTWFza1No
aWZ0OwpAQCAtOTEsMTYxICs4NywxNSBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0
Zm9ybVNpbXVsYXRlS2V5U3Ryb2tlKFdlYlBhZ2VQcm94eSYgcGFnZSwgSW5zcGVjdAogICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6Q29tbWFuZDoK
ICAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBXZWJFdmVudEZsYWdNYXNrQ29tbWFuZDsKICAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpW
aXJ0dWFsS2V5OjpIZWxwOgotICAgICAgICBjaGFyQ29kZSA9IE5TSGVscEZ1bmN0aW9uS2V5Owot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlZpcnR1YWxLZXk6OkJhY2tzcGFjZToKLSAgICAgICAgY2hhckNvZGUgPSBOU0JhY2tzcGFjZUNo
YXJhY3RlcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpUYWI6Ci0gICAgICAgIGNoYXJDb2RlID0gTlNUYWJDaGFy
YWN0ZXI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6Q2xlYXI6Ci0gICAgICAgIGNoYXJDb2RlID0gTlNDbGVhckxp
bmVGdW5jdGlvbktleTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpFbnRlcjoKLSAgICAgICAgY2hhckNvZGUgPSBO
U0VudGVyQ2hhcmFjdGVyOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlBhdXNlOgotICAgICAgICBjaGFyQ29kZSA9
IE5TUGF1c2VGdW5jdGlvbktleTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpDYW5jZWw6Ci0gICAgICAgIC8vIFRo
ZSAnY2FuY2VsJyBrZXkgZG9lcyBub3QgZXhpc3Qgb24gQXBwbGUga2V5Ym9hcmRzIGFuZCBoYXMg
bm8ga2V5Y29kZS4KLSAgICAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBpbnRlcm5ldCBpdHMgZnVu
Y3Rpb25hbGl0eSBpcyBzaW1pbGFyIHRvICdFc2NhcGUnLgotICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RXNjYXBlOgotICAgICAgICBjaGFyQ29k
ZSA9IDB4MUI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6UGFnZVVwOgotICAgICAgICBjaGFyQ29kZSA9IE5TUGFn
ZVVwRnVuY3Rpb25LZXk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6UGFnZURvd246Ci0gICAgICAgIGNoYXJDb2Rl
ID0gTlNQYWdlRG93bkZ1bmN0aW9uS2V5OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkVuZDoKLSAgICAgICAgY2hh
ckNvZGUgPSBOU0VuZEZ1bmN0aW9uS2V5OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkhvbWU6Ci0gICAgICAgIGNo
YXJDb2RlID0gTlNIb21lRnVuY3Rpb25LZXk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TGVmdEFycm93OgotICAg
ICAgICBjaGFyQ29kZSA9IE5TTGVmdEFycm93RnVuY3Rpb25LZXk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6VXBB
cnJvdzoKLSAgICAgICAgY2hhckNvZGUgPSBOU1VwQXJyb3dGdW5jdGlvbktleTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFs
S2V5OjpSaWdodEFycm93OgotICAgICAgICBjaGFyQ29kZSA9IE5TUmlnaHRBcnJvd0Z1bmN0aW9u
S2V5OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OlZpcnR1YWxLZXk6OkRvd25BcnJvdzoKLSAgICAgICAgY2hhckNvZGUgPSBOU0Rvd25B
cnJvd0Z1bmN0aW9uS2V5OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Okluc2VydDoKLSAgICAgICAgY2hhckNvZGUg
PSBOU0luc2VydEZ1bmN0aW9uS2V5OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkRlbGV0ZToKLSAgICAgICAgY2hh
ckNvZGUgPSBOU0RlbGV0ZUNoYXJhY3RlcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpTcGFjZToKLSAgICAgICAg
Y2hhckNvZGUgPSAnICc7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6U2VtaWNvbG9uOgotICAgICAgICBjaGFyQ29k
ZSA9ICc7JzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpFcXVhbHM6Ci0gICAgICAgIGNoYXJDb2RlID0gJz0nOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlZpcnR1YWxLZXk6OlJldHVybjoKLSAgICAgICAgY2hhckNvZGUgPSBOU0NhcnJpYWdlUmV0dXJu
Q2hhcmFjdGVyOwotICAgICAgICBicmVhazsKLQotICAgIC8vIE9uIGlPUywgaXQgc2VlbXMgdG8g
YmUgaXJyZWxldmFudCBpbiBsYXRlciBwcm9jZXNzaW5nIHdoZXRoZXIgdGhlIG51bWJlciBjYW1l
IGZyb20gbnVtYmVyIHBhZCBvciBub3QuCi0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQwOgotICAgICAgICBjaGFyQ29kZSA9ICcw
JzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQxOgotICAgICAgICBjaGFyQ29kZSA9ICcxJzsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpW
aXJ0dWFsS2V5OjpOdW1iZXJQYWQyOgotICAgICAgICBjaGFyQ29kZSA9ICcyJzsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFs
S2V5OjpOdW1iZXJQYWQzOgotICAgICAgICBjaGFyQ29kZSA9ICczJzsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpO
dW1iZXJQYWQ0OgotICAgICAgICBjaGFyQ29kZSA9ICc0JzsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQ
YWQ1OgotICAgICAgICBjaGFyQ29kZSA9ICc1JzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ2Ogot
ICAgICAgICBjaGFyQ29kZSA9ICc2JzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ3OgotICAgICAg
ICBjaGFyQ29kZSA9ICc3JzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ4OgotICAgICAgICBjaGFy
Q29kZSA9ICc4JzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ5OgotICAgICAgICBjaGFyQ29kZSA9
ICc5JzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWRNdWx0aXBseToKLSAgICAgICAgY2hhckNvZGUg
PSAnKic7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkQWRkOgotICAgICAgICBjaGFyQ29kZSA9ICcr
JzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWRTdWJ0cmFjdDoKLSAgICAgICAgY2hhckNvZGUgPSAn
LSc7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkU2VwYXJhdG9yOgotICAgICAgICAvLyBUaGUgJ1Nl
cGFyYXRvcicga2V5IGlzIG9ubHkgcHJlc2VudCBvbiBhIGZldyBpbnRlcm5hdGlvbmFsIGtleWJv
YXJkcy4KLSAgICAgICAgLy8gSXQgaXMgdXN1YWxseSBtYXBwZWQgdG8gdGhlIHNhbWUgY2hhcmFj
dGVyIGFzIERlY2ltYWwgKCcuJyBvciAnLCcpLgotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkRGVjaW1hbDoKLSAgICAgICAgY2hh
ckNvZGUgPSAnLic7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkRGl2aWRlOgotICAgICAgICBjaGFy
Q29kZSA9ICcvJzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjE6Ci0gICAgICAgIGNoYXJDb2RlID0g
TlNGMUZ1bmN0aW9uS2V5OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMjoKLSAgICAgICAgY2hhckNv
ZGUgPSBOU0YyRnVuY3Rpb25LZXk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24zOgotICAgICAgICBj
aGFyQ29kZSA9IE5TRjNGdW5jdGlvbktleTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjQ6Ci0gICAg
ICAgIGNoYXJDb2RlID0gTlNGNEZ1bmN0aW9uS2V5OwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uNToK
LSAgICAgICAgY2hhckNvZGUgPSBOU0Y1RnVuY3Rpb25LZXk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rp
b242OgotICAgICAgICBjaGFyQ29kZSA9IE5TRjZGdW5jdGlvbktleTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpG
dW5jdGlvbjc6Ci0gICAgICAgIGNoYXJDb2RlID0gTlNGN0Z1bmN0aW9uS2V5OwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6OkZ1bmN0aW9uODoKLSAgICAgICAgY2hhckNvZGUgPSBOU0Y4RnVuY3Rpb25LZXk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6RnVuY3Rpb245OgotICAgICAgICBjaGFyQ29kZSA9IE5TRjlGdW5jdGlvbktleTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjEwOgotICAgICAgICBjaGFyQ29kZSA9IE5TRjEwRnVuY3Rp
b25LZXk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24xMToKLSAgICAgICAgY2hhckNvZGUgPSBOU0Yx
MUZ1bmN0aW9uS2V5OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMTI6Ci0gICAgICAgIGNoYXJDb2Rl
ID0gTlNGMTJGdW5jdGlvbktleTsKKyAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9
CiAKLSAgICBBU1NFUlQoY2hhbmdlZE1vZGlmaWVycyB8fCBpbnRlcmFjdGlvbiA9PSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpLZXlib2FyZEludGVyYWN0aW9uVHlwZTo6S2V5UHJl
c3MpOworICAgIC8vIFVJS2l0IGRvZXMgbm90IHNlbmQga2V5IGNvZGVzIGZvciB2aXJ0dWFsIGtl
eXMgZXZlbiBmb3IgYSBoYXJkd2FyZSBrZXlib2FyZC4KKyAgICAvLyBJbnN0ZWFkLCBpdCBzZW5k
cyBzaW5nbGUgdW5pY2hhcnMgYW5kIFdlYkNvcmUgbWFwcyB0aGVzZSB0byAid2luZG93cyIga2V5
IGNvZGVzLgorICAgIC8vIFN5bnRoZXNpemUgYSBzaW5nbGUgdW5pY2hhciBzdWNoIHRoYXQgdGhl
IGNvcnJlY3Qga2V5IGNvZGUgaXMgaW5mZXJyZWQuCisgICAgc3RkOjpvcHRpb25hbDx1bmljaGFy
PiBjaGFyQ29kZSA9IGNoYXJDb2RlRm9yVmlydHVhbEtleShrZXkpOworICAgIHN0ZDo6b3B0aW9u
YWw8dW5pY2hhcj4gY2hhckNvZGVJZ25vcmluZ01vZGlmaWVycyA9IGNoYXJDb2RlSWdub3JpbmdN
b2RpZmllcnNGb3JWaXJ0dWFsS2V5KGtleSk7CiAKICAgICAvLyBGSVhNRTogY29uc2lkZXIgdXNp
bmcgVUlLaXQgU1BJIHRvIG5vcm1hbGl6ZSAnY2hhcmFjdGVycycsIGkuZS4sIGNoYW5naW5nICog
dG8gU2hpZnQtOCwKICAgICAvLyBhbmQgcGFzc2luZyB0aGF0IGluIHRvIGNoYXJhY3RlcnNJZ25v
cmluZ01vZGlmaWVycy4gVGhpcyBpcyBwcm9iYWJseSBub3Qgd29ydGggdGhlIHRyb3VibGUKQEAg
LTI2NywxOSArMTE3LDE5IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2lt
dWxhdGVLZXlTdHJva2UoV2ViUGFnZVByb3h5JiBwYWdlLCBJbnNwZWN0CiAgICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpLZXlib2FyZEludGVyYWN0aW9uVHlwZTo6S2V5
UHJlc3M6IHsKICAgICAgICAgbV9jdXJyZW50TW9kaWZpZXJzIHw9IGNoYW5nZWRNb2RpZmllcnM7
CiAKLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbW1s6OldlYkV2ZW50IGFsbG9j
XSBpbml0V2l0aEtleUV2ZW50VHlwZTpXZWJFdmVudEtleURvd24gdGltZVN0YW1wOkNGQWJzb2x1
dGVUaW1lR2V0Q3VycmVudCgpIGNoYXJhY3RlcnM6Y2hhcmFjdGVycyBjaGFyYWN0ZXJzSWdub3Jp
bmdNb2RpZmllcnM6Y2hhcmFjdGVycyBtb2RpZmllcnM6bV9jdXJyZW50TW9kaWZpZXJzIGlzUmVw
ZWF0aW5nOk5PIHdpdGhGbGFnczppbnB1dEZsYWdzIHdpdGhJbnB1dE1hbmFnZXJIaW50Om5pbCBr
ZXlDb2RlOmtleUNvZGUgaXNUYWJLZXk6aXNUYWJLZXldIGF1dG9yZWxlYXNlXV07CisgICAgICAg
IFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W1tbOjpXZWJFdmVudCBhbGxvY10gaW5pdFdpdGhL
ZXlFdmVudFR5cGU6V2ViRXZlbnRLZXlEb3duIHRpbWVTdGFtcDpDRkFic29sdXRlVGltZUdldEN1
cnJlbnQoKSBjaGFyYWN0ZXJzOmNoYXJhY3RlcnMgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJz
OnVubW9kaWZpZWRDaGFyYWN0ZXJzIG1vZGlmaWVyczptX2N1cnJlbnRNb2RpZmllcnMgaXNSZXBl
YXRpbmc6Tk8gd2l0aEZsYWdzOmlucHV0RmxhZ3Mgd2l0aElucHV0TWFuYWdlckhpbnQ6bmlsIGtl
eUNvZGU6a2V5Q29kZSBpc1RhYktleTppc1RhYktleV0gYXV0b3JlbGVhc2VdXTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGU6OktleVJlbGVhc2U6IHsKICAgICAgICAgbV9jdXJyZW50
TW9kaWZpZXJzICY9IH5jaGFuZ2VkTW9kaWZpZXJzOwogCi0gICAgICAgIFtldmVudHNUb0JlU2Vu
dCBhZGRPYmplY3Q6W1tbOjpXZWJFdmVudCBhbGxvY10gaW5pdFdpdGhLZXlFdmVudFR5cGU6V2Vi
RXZlbnRLZXlVcCB0aW1lU3RhbXA6Q0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgY2hhcmFjdGVy
czpjaGFyYWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJzIG1vZGlm
aWVyczptX2N1cnJlbnRNb2RpZmllcnMgaXNSZXBlYXRpbmc6Tk8gd2l0aEZsYWdzOmlucHV0Rmxh
Z3Mgd2l0aElucHV0TWFuYWdlckhpbnQ6bmlsIGtleUNvZGU6a2V5Q29kZSBpc1RhYktleTppc1Rh
YktleV0gYXV0b3JlbGVhc2VdXTsKKyAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpb
W1s6OldlYkV2ZW50IGFsbG9jXSBpbml0V2l0aEtleUV2ZW50VHlwZTpXZWJFdmVudEtleVVwIHRp
bWVTdGFtcDpDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSBjaGFyYWN0ZXJzOmNoYXJhY3RlcnMg
Y2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOnVubW9kaWZpZWRDaGFyYWN0ZXJzIG1vZGlmaWVy
czptX2N1cnJlbnRNb2RpZmllcnMgaXNSZXBlYXRpbmc6Tk8gd2l0aEZsYWdzOmlucHV0RmxhZ3Mg
d2l0aElucHV0TWFuYWdlckhpbnQ6bmlsIGtleUNvZGU6a2V5Q29kZSBpc1RhYktleTppc1RhYktl
eV0gYXV0b3JlbGVhc2VdXTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGU6Okluc2Vy
dEJ5S2V5OiB7CiAgICAgICAgIC8vIE1vZGlmaWVycyBvbmx5IGNoYW5nZSB3aXRoIEtleVByZXNz
IG9yIEtleVJlbGVhc2UsIHRoaXMgY29kZSBwYXRoIGlzIGZvciBzaW5nbGUgY2hhcmFjdGVycy4K
LSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbW1s6OldlYkV2ZW50IGFsbG9jXSBp
bml0V2l0aEtleUV2ZW50VHlwZTpXZWJFdmVudEtleURvd24gdGltZVN0YW1wOkNGQWJzb2x1dGVU
aW1lR2V0Q3VycmVudCgpIGNoYXJhY3RlcnM6Y2hhcmFjdGVycyBjaGFyYWN0ZXJzSWdub3JpbmdN
b2RpZmllcnM6Y2hhcmFjdGVycyBtb2RpZmllcnM6bV9jdXJyZW50TW9kaWZpZXJzIGlzUmVwZWF0
aW5nOk5PIHdpdGhGbGFnczppbnB1dEZsYWdzIHdpdGhJbnB1dE1hbmFnZXJIaW50Om5pbCBrZXlD
b2RlOmtleUNvZGUgaXNUYWJLZXk6aXNUYWJLZXldIGF1dG9yZWxlYXNlXV07Ci0gICAgICAgIFtl
dmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W1tbOjpXZWJFdmVudCBhbGxvY10gaW5pdFdpdGhLZXlF
dmVudFR5cGU6V2ViRXZlbnRLZXlVcCB0aW1lU3RhbXA6Q0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50
KCkgY2hhcmFjdGVyczpjaGFyYWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFy
YWN0ZXJzIG1vZGlmaWVyczptX2N1cnJlbnRNb2RpZmllcnMgaXNSZXBlYXRpbmc6Tk8gd2l0aEZs
YWdzOmlucHV0RmxhZ3Mgd2l0aElucHV0TWFuYWdlckhpbnQ6bmlsIGtleUNvZGU6a2V5Q29kZSBp
c1RhYktleTppc1RhYktleV0gYXV0b3JlbGVhc2VdXTsKKyAgICAgICAgW2V2ZW50c1RvQmVTZW50
IGFkZE9iamVjdDpbW1s6OldlYkV2ZW50IGFsbG9jXSBpbml0V2l0aEtleUV2ZW50VHlwZTpXZWJF
dmVudEtleURvd24gdGltZVN0YW1wOkNGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpIGNoYXJhY3Rl
cnM6Y2hhcmFjdGVycyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6dW5tb2RpZmllZENoYXJh
Y3RlcnMgbW9kaWZpZXJzOm1fY3VycmVudE1vZGlmaWVycyBpc1JlcGVhdGluZzpOTyB3aXRoRmxh
Z3M6aW5wdXRGbGFncyB3aXRoSW5wdXRNYW5hZ2VySGludDpuaWwga2V5Q29kZTprZXlDb2RlIGlz
VGFiS2V5OmlzVGFiS2V5XSBhdXRvcmVsZWFzZV1dOworICAgICAgICBbZXZlbnRzVG9CZVNlbnQg
YWRkT2JqZWN0OltbWzo6V2ViRXZlbnQgYWxsb2NdIGluaXRXaXRoS2V5RXZlbnRUeXBlOldlYkV2
ZW50S2V5VXAgdGltZVN0YW1wOkNGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpIGNoYXJhY3RlcnM6
Y2hhcmFjdGVycyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6dW5tb2RpZmllZENoYXJhY3Rl
cnMgbW9kaWZpZXJzOm1fY3VycmVudE1vZGlmaWVycyBpc1JlcGVhdGluZzpOTyB3aXRoRmxhZ3M6
aW5wdXRGbGFncyB3aXRoSW5wdXRNYW5hZ2VySGludDpuaWwga2V5Q29kZTprZXlDb2RlIGlzVGFi
S2V5OmlzVGFiS2V5XSBhdXRvcmVsZWFzZV1dOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vbWFjL1dl
YkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9t
YXRpb24vbWFjL1dlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tCmluZGV4IDdhZGZiMzU2NGFjYzUw
YmY5MDllMDljYzViMjY5Mzg2NmExMmU1NmUuLjJmNjJjYjZjMTg4ZTA5YWJlNDM1M2Y5NGExZmQ3
ZWY1ZDVkODMzYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0
aW9uL21hYy9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0KQEAgLTE1
MSw3ICsxNTEsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzZW5kU3ludGhlc2l6ZWRF
dmVudHNUb1BhZ2UoV2ViUGFnZVByb3h5JiBwYWdlLCBOU0FycgogICAgIGZvciAoTlNFdmVudCAq
ZXZlbnQgaW4gZXZlbnRzVG9TZW5kKSB7CiAgICAgICAgIC8vIFRha2UgZm9jdXMgYmFjayBpbiBj
YXNlIHRoZSBJbnNwZWN0b3IgYmVjYW1lIGZvY3VzZWQgd2hpbGUgdGhlIHByaW9yIGNvbW1hbmQg
b3IKICAgICAgICAgLy8gTlNFdmVudCB3YXMgZGVsaXZlcmVkIHRvIHRoZSB3aW5kb3cuCi0gICAg
ICAgIFt3aW5kb3cgbWFrZUtleUFuZE9yZGVyRnJvbnQ6bmlsXTsKKyAgICAgICAgW3dpbmRvdyBi
ZWNvbWVLZXlXaW5kb3ddOwogCiAgICAgICAgIG1hcmtFdmVudEFzU3ludGhlc2l6ZWRGb3JBdXRv
bWF0aW9uKGV2ZW50KTsKICAgICAgICAgW3dpbmRvdyBzZW5kRXZlbnQ6ZXZlbnRdOwpAQCAtMjgz
LDI2NCArMjgzLDI0NiBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVs
YXRlTW91c2VJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsCiAgICAgc2VuZFN5bnRoZXNp
emVkRXZlbnRzVG9QYWdlKHBhZ2UsIGV2ZW50c1RvQmVTZW50LmdldCgpKTsKIH0KIAotdm9pZCBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVN0cm9rZShXZWJQYWdlUHJv
eHkmIHBhZ2UsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OktleWJvYXJkSW50ZXJh
Y3Rpb25UeXBlIGludGVyYWN0aW9uLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpW
aXJ0dWFsS2V5IGtleSkKK3N0YXRpYyBib29sIGtleUhhc1N0aWNreU1vZGlmaWVyKEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXkga2V5KQogewotICAgIC8vIElmIHRy
dWUsIHRoZSBrZXkncyBtb2RpZmllciBmbGFncyBzaG91bGQgYWZmZWN0IG90aGVyIGV2ZW50cyB3
aGlsZSBwcmVzc2VkIGRvd24uCi0gICAgYm9vbCBpc1N0aWNreU1vZGlmaWVyID0gZmFsc2U7Ci0g
ICAgLy8gVGhlIG1vZGlmaWVycyBjaGFuZ2VkIGJ5IHRoZSB2aXJ0dWFsIGtleSB3aGVuIGl0IGlz
IHByZXNzZWQgb3IgcmVsZWFzZWQuCi0gICAgLy8gVGhlIG1hcHBpbmcgZnJvbSBrZXlzIHRvIG1v
ZGlmaWVycyBpcyBzcGVjaWZpZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gZm9yIE5TRXZlbnQuCi0g
ICAgTlNFdmVudE1vZGlmaWVyRmxhZ3MgY2hhbmdlZE1vZGlmaWVycyA9IDA7Ci0gICAgLy8gVGhl
IGxpa2VseSBrZXlDb2RlIGZvciB0aGUgdmlydHVhbCBrZXkgYXMgZGVmaW5lZCBpbiA8SElUb29s
Ym94L0V2ZW50cy5oPi4KLSAgICBpbnQga2V5Q29kZSA9IDA7Ci0gICAgLy8gVHlwaWNhbCBjaGFy
YWN0ZXJzIHByb2R1Y2VkIGJ5IHRoZSB2aXJ0dWFsIGtleSwgaWYgYW55LgotICAgIE5TU3RyaW5n
ICpjaGFyYWN0ZXJzID0gQCIiOworICAgIC8vIFJldHVybnMgd2hldGhlciB0aGUga2V5J3MgbW9k
aWZpZXIgZmxhZ3Mgc2hvdWxkIGFmZmVjdCBvdGhlciBldmVudHMgd2hpbGUgcHJlc3NlZCBkb3du
LgorICAgIHN3aXRjaCAoa2V5KSB7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5OjpTaGlmdDoKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkNvbnRyb2w6CisgICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpBbHRlcm5hdGU6CisgICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpNZXRhOgorICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6Q29tbWFuZDoKKyAg
ICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICAvLyBGSVhNRTogdGhpcyBmdW5jdGlvbiBhbmQgdGhl
IEF1dG9tYXRpb24gcHJvdG9jb2wgZW51bSBzaG91bGQgcHJvYmFibHkgYWRvcHQga2V5IG5hbWVz
Ci0gICAgLy8gZnJvbSBXM0MgVUlFdmVudHMgc3RhbmRhcmQuIEZvciBtb3JlIGRldGFpbHM6IGh0
dHBzOi8vdzNjLmdpdGh1Yi5pby91aWV2ZW50cy1jb2RlLworICAgIGRlZmF1bHQ6CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9Cit9CiAKK3N0YXRpYyBpbnQga2V5Q29kZUZvclZpcnR1YWxL
ZXkoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleSBrZXkpCit7Cisg
ICAgLy8gVGhlIGxpa2VseSBrZXlDb2RlIGZvciB0aGUgdmlydHVhbCBrZXkgYXMgZGVmaW5lZCBp
biA8SElUb29sYm94L0V2ZW50cy5oPi4KICAgICBzd2l0Y2ggKGtleSkgewogICAgIGNhc2UgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6U2hpZnQ6Ci0gICAgICAg
IGlzU3RpY2t5TW9kaWZpZXIgPSB0cnVlOwotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5T
RXZlbnRNb2RpZmllckZsYWdTaGlmdDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19TaGlmdDsKLSAg
ICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBrVktfU2hpZnQ7CiAgICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpDb250cm9sOgotICAgICAgICBp
c1N0aWNreU1vZGlmaWVyID0gdHJ1ZTsKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2
ZW50TW9kaWZpZXJGbGFnQ29udHJvbDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19Db250cm9sOwot
ICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19Db250cm9sOwogICAgIGNhc2UgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6QWx0ZXJuYXRlOgotICAg
ICAgICBpc1N0aWNreU1vZGlmaWVyID0gdHJ1ZTsKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8
PSBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX09wdGlv
bjsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBrVktfT3B0aW9uOwogICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TWV0YToKICAgICAg
ICAgLy8gVGhlICdtZXRhJyBrZXkgZG9lcyBub3QgZXhpc3Qgb24gQXBwbGUga2V5Ym9hcmRzIGFu
ZCBpcyB1c3VhbGx5CiAgICAgICAgIC8vIG1hcHBlZCB0byB0aGUgQ29tbWFuZCBrZXkgd2hlbiB1
c2luZyB0aGlyZC1wYXJ0eSBrZXlib2FyZHMuCiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpDb21tYW5kOgotICAgICAgICBpc1N0aWNreU1vZGlm
aWVyID0gdHJ1ZTsKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnQ29tbWFuZDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19Db21tYW5kOwotICAgICAgICBicmVh
azsKKyAgICAgICAgcmV0dXJuIGtWS19Db21tYW5kOwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6SGVscDoKLSAgICAgICAgY2hhbmdlZE1vZGlm
aWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnSGVscCB8IE5TRXZlbnRNb2RpZmllckZsYWdGdW5j
dGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19IZWxwOwotICAgICAgICBicmVhazsKKyAgICAg
ICAgcmV0dXJuIGtWS19IZWxwOwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6VmlydHVhbEtleTo6QmFja3NwYWNlOgotICAgICAgICBrZXlDb2RlID0ga1ZLX0RlbGV0
ZTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBrVktfRGVsZXRlOwogICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6VGFiOgotICAgICAg
ICBrZXlDb2RlID0ga1ZLX1RhYjsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBrVktf
VGFiOwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtl
eTo6Q2xlYXI6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxh
Z051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWRDbGVhcjsKLSAg
ICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBrVktfQU5TSV9LZXlwYWRDbGVhcjsKICAgICBj
YXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkVudGVyOgot
ICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkRW50ZXI7Ci0gICAgICAgIGJyZWFrOwor
ICAgICAgICByZXR1cm4ga1ZLX0FOU0lfS2V5cGFkRW50ZXI7CiAgICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYXVzZToKLSAgICAgICAgLy8gVGhl
ICdwYXVzZScga2V5IGRvZXMgbm90IGV4aXN0IG9uIEFwcGxlIGtleWJvYXJkcyBhbmQgaGFzIG5v
IGtleWNvZGUuCisgICAgICAgIC8vIFRoZSAncGF1c2UnIGtleSBkb2VzIG5vdCBleGlzdCBvbiBB
cHBsZSBrZXlib2FyZHMgYW5kIGhhcyBubyByZXR1cm4KICAgICAgICAgLy8gVGhlIHNlbWFudGlj
cyBhcmUgdW5jbGVhciBzbyBqdXN0IGFib3J0IGFuZCBkbyBub3RoaW5nLgotICAgICAgICByZXR1
cm47CisgICAgICAgIHJldHVybiAwOwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6Q2FuY2VsOgotICAgICAgICAvLyBUaGUgJ2NhbmNlbCcga2V5
IGRvZXMgbm90IGV4aXN0IG9uIEFwcGxlIGtleWJvYXJkcyBhbmQgaGFzIG5vIGtleWNvZGUuCisg
ICAgICAgIC8vIFRoZSAnY2FuY2VsJyBrZXkgZG9lcyBub3QgZXhpc3Qgb24gQXBwbGUga2V5Ym9h
cmRzIGFuZCBoYXMgbm8gcmV0dXJuCiAgICAgICAgIC8vIEFjY29yZGluZyB0byB0aGUgaW50ZXJu
ZXQgaXRzIGZ1bmN0aW9uYWxpdHkgaXMgc2ltaWxhciB0byAnRXNjYXBlJy4KICAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkVzY2FwZToKLSAgICAg
ICAga2V5Q29kZSA9IGtWS19Fc2NhcGU7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4g
a1ZLX0VzY2FwZTsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZp
cnR1YWxLZXk6OlBhZ2VVcDoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfUGFnZVVwOwotICAgICAg
ICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19QYWdlVXA7CiAgICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYWdlRG93bjoKLSAgICAgICAgY2hh
bmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtl
eUNvZGUgPSBrVktfUGFnZURvd247Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4ga1ZL
X1BhZ2VEb3duOwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6RW5kOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmll
ckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19FbmQ7Ci0gICAgICAgIGJyZWFr
OworICAgICAgICByZXR1cm4ga1ZLX0VuZDsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkhvbWU6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0hv
bWU7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4ga1ZLX0hvbWU7CiAgICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpMZWZ0QXJyb3c6Ci0g
ICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQg
fCBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfTGVm
dEFycm93OwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19MZWZ0QXJyb3c7CiAg
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpVcEFy
cm93OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1l
cmljUGFkIHwgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0g
a1ZLX1VwQXJyb3c7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4ga1ZLX1VwQXJyb3c7
CiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpS
aWdodEFycm93OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZs
YWdOdW1lcmljUGFkIHwgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlD
b2RlID0ga1ZLX1JpZ2h0QXJyb3c7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4ga1ZL
X1JpZ2h0QXJyb3c7CiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpW
aXJ0dWFsS2V5OjpEb3duQXJyb3c6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ051bWVyaWNQYWQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0g
ICAgICAgIGtleUNvZGUgPSBrVktfRG93bkFycm93OwotICAgICAgICBicmVhazsKKyAgICAgICAg
cmV0dXJuIGtWS19Eb3duQXJyb3c7CiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5OjpJbnNlcnQ6Ci0gICAgICAgIC8vIFRoZSAnaW5zZXJ0JyBrZXkg
ZG9lcyBub3QgZXhpc3Qgb24gQXBwbGUga2V5Ym9hcmRzIGFuZCBoYXMgbm8ga2V5Y29kZS4KKyAg
ICAgICAgLy8gVGhlICdpbnNlcnQnIGtleSBkb2VzIG5vdCBleGlzdCBvbiBBcHBsZSBrZXlib2Fy
ZHMgYW5kIGhhcyBubyByZXR1cm4KICAgICAgICAgLy8gVGhlIHNlbWFudGljcyBhcmUgdW5jbGVh
ciBzbyBqdXN0IGFib3J0IGFuZCBkbyBub3RoaW5nLgotICAgICAgICByZXR1cm47CisgICAgICAg
IHJldHVybiAwOwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6RGVsZXRlOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2Rp
ZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19Gb3J3YXJkRGVsZXRlOwot
ICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19Gb3J3YXJkRGVsZXRlOwogICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6U3BhY2U6Ci0g
ICAgICAgIGtleUNvZGUgPSBrVktfU3BhY2U7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIiAiOwot
ICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19TcGFjZTsKICAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlNlbWljb2xvbjoKLSAgICAg
ICAga2V5Q29kZSA9IGtWS19BTlNJX1NlbWljb2xvbjsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAi
OyI7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4ga1ZLX0FOU0lfU2VtaWNvbG9uOwog
ICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RXF1
YWxzOgotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfRXF1YWw7Ci0gICAgICAgIGNoYXJhY3Rl
cnMgPSBAIj0iOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19BTlNJX0VxdWFs
OwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6
UmV0dXJuOgotICAgICAgICBrZXlDb2RlID0ga1ZLX1JldHVybjsKLSAgICAgICAgYnJlYWs7Cisg
ICAgICAgIHJldHVybiBrVktfUmV0dXJuOwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkMDoKLSAgICAgICAgY2hhbmdlZE1vZGlm
aWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9
IGtWS19BTlNJX0tleXBhZDA7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjAiOwotICAgICAgICBi
cmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19BTlNJX0tleXBhZDA7CiAgICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQxOgotICAgICAg
ICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOwotICAg
ICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkMTsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAi
MSI7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4ga1ZLX0FOU0lfS2V5cGFkMTsKICAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJl
clBhZDI6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051
bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQyOwotICAgICAgICBj
aGFyYWN0ZXJzID0gQCIyIjsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBrVktfQU5T
SV9LZXlwYWQyOwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6TnVtYmVyUGFkMzoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50
TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBh
ZDM7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjMiOwotICAgICAgICBicmVhazsKKyAgICAgICAg
cmV0dXJuIGtWS19BTlNJX0tleXBhZDM7CiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ0OgotICAgICAgICBjaGFuZ2VkTW9kaWZp
ZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0g
a1ZLX0FOU0lfS2V5cGFkNDsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAiNCI7Ci0gICAgICAgIGJy
ZWFrOworICAgICAgICByZXR1cm4ga1ZLX0FOU0lfS2V5cGFkNDsKICAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDU6Ci0gICAgICAg
IGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAg
ICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQ1OwotICAgICAgICBjaGFyYWN0ZXJzID0gQCI1
IjsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBrVktfQU5TSV9LZXlwYWQ1OwogICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVy
UGFkNjoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVt
ZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZDY7Ci0gICAgICAgIGNo
YXJhY3RlcnMgPSBAIjYiOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19BTlNJ
X0tleXBhZDY7CiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0
dWFsS2V5OjpOdW1iZXJQYWQ3OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdOdW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFk
NzsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAiNyI7Ci0gICAgICAgIGJyZWFrOworICAgICAgICBy
ZXR1cm4ga1ZLX0FOU0lfS2V5cGFkNzsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDg6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmll
cnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBr
VktfQU5TSV9LZXlwYWQ4OwotICAgICAgICBjaGFyYWN0ZXJzID0gQCI4IjsKLSAgICAgICAgYnJl
YWs7CisgICAgICAgIHJldHVybiBrVktfQU5TSV9LZXlwYWQ4OwogICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkOToKLSAgICAgICAg
Y2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAg
ICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZDk7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjki
OwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19BTlNJX0tleXBhZDk7CiAgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQ
YWRNdWx0aXBseToKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZE11bHRpcGx5
OwotICAgICAgICBjaGFyYWN0ZXJzID0gQCIqIjsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJl
dHVybiBrVktfQU5TSV9LZXlwYWRNdWx0aXBseTsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZEFkZDoKLSAgICAgICAgY2hhbmdl
ZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5
Q29kZSA9IGtWS19BTlNJX0tleXBhZFBsdXM7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIisiOwot
ICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19BTlNJX0tleXBhZFBsdXM7CiAgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQ
YWRTdWJ0cmFjdDoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZE1pbnVzOwot
ICAgICAgICBjaGFyYWN0ZXJzID0gQCItIjsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVy
biBrVktfQU5TSV9LZXlwYWRNaW51czsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZFNlcGFyYXRvcjoKLSAgICAgICAgY2hhbmdl
ZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKICAgICAgICAgLy8g
VGhlICdTZXBhcmF0b3InIGtleSBpcyBvbmx5IHByZXNlbnQgb24gYSBmZXcgaW50ZXJuYXRpb25h
bCBrZXlib2FyZHMuCiAgICAgICAgIC8vIEl0IGlzIHVzdWFsbHkgbWFwcGVkIHRvIHRoZSBzYW1l
IGNoYXJhY3RlciBhcyBEZWNpbWFsICgnLicgb3IgJywnKS4KICAgICAgICAgRkFMTFRIUk9VR0g7
CiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpO
dW1iZXJQYWREZWNpbWFsOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2Rp
ZmllckZsYWdOdW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkRGVj
aW1hbDsKKyAgICAgICAgcmV0dXJuIGtWS19BTlNJX0tleXBhZERlY2ltYWw7CiAgICAgICAgIC8v
IEZJWE1FOiB0aGlzIG1pZ2h0IGJlIGxvY2FsZS1kZXBlbmRlbnQuIFNlZSB0aGUgYWJvdmUgY29t
bWVudC4KLSAgICAgICAgY2hhcmFjdGVycyA9IEAiLiI7Ci0gICAgICAgIGJyZWFrOwogICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFk
RGl2aWRlOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdO
dW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkRGl2aWRlOwotICAg
ICAgICBjaGFyYWN0ZXJzID0gQCIvIjsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBr
VktfQU5TSV9LZXlwYWREaXZpZGU7CiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjE6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0Yx
OwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19GMTsKICAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMjoKLSAgICAg
ICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAg
ICAgIGtleUNvZGUgPSBrVktfRjI7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4ga1ZL
X0YyOwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtl
eTo6RnVuY3Rpb24zOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmll
ckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19GMzsKLSAgICAgICAgYnJlYWs7
CisgICAgICAgIHJldHVybiBrVktfRjM7CiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjQ6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmll
cnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZL
X0Y0OwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19GNDsKICAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uNToKLSAg
ICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0g
ICAgICAgIGtleUNvZGUgPSBrVktfRjU7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4g
a1ZLX0Y1OwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6RnVuY3Rpb242OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2Rp
ZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19GNjsKLSAgICAgICAgYnJl
YWs7CisgICAgICAgIHJldHVybiBrVktfRjY7CiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjc6Ci0gICAgICAgIGNoYW5nZWRNb2Rp
ZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0g
a1ZLX0Y3OwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19GNzsKICAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uODoK
LSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247
Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRjg7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1
cm4ga1ZLX0Y4OwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6RnVuY3Rpb245OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19GOTsKLSAgICAgICAg
YnJlYWs7CisgICAgICAgIHJldHVybiBrVktfRjk7CiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjEwOgotICAgICAgICBjaGFuZ2Vk
TW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29k
ZSA9IGtWS19GMTA7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4ga1ZLX0YxMDsKICAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0
aW9uMTE6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1
bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0YxMTsKLSAgICAgICAgYnJlYWs7CisgICAg
ICAgIHJldHVybiBrVktfRjExOwogICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24xMjoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8
PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRjEy
OwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGtWS19GMTI7CiAgICAgfQorfQogCi0g
ICAgYXV0byBldmVudHNUb0JlU2VudCA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10g
aW5pdF0pOworc3RhdGljIE5TRXZlbnRNb2RpZmllckZsYWdzIGV2ZW50TW9kaWZpZXJGbGFnc0Zv
clZpcnR1YWxLZXkoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleSBr
ZXkpCit7CisgICAgLy8gQ29tcHV0ZXMgdGhlIG1vZGlmaWVycyBjaGFuZ2VkIGJ5IHRoZSB2aXJ0
dWFsIGtleSB3aGVuIGl0IGlzIHByZXNzZWQgb3IgcmVsZWFzZWQuCisgICAgLy8gVGhlIG1hcHBp
bmcgZnJvbSBrZXlzIHRvIG1vZGlmaWVycyBpcyBzcGVjaWZpZWQgaW4gdGhlIGRvY3VtZW50YXRp
b24gZm9yIE5TRXZlbnQuCisgICAgc3dpdGNoIChrZXkpIHsKKyAgICBjYXNlIEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlNoaWZ0OgorICAgICAgICByZXR1cm4g
TlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OworCisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpDb250cm9sOgorICAgICAgICByZXR1cm4gTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbnRyb2w7CisKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6OkFsdGVybmF0ZToKKyAgICAgICAgcmV0dXJuIE5TRXZlbnRN
b2RpZmllckZsYWdPcHRpb247CisKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OlZpcnR1YWxLZXk6Ok1ldGE6CisgICAgICAgIC8vIFRoZSAnbWV0YScga2V5IGRvZXMg
bm90IGV4aXN0IG9uIEFwcGxlIGtleWJvYXJkcyBhbmQgaXMgdXN1YWxseQorICAgICAgICAvLyBt
YXBwZWQgdG8gdGhlIENvbW1hbmQga2V5IHdoZW4gdXNpbmcgdGhpcmQtcGFydHkga2V5Ym9hcmRz
LgorICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6
Q29tbWFuZDoKKyAgICAgICAgcmV0dXJuIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kOworCisg
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpIZWxw
OgorICAgICAgICByZXR1cm4gTlNFdmVudE1vZGlmaWVyRmxhZ0hlbHAgfCBOU0V2ZW50TW9kaWZp
ZXJGbGFnRnVuY3Rpb247CisKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6OlBhZ2VVcDoKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6OlBhZ2VEb3duOgorICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RW5kOgorICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6SG9tZToKKyAgICAgICAgcmV0dXJuIE5T
RXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKIAotICAgIEFTU0VSVChpc1N0aWNreU1vZGlmaWVy
IHx8IGludGVyYWN0aW9uID09IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OktleWJv
YXJkSW50ZXJhY3Rpb25UeXBlOjpLZXlQcmVzcyk7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpMZWZ0QXJyb3c6CisgICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpVcEFycm93OgorICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6UmlnaHRBcnJvdzoK
KyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkRv
d25BcnJvdzoKKyAgICAgICAgcmV0dXJuIE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkIHwg
TlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworCisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpEZWxldGU6CisgICAgICAgIHJldHVybiBOU0V2
ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CisKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkNsZWFyOgorICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkMDoKKyAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDE6CisgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQ
YWQyOgorICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtl
eTo6TnVtYmVyUGFkMzoKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlZpcnR1YWxLZXk6Ok51bWJlclBhZDQ6CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ1OgorICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkNjoKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDc6Cisg
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1i
ZXJQYWQ4OgorICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6TnVtYmVyUGFkOToKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6Ok51bWJlclBhZE11bHRpcGx5OgorICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkQWRkOgorICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkU3Vi
dHJhY3Q6CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFs
S2V5OjpOdW1iZXJQYWRTZXBhcmF0b3I6CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWREZWNpbWFsOgorICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkRGl2aWRlOgor
ICAgICAgICByZXR1cm4gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7CisKKyAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMToK
KyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1
bmN0aW9uMjoKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1
YWxLZXk6OkZ1bmN0aW9uMzoKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uNDoKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uNToKKyAgICBjYXNlIEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uNjoKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uNzoKKyAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0
aW9uODoKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6OkZ1bmN0aW9uOToKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMTA6CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjExOgorICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24xMjoKKyAgICAgICAgcmV0
dXJuIE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKworICAgIGRlZmF1bHQ6CisgICAgICAg
IHJldHVybiAwOworICAgIH0KK30KKwordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZv
cm1TaW11bGF0ZUtleVN0cm9rZShXZWJQYWdlUHJveHkmIHBhZ2UsIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OktleWJvYXJkSW50ZXJhY3Rpb25UeXBlIGludGVyYWN0aW9uLCBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5IGtleSkKK3sKKyAgICAvLyBG
SVhNRTogdGhpcyBmdW5jdGlvbiBhbmQgdGhlIEF1dG9tYXRpb24gcHJvdG9jb2wgZW51bSBzaG91
bGQgcHJvYmFibHkgYWRvcHQga2V5IG5hbWVzCisgICAgLy8gZnJvbSBXM0MgVUlFdmVudHMgc3Rh
bmRhcmQuIEZvciBtb3JlIGRldGFpbHM6IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby91aWV2ZW50cy1j
b2RlLworCisgICAgYm9vbCBpc1N0aWNreU1vZGlmaWVyID0ga2V5SGFzU3RpY2t5TW9kaWZpZXIo
a2V5KTsKKyAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyBjaGFuZ2VkTW9kaWZpZXJzID0gZXZlbnRN
b2RpZmllckZsYWdzRm9yVmlydHVhbEtleShrZXkpOworICAgIGludCBrZXlDb2RlID0ga2V5Q29k
ZUZvclZpcnR1YWxLZXkoa2V5KTsKKworICAgIC8vIEZJWE1FOiBjb25zaWRlciB1c2luZyBBcHBL
aXQgU1BJIHRvIG5vcm1hbGl6ZSAnY2hhcmFjdGVycycsIGkuZS4sIGNoYW5naW5nICogdG8gU2hp
ZnQtOCwKKyAgICAvLyBhbmQgcGFzc2luZyB0aGF0IGluIHRvIGNoYXJhY3RlcnNJZ25vcmluZ01v
ZGlmaWVycy4gV2UgY291bGQgaGFyZGNvZGUgdGhpcyBmb3IgQVNDSUkgaWYgbmVlZGVkLgorICAg
IHN0ZDo6b3B0aW9uYWw8dW5pY2hhcj4gY2hhckNvZGUgPSBjaGFyQ29kZUZvclZpcnR1YWxLZXko
a2V5KTsKKyAgICBzdGQ6Om9wdGlvbmFsPHVuaWNoYXI+IGNoYXJDb2RlSWdub3JpbmdNb2RpZmll
cnMgPSBjaGFyQ29kZUlnbm9yaW5nTW9kaWZpZXJzRm9yVmlydHVhbEtleShrZXkpOworICAgIE5T
U3RyaW5nICpjaGFyYWN0ZXJzID0gY2hhckNvZGUgPyBbTlNTdHJpbmcgc3RyaW5nV2l0aENoYXJh
Y3RlcnM6JmNoYXJDb2RlLnZhbHVlKCkgbGVuZ3RoOjFdIDogbmlsOworICAgIE5TU3RyaW5nICp1
bm1vZGlmaWVkQ2hhcmFjdGVycyA9IGNoYXJDb2RlSWdub3JpbmdNb2RpZmllcnMgPyBbTlNTdHJp
bmcgc3RyaW5nV2l0aENoYXJhY3RlcnM6JmNoYXJDb2RlSWdub3JpbmdNb2RpZmllcnMudmFsdWUo
KSBsZW5ndGg6MV0gOiBuaWw7CisKKyAgICBhdXRvIGV2ZW50c1RvQmVTZW50ID0gYWRvcHROUyhb
W05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CiAKICAgICBOU0V2ZW50TW9kaWZpZXJGbGFn
cyBleGlzdGluZ01vZGlmaWVycyA9IFtOU0V2ZW50IG1vZGlmaWVyRmxhZ3NdOwogICAgIE5TRXZl
bnRNb2RpZmllckZsYWdzIHVwZGF0ZWRNb2RpZmllcnMgPSAwOworCisgICAgLy8gRklYTUU6IHRo
aXMgdGltZXN0YW1wIGlzIG5vdCBldmVuIGNsb3NlIHRvIG1hdGNoaW5nIG5hdGl2ZSBldmVudHMu
IEZpbmQgb3V0IGhvdyB0byBnZXQgY2xvc2VyLgogICAgIE5TVGltZUludGVydmFsIHRpbWVzdGFt
cCA9IFtOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXTsKICAgICBOU1dpbmRv
dyAqd2luZG93ID0gcGFnZS5wbGF0Zm9ybVdpbmRvdygpOwogICAgIE5TSW50ZWdlciB3aW5kb3dO
dW1iZXIgPSB3aW5kb3cud2luZG93TnVtYmVyOwpAQCAtNTUwLDEzICs1MzIsMTMgQEAgdm9pZCBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVN0cm9rZShXZWJQYWdlUHJv
eHkmIHBhZ2UsIEluc3BlY3QKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OktleWJvYXJkSW50ZXJhY3Rpb25UeXBlOjpLZXlQcmVzczogewogICAgICAgICBOU0V2ZW50
VHlwZSBldmVudFR5cGUgPSBpc1N0aWNreU1vZGlmaWVyID8gTlNFdmVudFR5cGVGbGFnc0NoYW5n
ZWQgOiBOU0V2ZW50VHlwZUtleURvd247CiAgICAgICAgIHVwZGF0ZWRNb2RpZmllcnMgPSBleGlz
dGluZ01vZGlmaWVycyB8IGNoYW5nZWRNb2RpZmllcnM7Ci0gICAgICAgIFtldmVudHNUb0JlU2Vu
dCBhZGRPYmplY3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpldmVudFR5cGUgbG9jYXRpb246
ZXZlbnRQb3NpdGlvbiBtb2RpZmllckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1wOnRp
bWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6
Y2hhcmFjdGVycyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVycyBpc0FSZXBl
YXQ6Tk8ga2V5Q29kZTprZXlDb2RlXV07CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmpl
Y3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpldmVudFR5cGUgbG9jYXRpb246ZXZlbnRQb3Np
dGlvbiBtb2RpZmllckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3
aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVy
cyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6dW5tb2RpZmllZENoYXJhY3RlcnMgaXNBUmVw
ZWF0Ok5PIGtleUNvZGU6a2V5Q29kZV1dOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpLZXlib2FyZEludGVyYWN0aW9uVHlw
ZTo6S2V5UmVsZWFzZTogewogICAgICAgICBOU0V2ZW50VHlwZSBldmVudFR5cGUgPSBpc1N0aWNr
eU1vZGlmaWVyID8gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQgOiBOU0V2ZW50VHlwZUtleVVwOwog
ICAgICAgICB1cGRhdGVkTW9kaWZpZXJzID0gZXhpc3RpbmdNb2RpZmllcnMgJiB+Y2hhbmdlZE1v
ZGlmaWVyczsKLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBrZXlF
dmVudFdpdGhUeXBlOmV2ZW50VHlwZSBsb2NhdGlvbjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxh
Z3M6dXBkYXRlZE1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5k
b3dOdW1iZXIgY29udGV4dDpuaWwgY2hhcmFjdGVyczpjaGFyYWN0ZXJzIGNoYXJhY3RlcnNJZ25v
cmluZ01vZGlmaWVyczpjaGFyYWN0ZXJzIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmtleUNvZGVdXTsK
KyAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBrZXlFdmVudFdpdGhU
eXBlOmV2ZW50VHlwZSBsb2NhdGlvbjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6dXBkYXRl
ZE1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIg
Y29udGV4dDpuaWwgY2hhcmFjdGVyczpjaGFyYWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlm
aWVyczp1bm1vZGlmaWVkQ2hhcmFjdGVycyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTprZXlDb2RlXV07
CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OktleWJvYXJkSW50ZXJhY3Rpb25UeXBlOjpJbnNlcnRCeUtleTogewpAQCAtNTY2
LDggKzU0OCw4IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVL
ZXlTdHJva2UoV2ViUGFnZVByb3h5JiBwYWdlLCBJbnNwZWN0CiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgdXBkYXRlZE1vZGlmaWVycyA9IGV4aXN0aW5nTW9kaWZpZXJzIHwgY2hhbmdl
ZE1vZGlmaWVyczsKLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBr
ZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5RG93biBsb2NhdGlvbjpldmVudFBvc2l0aW9u
IG1vZGlmaWVyRmxhZ3M6dXBkYXRlZE1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRv
d051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgY2hhcmFjdGVyczpjaGFyYWN0ZXJzIGNo
YXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJzIGlzQVJlcGVhdDpOTyBrZXlDb2Rl
OmtleUNvZGVdXTsKLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBr
ZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5VXAgbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBt
b2RpZmllckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dO
dW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVycyBjaGFy
YWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVycyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTpr
ZXlDb2RlXV07CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQga2V5
RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleURvd24gbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBt
b2RpZmllckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dO
dW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVycyBjaGFy
YWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6dW5tb2RpZmllZENoYXJhY3RlcnMgaXNBUmVwZWF0Ok5P
IGtleUNvZGU6a2V5Q29kZV1dOworICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltO
U0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcCBsb2NhdGlvbjpldmVudFBv
c2l0aW9uIG1vZGlmaWVyRmxhZ3M6dXBkYXRlZE1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1w
IHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgY2hhcmFjdGVyczpjaGFyYWN0
ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczp1bm1vZGlmaWVkQ2hhcmFjdGVycyBpc0FS
ZXBlYXQ6Tk8ga2V5Q29kZTprZXlDb2RlXV07CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICB9
Cg==
</data>
<flag name="review"
          id="326257"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>