<?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>173293</bug_id>
          
          <creation_ts>2017-06-12 17:37:00 -0700</creation_ts>
          <short_desc>Unable to paste text that was copied from a page into the universal search field</short_desc>
          <delta_ts>2017-06-14 11:58:12 -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>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1318504</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-12 17:37:00 -0700</bug_when>
    <thetext>&lt;rdar://problem/32440918&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318508</commentid>
    <comment_count>1</comment_count>
      <attachid>312737</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-12 17:48:30 -0700</bug_when>
    <thetext>Created attachment 312737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318545</commentid>
    <comment_count>2</comment_count>
      <attachid>312745</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-12 19:49:11 -0700</bug_when>
    <thetext>Created attachment 312745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318548</commentid>
    <comment_count>3</comment_count>
      <attachid>312745</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-06-12 20:14:01 -0700</bug_when>
    <thetext>Comment on attachment 312745
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        copying both rich and plain web content in PlatformPasteboardIOS.mm. This is because &quot;public.content&quot; is no
&gt; +        longer a which UITextView is capable of interpreting and inserting text from in iOS 11.

This is a wordy way of saying that &quot;UITextView no longer supports &apos;public.content&apos; in iOS 11&quot;.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:5281
&gt; +- (void)executeEditCommand:(NSString *)command completionHandler:(void(^)(BOOL))completionHandler
&gt; +{
&gt; +    _page-&gt;executeEditCommand(command, [completion = makeBlockPtr(completionHandler)](WebKit::CallbackBase::Error error) {
&gt; +        completion(error == WebKit::CallbackBase::Error::None);
&gt; +    });
&gt; +}
&gt; +

I don&apos;t think you need this. See my comment below.

&gt; Tools/TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:53
&gt; +    __block bool doneExecutingCommand = false;
&gt; +    [webView executeEditCommand:@&quot;copy&quot; completionHandler:^(BOOL success) {
&gt; +        EXPECT_TRUE(success);
&gt; +        doneExecutingCommand = true;
&gt; +    }];

You don&apos;t really need this new API. You just need to set the preference to enable copy &amp; paste from JS.
See PasteboardNotification.mm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318553</commentid>
    <comment_count>4</comment_count>
      <attachid>312745</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-12 20:47:20 -0700</bug_when>
    <thetext>Comment on attachment 312745
Patch

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

Thanks! (I&apos;ll probably need a WK2 r+ for this before landing though)

&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt; +        longer a which UITextView is capable of interpreting and inserting text from in iOS 11.
&gt; 
&gt; This is a wordy way of saying that &quot;UITextView no longer supports &apos;public.content&apos; in iOS 11&quot;.

Good point -- reworded. (I also had a typo: &quot;public.content&quot; should have been &quot;public.text&quot; here).

&gt;&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:5281
&gt;&gt; +
&gt; 
&gt; I don&apos;t think you need this. See my comment below.

👍

&gt;&gt; Tools/TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:53
&gt;&gt; +    }];
&gt; 
&gt; You don&apos;t really need this new API. You just need to set the preference to enable copy &amp; paste from JS.
&gt; See PasteboardNotification.mm.

Done!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318566</commentid>
    <comment_count>5</comment_count>
      <attachid>312750</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-12 22:49:16 -0700</bug_when>
    <thetext>Created attachment 312750
Patch for landing (holding for wk2r+)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318654</commentid>
    <comment_count>6</comment_count>
      <attachid>312750</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-06-13 08:52:25 -0700</bug_when>
    <thetext>Comment on attachment 312750
Patch for landing (holding for wk2r+)

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

&gt; Source/WebCore/platform/ios/PlatformPasteboardIOS.mm:263
&gt; +    // FIXME: For backwards compatibility with clients that expect pre-iOS 11 behavior (&apos;public.text&apos; with an NSString as the value) when copying rich web content.

I don’t understand the comment. What is the FIXME here? What needs to be fixed? Are you saying that this should be removed some day?

&gt; Source/WebCore/platform/ios/PlatformPasteboardIOS.mm:353
&gt; +        // FIXME: Writing an NSString directly to the pasteboard is only for backwards compability with apps that expect a copy from web content to vend
&gt; +        // public.text, and not more specific subtypes.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318655</commentid>
    <comment_count>7</comment_count>
      <attachid>312750</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-13 08:55:31 -0700</bug_when>
    <thetext>Comment on attachment 312750
Patch for landing (holding for wk2r+)

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

&gt;&gt; Source/WebCore/platform/ios/PlatformPasteboardIOS.mm:263
&gt;&gt; +    // FIXME: For backwards compatibility with clients that expect pre-iOS 11 behavior (&apos;public.text&apos; with an NSString as the value) when copying rich web content.
&gt; 
&gt; I don’t understand the comment. What is the FIXME here? What needs to be fixed? Are you saying that this should be removed some day?

Yes -- I&apos;m trying to say that this is only here to ensure backwards compatibility, and that we should remove it in the future. I&apos;ll tweak this comment to make it more clear.

&gt;&gt; Source/WebCore/platform/ios/PlatformPasteboardIOS.mm:353
&gt;&gt; +        // public.text, and not more specific subtypes.
&gt; 
&gt; Ditto.

I&apos;ll edit this comment to clarify that this is something we should remove in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318663</commentid>
    <comment_count>8</comment_count>
      <attachid>312777</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-13 09:16:08 -0700</bug_when>
    <thetext>Created attachment 312777
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318676</commentid>
    <comment_count>9</comment_count>
      <attachid>312777</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-13 09:39:39 -0700</bug_when>
    <thetext>Comment on attachment 312777
Patch

Thanks Tim!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318690</commentid>
    <comment_count>10</comment_count>
      <attachid>312777</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-13 09:58:17 -0700</bug_when>
    <thetext>Comment on attachment 312777
Patch

Clearing flags on attachment: 312777

Committed r218180: &lt;http://trac.webkit.org/changeset/218180&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312737</attachid>
            <date>2017-06-12 17:48:30 -0700</date>
            <delta_ts>2017-06-12 19:49:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173293-20170612174830.patch</filename>
            <type>text/plain</type>
            <size>19842</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4MTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhjZjNmZTNiZjk4OGUx
NWUxNTU0MWNkZjMxNWY5ZTQ0YjM5MjYwYi4uYzBiMmI5NzcyYzRhZDZkYjYzZTE0NTVjYWYwY2Y4
MGExNTY0YTQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0IEBACiAyMDE3LTA2LTEyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCisgICAgICAgIFVuYWJsZSB0byBw
YXN0ZSB0ZXh0IHRoYXQgd2FzIGNvcGllZCBmcm9tIGEgcGFnZSBpbnRvIHRoZSB1bml2ZXJzYWwg
c2VhcmNoIGZpZWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzMyOTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMyNDQwOTE4PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFZlbmQgInB1YmxpYy51dGY4
LXBsYWluLXRleHQiIGFuZCAicHVibGljLnV0ZjE2LXBsYWluLXRleHQiIGFzIGFkZGl0aW9uYWwg
cmVwcmVzZW50YXRpb25zIG9uIHRoZSBwYXN0ZWJvYXJkIHdoZW4KKyAgICAgICAgY29weWluZyBi
b3RoIHJpY2ggYW5kIHBsYWluIHdlYiBjb250ZW50IGluIFBsYXRmb3JtUGFzdGVib2FyZElPUy5t
bS4gVGhpcyBpcyBiZWNhdXNlICJwdWJsaWMuY29udGVudCIgaXMgbm8KKyAgICAgICAgbG9uZ2Vy
IGEgd2hpY2ggVUlUZXh0VmlldyBpcyBjYXBhYmxlIG9mIGludGVycHJldGluZyBhbmQgaW5zZXJ0
aW5nIHRleHQgZnJvbSBpbiBpT1MgMTEuCisKKyAgICAgICAgVGVzdHM6CisgICAgICAgIFVJUGFz
dGVib2FyZFRlc3RzLkNvcHlQbGFpblRleHRXcml0ZXNDb25jcmV0ZVR5cGVzCisgICAgICAgIFVJ
UGFzdGVib2FyZFRlc3RzLkNvcHlSaWNoVGV4dFdyaXRlc0NvbmNyZXRlVHlwZXMKKworICAgICAg
ICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW06CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKToKKworMjAxNy0wNi0xMiAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKwogICAgICAgICBbaU9TIERuRF0gQWxsb3cg
dGhlIGluamVjdGVkIGJ1bmRsZSB0byBhZGQgY2xpZW50IGRhdGEgd2hlbiB3cml0aW5nIGFuIGlt
YWdlIHRvIHRoZSBwYXN0ZWJvYXJkCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzMyMzgKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxOTQzMzcwPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCmluZGV4IDkwMjgyYzk2NjM1YmQ1NjY0ZmRjYTc0NGUxZDY5MmRlYzhhNGYwYTcuLjlk
NjJlM2VhZjJkZDRlZDRiZjNiMWUzMDBhMWQyMjY5ZTBjYTAzOGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyMSBAQAogMjAxNy0wNi0xMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KIAorICAgICAgICBVbmFibGUgdG8gcGFzdGUgdGV4dCB0aGF0IHdhcyBjb3BpZWQgZnJv
bSBhIHBhZ2UgaW50byB0aGUgdW5pdmVyc2FsIHNlYXJjaCBmaWVsZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMjkzCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8zMjQ0MDkxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbnRyb2R1Y2UgYW5kIHBsdW1iIHRocm91Z2ggLXBlcmZvcm1Db3B5LCAtcGVy
Zm9ybUN1dCwgYW5kIC1wZXJmb3JtUGFzdGUgYXMgU1BJIGZvciB1c2UgaW4gVGVzdFdlYktpdEFQ
SS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgcGVyZm9ybUNvcHldKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHBlcmZv
cm1DdXRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHBlcmZvcm1QYXN0ZV0pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorCisyMDE3LTA2LTEyICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCiAgICAgICAgIFtpT1MgRG5E
XSBBbGxvdyB0aGUgaW5qZWN0ZWQgYnVuZGxlIHRvIGFkZCBjbGllbnQgZGF0YSB3aGVuIHdyaXRp
bmcgYW4gaW1hZ2UgdG8gdGhlIHBhc3RlYm9hcmQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzIzOAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzE5
NDMzNzA+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1Q
YXN0ZWJvYXJkSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFz
dGVib2FyZElPUy5tbQppbmRleCAzYTZiYWVmNjQ1MWQ2YzkzZmQwYjIyYTYwZjhkODRmMmRiY2M2
YjQ5Li4yNjYyNzhiMWM3NjhjNGM0YTE0MTVhZjI4NGUxMTUzZGNlMzBiN2ZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0K
QEAgLTI1Niw3ICsyNTYsMTIgQEAgdm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0
IFBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQogCiAgICAgUmV0YWluUHRyPE5TTXV0YWJs
ZURpY3Rpb25hcnk+IHJlcHJlc2VudGF0aW9ucyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9u
YXJ5IGFsbG9jXSBpbml0XSk7CiAgICAgW3JlcHJlc2VudGF0aW9ucyBhZGRFbnRyaWVzRnJvbURp
Y3Rpb25hcnk6cmljaFRleHRSZXByZXNlbnRhdGlvbnNGb3JQYXN0ZWJvYXJkV2ViQ29udGVudChj
b250ZW50KS5hdXRvcmVsZWFzZSgpXTsKLSAgICBbcmVwcmVzZW50YXRpb25zIHNldFZhbHVlOmNv
bnRlbnQuZGF0YUluU3RyaW5nRm9ybWF0IGZvcktleTooTlNTdHJpbmcgKilrVVRUeXBlVGV4dF07
CisKKyAgICBOU1N0cmluZyAqdGV4dEFzU3RyaW5nID0gY29udGVudC5kYXRhSW5TdHJpbmdGb3Jt
YXQ7CisgICAgW3JlcHJlc2VudGF0aW9ucyBzZXRWYWx1ZTpbdGV4dEFzU3RyaW5nIGRhdGFVc2lu
Z0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSBmb3JLZXk6KE5TU3RyaW5nICopa1VUVHlw
ZVVURjhQbGFpblRleHRdOworICAgIFtyZXByZXNlbnRhdGlvbnMgc2V0VmFsdWU6W3RleHRBc1N0
cmluZyBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjE2U3RyaW5nRW5jb2RpbmddIGZvcktleTooTlNT
dHJpbmcgKilrVVRUeXBlVVRGMTZQbGFpblRleHRdOworICAgIC8vIEZJWE1FOiBGb3IgYmFja3dh
cmRzIGNvbXBhdGliaWxpdHkgd2l0aCBjbGllbnRzIHRoYXQgZXhwZWN0IHByZS1pT1MgMTEgYmVo
YXZpb3IgKCdwdWJsaWMudGV4dCcgd2l0aCBhbiBOU1N0cmluZyBhcyB0aGUgdmFsdWUpIHdoZW4g
Y29weWluZyByaWNoIHdlYiBjb250ZW50LgorICAgIFtyZXByZXNlbnRhdGlvbnMgc2V0VmFsdWU6
dGV4dEFzU3RyaW5nIGZvcktleTooTlNTdHJpbmcgKilrVVRUeXBlVGV4dF07CiAKICAgICBbbV9w
YXN0ZWJvYXJkIHNldEl0ZW1zOkBbcmVwcmVzZW50YXRpb25zLmdldCgpXV07CiB9CkBAIC0zMzks
MTEgKzM0NCwyMCBAQCB2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQogCiAgICAgUmV0YWluUHRyPE5T
RGljdGlvbmFyeT4gcmVwcmVzZW50YXRpb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25h
cnkgYWxsb2NdIGluaXRdKTsKIAorICAgIE5TU3RyaW5nICp0ZXh0QXNTdHJpbmcgPSB0ZXh0Owog
ICAgIGlmIChwYXN0ZWJvYXJkVHlwZSA9PSBTdHJpbmcoa1VUVHlwZVVSTCkpIHsKICAgICAgICAg
W3JlcHJlc2VudGF0aW9ucyBzZXRWYWx1ZTphZG9wdE5TKFtbTlNVUkwgYWxsb2NdIGluaXRXaXRo
U3RyaW5nOnRleHRdKS5nZXQoKSBmb3JLZXk6cGFzdGVib2FyZFR5cGVdOwotICAgICAgICBbcmVw
cmVzZW50YXRpb25zIHNldFZhbHVlOnRleHQgZm9yS2V5OihOU1N0cmluZyAqKWtVVFR5cGVUZXh0
XTsKLSAgICB9IGVsc2UgaWYgKCFwYXN0ZWJvYXJkVHlwZS5pc051bGwoKSkKLSAgICAgICAgW3Jl
cHJlc2VudGF0aW9ucyBzZXRWYWx1ZTp0ZXh0IGZvcktleTpwYXN0ZWJvYXJkVHlwZV07CisgICAg
ICAgIFtyZXByZXNlbnRhdGlvbnMgc2V0VmFsdWU6dGV4dEFzU3RyaW5nIGZvcktleTooTlNTdHJp
bmcgKilrVVRUeXBlVGV4dF07CisgICAgfSBlbHNlIGlmICghcGFzdGVib2FyZFR5cGUuaXNOdWxs
KCkpIHsKKyAgICAgICAgLy8gRklYTUU6IFdyaXRpbmcgYW4gTlNTdHJpbmcgZGlyZWN0bHkgdG8g
dGhlIHBhc3RlYm9hcmQgaXMgb25seSBmb3IgYmFja3dhcmRzIGNvbXBhYmlsaXR5IHdpdGggYXBw
cyB0aGF0IGV4cGVjdCBhIGNvcHkgZnJvbSB3ZWIgY29udGVudCB0byB2ZW5kCisgICAgICAgIC8v
IHB1YmxpYy50ZXh0LCBhbmQgbm90IG1vcmUgc3BlY2lmaWMgc3VidHlwZXMuCisgICAgICAgIFty
ZXByZXNlbnRhdGlvbnMgc2V0VmFsdWU6dGV4dEFzU3RyaW5nIGZvcktleTpwYXN0ZWJvYXJkVHlw
ZV07CisgICAgfQorCisgICAgaWYgKFVUVHlwZUNvbmZvcm1zVG8ocGFzdGVib2FyZFR5cGUuY3Jl
YXRlQ0ZTdHJpbmcoKS5hdXRvcmVsZWFzZSgpLCBrVVRUeXBlVGV4dCkgfHwgVVRUeXBlQ29uZm9y
bXNUbyhwYXN0ZWJvYXJkVHlwZS5jcmVhdGVDRlN0cmluZygpLmF1dG9yZWxlYXNlKCksIGtVVFR5
cGVVUkwpKSB7CisgICAgICAgIFtyZXByZXNlbnRhdGlvbnMgc2V0VmFsdWU6W3RleHRBc1N0cmlu
ZyBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10gZm9yS2V5OihOU1N0cmlu
ZyAqKWtVVFR5cGVVVEY4UGxhaW5UZXh0XTsKKyAgICAgICAgW3JlcHJlc2VudGF0aW9ucyBzZXRW
YWx1ZTpbdGV4dEFzU3RyaW5nIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGMTZTdHJpbmdFbmNvZGlu
Z10gZm9yS2V5OihOU1N0cmluZyAqKWtVVFR5cGVVVEYxNlBsYWluVGV4dF07CisgICAgfQogICAg
IFttX3Bhc3RlYm9hcmQgc2V0SXRlbXM6QFtyZXByZXNlbnRhdGlvbnMuZ2V0KCldXTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRl
eCAxNzQwNWVlNTQ1MDJhZjI3OTg0N2E3ZTkwNDZmMzYxMzUyYTQzNmFmLi5jOWE2MTEwMWMxMmY1
NDUwZGQyNDBkM2NlYTYyODcwZjQ2YjM1ZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNTI3Miw2ICs1MjcyLDIxIEBAIC0gKHZv
aWQpcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOihDR1BvaW50KXBvc2l0aW9uIGNv
bXBsZXRpb25CbG9jazoodm9pCiAgICAgfSBmb3JSZXF1ZXN0OldlYktpdDo6SW50ZXJhY3Rpb25J
bmZvcm1hdGlvblJlcXVlc3QoV2ViQ29yZTo6cm91bmRlZEludFBvaW50KHBvc2l0aW9uKSldOwog
fQogCistICh2b2lkKXBlcmZvcm1Db3B5Cit7CisgICAgW19jb250ZW50VmlldyBjb3B5Om5pbF07
Cit9CisKKy0gKHZvaWQpcGVyZm9ybUN1dAoreworICAgIFtfY29udGVudFZpZXcgY3V0Om5pbF07
Cit9CisKKy0gKHZvaWQpcGVyZm9ybVBhc3RlCit7CisgICAgW19jb250ZW50VmlldyBwYXN0ZTpu
aWxdOworfQorCiAtIChDR1JlY3QpX2NvbnRlbnRWaXNpYmxlUmVjdAogewogICAgIHJldHVybiBb
c2VsZiBjb252ZXJ0UmVjdDpbc2VsZiBib3VuZHNdIHRvVmlldzpzZWxmLl9jdXJyZW50Q29udGVu
dFZpZXddOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGUuaAppbmRleCAwZTc1MTkzNWFiNWY4YjA3OThiMmM3NzNmNjBkYWIxZmE1
ODU3MzNlLi5iZmEwYWRhYzZmYzc2OTJlNDg5OWE3YTc3NTZmNmJmYzkzNDI4ZTliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGUuaApAQCAtMzYwLDYgKzM2MCw5IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0lt
bWVkaWF0ZUFjdGlvblR5cGUpIHsKIC0gKF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICopZHJhZ2dh
YmxlRWxlbWVudEF0UG9zaXRpb246KENHUG9pbnQpcG9zaXRpb247CiAtICh2b2lkKXJlcXVlc3RE
cmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjooQ0dQb2ludClwb3NpdGlvbiBjb21wbGV0aW9uQmxv
Y2s6KHZvaWQgKF4pKF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICopKWJsb2NrOwogCistICh2b2lk
KXBlcmZvcm1Db3B5OworLSAodm9pZClwZXJmb3JtQ3V0OworLSAodm9pZClwZXJmb3JtUGFzdGU7
CiAjZW5kaWYgLy8gVEFSR0VUX09TX0lQSE9ORQogCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0NjIyNmQy
MzExYzExNDNjNDMwOGU4OTIxNDM5M2M2NmFjNTY0OWRkLi4wZDVmY2QyOWY1ZGUzNjMxOGNiMWYy
ZGY4NmZkNzNiNjA4NDAwYmY2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjggQEAKIDIwMTctMDYtMTIgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKKyAgICAgICAgVW5hYmxlIHRvIHBhc3RlIHRleHQg
dGhhdCB3YXMgY29waWVkIGZyb20gYSBwYWdlIGludG8gdGhlIHVuaXZlcnNhbCBzZWFyY2ggZmll
bGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzI5
MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI0NDA5MTg+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyAyIG5ldyB1bml0IHRlc3RzIGZvciBj
b3B5aW5nIHBsYWluIGFuZCByaWNoIHNlbGVjdGVkIHdlYiBjb250ZW50LiBTZWUgV2ViQ29yZSBh
bmQgV2ViS2l0IENoYW5nZUxvZ3MgZm9yCisgICAgICAgIG1vcmUgZGV0YWlsLiBBbHNvIGFkZHMg
LVtUZXN0V0tXZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXSwgd2hpY2ggYmxv
Y2tzIGZvciBhdCBsZWFzdCBvbmUgcm91bmQtdHJpcAorICAgICAgICBiZXR3ZWVuIHRoZSBVSSBh
bmQgd2ViIHByb2Nlc3Nlcy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL3JpY2gtYW5kLXBsYWluLXRleHQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvVUlQYXN0ZWJvYXJkVGVzdHMubTogQWRkZWQuCisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL2lvcy9VSVBhc3RlYm9hcmRUZXN0cy5tbTogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpkYXRhRm9yUGFzdGVib2FyZFR5cGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lmg6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtU
ZXN0V0tXZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXSk6CisKKzIwMTctMDYt
MTIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgW2lP
UyBEbkRdIEFsbG93IHRoZSBpbmplY3RlZCBidW5kbGUgdG8gYWRkIGNsaWVudCBkYXRhIHdoZW4g
d3JpdGluZyBhbiBpbWFnZSB0byB0aGUgcGFzdGVib2FyZAogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMjM4CiAgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zMTk0MzM3MD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzJlM2FkODQwNjMyNGNhODk4
MDAwMzhiNzlkZTVmZWY2ZDJlMDQ0My4uOGRmMTMwNmQxNDNkYTAzN2YzNzUwODM2ODNkZWMwYTll
NGY1ZTNlZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYyMCw2ICs2MjAsOCBAQAogCQlG
NDJEQTUxNjFEOENFRkU0MDAzMzZGNDAgLyogbGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2Fk
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjQyREE1MTUxRDhDRUZEQjAwMzM2RjQwIC8qIGxhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9u
bG9hZC5odG1sICovOyB9OwogCQlGNDQ1MUM3NjFFQjhGRDg5MDAyMEM1REEgLyogdHdvLXBhcmFn
cmFwaC1jb250ZW50ZWRpdGFibGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDQ1MUM3NTFFQjhGRDdDMDAyMEM1REEgLyogdHdvLXBh
cmFncmFwaC1jb250ZW50ZWRpdGFibGUuaHRtbCAqLzsgfTsKIAkJRjQ1MzhFRjcxRTg0NzNFNjAw
QjVDOTUzIC8qIGxhcmdlLXJlZC1zcXVhcmUucG5nIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NTM4RUYwMUU4NDZCNDEwMEI1Qzk1MyAvKiBs
YXJnZS1yZWQtc3F1YXJlLnBuZyAqLzsgfTsKKwkJRjQ2ODQ5QkUxRUVGNThFNDAwQjkzN0ZFIC8q
IFVJUGFzdGVib2FyZFRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQ2ODQ5QkQxRUVGNThFNDAwQjkzN0ZFIC8qIFVJUGFzdGVib2FyZFRlc3Rz
Lm1tICovOyB9OworCQlGNDY4NDlDMDFFRUY1RUYzMDBCOTM3RkUgLyogcmljaC1hbmQtcGxhaW4t
dGV4dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0Njg0OUJGMUVFRjVFREMwMEI5MzdGRSAvKiByaWNoLWFuZC1wbGFpbi10ZXh0Lmh0
bWwgKi87IH07CiAJCUY0NkEwOTVBMUVEOEE2RTYwMEQ0QUE1NSAvKiBhcHBsZS5naWYgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3RDMwRUIx
RUQyODYxOTAwMDQ4MkUxIC8qIGFwcGxlLmdpZiAqLzsgfTsKIAkJRjQ2QTA5NUIxRUQ4QTZFNjAw
RDRBQTU1IC8qIGdpZi1hbmQtZmlsZS1pbnB1dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0N0QzMEVEMUVEMjhBNkMwMDA0ODJFMSAv
KiBnaWYtYW5kLWZpbGUtaW5wdXQuaHRtbCAqLzsgfTsKIAkJRjQ3NzI4OTkxRTRBRTNDMTAwN0FC
RjZBIC8qIGZ1bGwtcGFnZS1jb250ZW50ZWRpdGFibGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDc3Mjg5ODFFNEFFM0FEMDA3QUJG
NkEgLyogZnVsbC1wYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sICovOyB9OwpAQCAtNzA0LDYgKzcw
Niw3IEBACiAJCQlkc3RQYXRoID0gVGVzdFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJm
b2xkZXJTcGVjID0gNzsKIAkJCWZpbGVzID0gKAorCQkJCUY0Njg0OUMwMUVFRjVFRjMwMEI5MzdG
RSAvKiByaWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
OTNFMkQyNzYxRUQ3RDUzMjAwRkE3NkY2IC8qIG9mZnNjcmVlbi1pZnJhbWUtb2YtbWVkaWEtZG9j
dW1lbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNDZBMDk1QTFFRDhBNkU2MDBE
NEFBNTUgLyogYXBwbGUuZ2lmIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0NkEwOTVCMUVE
OEE2RTYwMEQ0QUE1NSAvKiBnaWYtYW5kLWZpbGUtaW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKQEAgLTE1NDksNiArMTU1Miw4IEBACiAJCUY0MkRBNTE1MUQ4Q0VGREIwMDMzNkY0MCAv
KiBsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgbmFtZSA9ICJsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCI7IHBhdGggPSAi
VGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sIjsg
c291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlGNDQ1MUM3NTFFQjhGRDdDMDAyMEM1REEg
LyogdHdvLXBhcmFncmFwaC1jb250ZW50ZWRpdGFibGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJ0d28tcGFyYWdyYXBoLWNvbnRlbnRlZGl0YWJsZS5odG1sIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ1MzhFRjAxRTg0NkI0MTAwQjVDOTUzIC8qIGxhcmdlLXJl
ZC1zcXVhcmUucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gaW1hZ2UucG5nOyBwYXRoID0gImxhcmdlLXJlZC1zcXVhcmUucG5nIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ2ODQ5QkQxRUVGNThFNDAwQjkzN0ZFIC8qIFVJUGFzdGVi
b2FyZFRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVUlQYXN0ZWJvYXJkVGVzdHMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0Njg0OUJGMUVFRjVFREMwMEI5MzdGRSAv
KiByaWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAicmljaC1hbmQtcGxhaW4tdGV4
dC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3NzI4OTgxRTRBRTNBRDAw
N0FCRjZBIC8qIGZ1bGwtcGFnZS1jb250ZW50ZWRpdGFibGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9ICJmdWxsLXBhZ2UtY29udGVudGVkaXRhYmxlLmh0bWwiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNDdEMzBFQjFFRDI4NjE5MDAwNDgyRTEgLyogYXBwbGUuZ2lm
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2Uu
Z2lmOyBwYXRoID0gYXBwbGUuZ2lmOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdE
MzBFRDFFRDI4QTZDMDAwNDgyRTEgLyogZ2lmLWFuZC1maWxlLWlucHV0Lmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSAiZ2lmLWFuZC1maWxlLWlucHV0Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTg5Niw2ICsxOTAxLDcgQEAKIAkJCQlGNEQ0RjNCNzFFNEUzNkU0MDBCQjI3NjcgLyogRGF0
YUludGVyYWN0aW9uVGVzdHMubW0gKi8sCiAJCQkJNzU2MDkxNzcxOTI1OUM1OTAwOUVGMDZFIC8q
IE1lbW9yeUNhY2hlQWRkSW1hZ2VUb0NhY2hlSU9TLm1tICovLAogCQkJCUY0RDdCQ0Q2MUVBNTc0
REQwMEM0MjFEMyAvKiBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMubW0gKi8sCisJCQkJRjQ2ODQ5
QkQxRUVGNThFNDAwQjkzN0ZFIC8qIFVJUGFzdGVib2FyZFRlc3RzLm1tICovLAogCQkJKTsKIAkJ
CXBhdGggPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjAxNiw2ICsyMDIy
LDcgQEAKIAkJCQlBMTQwOUFEODFFNzI1NEFDMDA0OTQ5RDkgLyogcGFzc3dvcmQtcHJvdGVjdGVk
LnBhZ2VzICovLAogCQkJCUY0MTUwODZDMURBMDQwQzEwMDQ0QkU5QiAvKiBwbGF5LWF1ZGlvLW9u
LWNsaWNrLmh0bWwgKi8sCiAJCQkJQTEyRERCRkYxRTgzNzNDMTAwQ0Y2Q0FFIC8qIHJlbmRlcmVk
LWltYWdlLWV4Y2x1ZGluZy1vdmVyZmxvdy5odG1sICovLAorCQkJCUY0Njg0OUJGMUVFRjVFREMw
MEI5MzdGRSAvKiByaWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwgKi8sCiAJCQkJQzlCNEFEMjkxRUNB
NkVBNTAwRjVGRUEwIC8qIHNpbGVuY2UtbG9uZy5tNGEgKi8sCiAJCQkJRjRGNDA1QkIxRDRDMENG
ODAwN0E5NzA3IC8qIHNraW5ueS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi8s
CiAJCQkJNTE1QkUxNkUxRDQyODhGRjAwREQ3QzY4IC8qIFN0b3JlQmxvYlRvQmVEZWxldGVkLmh0
bWwgKi8sCkBAIC0zMTQ4LDYgKzMxNTUsNyBAQAogCQkJCTVDNzk2NDEwMUVCMDI3OEQwMDc1RDc0
QyAvKiBFdmVudE1vZGlmaWVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDRDRjhCRDFEODM2
MENDMDAwMUNFOEQgLyogV0tUaHVtYm5haWxWaWV3Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNF
MzU0RDkxRTcwREE1QzAwQkVGRTNCIC8qIFdLQ29udGVudEV4dGVuc2lvblN0b3JlLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJRjQ2ODQ5QkUxRUVGNThFNDAwQjkzN0ZFIC8qIFVJUGFzdGVib2FyZFRl
c3RzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVGRjA2RDcxRDhBRjM0QTAwMDRCQjMwIC8qIFdL
V2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0RkM1ODUxQjg5
NzM5MTAwRDEwN0VCIC8qIFdLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMubW0gaW4gU291cmNl
cyAqLywKIAkJCQk3QzQxN0YzMzFEMTlFMTQ4MDBCOEVGNTMgLyogV0tXZWJWaWV3RGVmYXVsdE5h
dmlnYXRpb25EZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvcmljaC1hbmQtcGxhaW4tdGV4dC5odG1sIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvcmljaC1hbmQtcGxhaW4tdGV4
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZhMTM3ZTdiZmYwN2VjODE4NTRmODA5MjI3MGJkOGFhZGI5NzI5
MDcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9yaWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPGhlYWQ+Cisg
ICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCI+Cisg
ICAgICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsK
KyAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAg
ICAgfQorCisgICAgICAgIGRpdiwgdGV4dGFyZWEgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7
CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgZm9udC1zaXplOiAxMDBw
eDsKKyAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgICAgICAgIH0KKyAgICAgICAg
PC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+CisgICAgPGRpdiBpZD0icmljaCIgY29udGVudGVk
aXRhYmxlPkhlbGxvIHdvcmxkPC9kaXY+CisgICAgPHRleHRhcmVhIGlkPSJwbGFpbiI+PC90ZXh0
YXJlYT4KKyAgICA8c2NyaXB0PgorICAgIHBsYWluLnZhbHVlPSJIZWxsbyB3b3JsZCIKKworICAg
IGZ1bmN0aW9uIGRlc2VsZWN0VGV4dCgpCisgICAgeworICAgICAgICBibHVyKCk7CisgICAgICAg
IGdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHNlbGVjdFJpY2hUZXh0KCkKKyAgICB7CisgICAgICAgIGRlc2VsZWN0VGV4dCgpOworICAgICAg
ICBsZXQgdGV4dCA9IHJpY2guY2hpbGROb2Rlc1swXTsKKyAgICAgICAgZ2V0U2VsZWN0aW9uKCku
c2V0QmFzZUFuZEV4dGVudCh0ZXh0LCAwLCB0ZXh0LCB0ZXh0LmRhdGEubGVuZ3RoKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBzZWxlY3RQbGFpblRleHQoKQorICAgIHsKKyAgICAgICAgZGVzZWxl
Y3RUZXh0KCk7CisgICAgICAgIHBsYWluLmZvY3VzKCk7CisgICAgICAgIHBsYWluLnNlbGVjdGlv
blN0YXJ0ID0gMDsKKyAgICAgICAgcGxhaW4uc2VsZWN0aW9uRW5kID0gcGxhaW4udmFsdWUubGVu
Z3RoOworICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvaW9zL1VJUGFzdGVib2FyZFRlc3RzLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9pb3MvVUlQYXN0ZWJvYXJkVGVzdHMubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQyOWIy
ZTBjMzdkOTI0ZWVkZGFhNjM3YzNlMTcxOTJjY2ZmZmJlOQotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1VJUGFzdGVib2FyZFRlc3RzLm1tCkBAIC0wLDAg
KzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBQTEFURk9S
TShJT1MpCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tX
ZWJWaWV3LmgiCisjaW1wb3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2Vz
Lmg+CisjaW1wb3J0IDxVSUtpdC9VSVBhc3RlYm9hcmQuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dl
YlZpZXdQcml2YXRlLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworTlNEYXRhICpk
YXRhRm9yUGFzdGVib2FyZFR5cGUoQ0ZTdHJpbmdSZWYgdHlwZSkKK3sKKyAgICByZXR1cm4gW1tV
SVBhc3RlYm9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRdIGRhdGFGb3JQYXN0ZWJvYXJkVHlwZTooTlNT
dHJpbmcgKil0eXBlIGluSXRlbVNldDpbTlNJbmRleFNldCBpbmRleFNldFdpdGhJbmRleDowXV0u
Zmlyc3RPYmplY3Q7Cit9CisKK1RFU1QoVUlQYXN0ZWJvYXJkVGVzdHMsIENvcHlQbGFpblRleHRX
cml0ZXNDb25jcmV0ZVR5cGVzKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDAp
XSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAicmljaC1h
bmQtcGxhaW4tdGV4dCJdOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6QCJzZWxlY3RQbGFpblRleHQoKSJdOworICAgIFt3ZWJWaWV3IHBlcmZvcm1Db3B5XTsKKyAg
ICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisKKyAgICBhdXRvIHV0
ZjhSZXN1bHQgPSBhZG9wdE5TKFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRGF0YTpkYXRhRm9y
UGFzdGVib2FyZFR5cGUoa1VUVHlwZVVURjhQbGFpblRleHQpIGVuY29kaW5nOk5TVVRGOFN0cmlu
Z0VuY29kaW5nXSk7CisgICAgYXV0byB1dGYxNlJlc3VsdCA9IGFkb3B0TlMoW1tOU1N0cmluZyBh
bGxvY10gaW5pdFdpdGhEYXRhOmRhdGFGb3JQYXN0ZWJvYXJkVHlwZShrVVRUeXBlVVRGMTZQbGFp
blRleHQpIGVuY29kaW5nOk5TVVRGMTZTdHJpbmdFbmNvZGluZ10pOworICAgIEVYUEVDVF9XS19T
VFJFUSgiSGVsbG8gd29ybGQiLCBbdXRmOFJlc3VsdCBVVEY4U3RyaW5nXSk7CisgICAgRVhQRUNU
X1dLX1NUUkVRKCJIZWxsbyB3b3JsZCIsIFt1dGYxNlJlc3VsdCBVVEY4U3RyaW5nXSk7Cit9CisK
K1RFU1QoVUlQYXN0ZWJvYXJkVGVzdHMsIENvcHlSaWNoVGV4dFdyaXRlc0NvbmNyZXRlVHlwZXMp
Cit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBz
eW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJyaWNoLWFuZC1wbGFpbi10ZXh0Il07Cisg
ICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInNlbGVjdFJpY2hUZXh0
KCkiXTsKKyAgICBbd2ViVmlldyBwZXJmb3JtQ29weV07CisgICAgW3dlYlZpZXcgd2FpdEZvck5l
eHRQcmVzZW50YXRpb25VcGRhdGVdOworCisgICAgYXV0byB1dGY4UmVzdWx0ID0gYWRvcHROUyhb
W05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aERhdGE6ZGF0YUZvclBhc3RlYm9hcmRUeXBlKGtVVFR5
cGVVVEY4UGxhaW5UZXh0KSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10pOworICAgIGF1
dG8gdXRmMTZSZXN1bHQgPSBhZG9wdE5TKFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRGF0YTpk
YXRhRm9yUGFzdGVib2FyZFR5cGUoa1VUVHlwZVVURjE2UGxhaW5UZXh0KSBlbmNvZGluZzpOU1VU
RjE2U3RyaW5nRW5jb2RpbmddKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIkhlbGxvIHdvcmxkIiwg
W3V0ZjhSZXN1bHQgVVRGOFN0cmluZ10pOworICAgIEVYUEVDVF9XS19TVFJFUSgiSGVsbG8gd29y
bGQiLCBbdXRmMTZSZXN1bHQgVVRGOFN0cmluZ10pOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0V0tXZWJWaWV3LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZp
ZXcuaAppbmRleCAwYzNhMzFlMWI1MmIwMjUzNTk2MmIzN2NiMzUzM2U3OTQ1OWM3OTMzLi42Njc1
MGNjNWVhMTdhY2U4ZGIzZDk4ZmY3MTc4N2JiZWQ1ZWUwMWI5IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaApAQCAtNDMsNiArNDMsNyBAQAogLSAoTlNTdHJpbmcg
KilzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OihOU1N0cmluZyAqKXNjcmlwdDsKIC0gKHZv
aWQpd2FpdEZvck1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZTsKIC0gKHZvaWQpcGVyZm9ybUFm
dGVyTG9hZGluZzooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb25zOworLSAodm9pZCl3YWl0Rm9yTmV4
dFByZXNlbnRhdGlvblVwZGF0ZTsKIEBlbmQKIAogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQppbmRleCBmNzE3Y2NmMWE5ZjJjOTE1
OGRlZTc4NjYwYTk5NTAwMjE2YmRjOTlhLi4xODcxYmFhZDMyZGNkMTlkODUyNzA5YWY5ZjQ1MWFl
ZjJiZmExZGRlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dl
YlZpZXcubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1t
CkBAIC0yNjYsNiArMjY2LDE1IEBAIC0gKHZvaWQpcGVyZm9ybUFmdGVyTG9hZGluZzooZGlzcGF0
Y2hfYmxvY2tfdClhY3Rpb25zIHsKICAgICBbY29udGVudENvbnRyb2xsZXIgYWRkU2NyaXB0TWVz
c2FnZUhhbmRsZXI6aGFuZGxlciBuYW1lOkAib25sb2FkSGFuZGxlciJdOwogfQogCistICh2b2lk
KXdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlCit7CisgICAgX19ibG9jayBib29sIGRvbmVX
YWl0aW5nID0gZmFsc2U7CisgICAgW3NlbGYgX2RvQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRl
Ol4geworICAgICAgICBkb25lV2FpdGluZyA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lV2FpdGluZyk7Cit9CisKIEBlbmQKIAogI2lmIFBMQVRGT1JN
KElPUykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312745</attachid>
            <date>2017-06-12 19:49:11 -0700</date>
            <delta_ts>2017-06-12 20:14:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173293-20170612194910.patch</filename>
            <type>text/plain</type>
            <size>18744</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4MTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhjZjNmZTNiZjk4OGUx
NWUxNTU0MWNkZjMxNWY5ZTQ0YjM5MjYwYi4uYzBiMmI5NzcyYzRhZDZkYjYzZTE0NTVjYWYwY2Y4
MGExNTY0YTQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0IEBACiAyMDE3LTA2LTEyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCisgICAgICAgIFVuYWJsZSB0byBw
YXN0ZSB0ZXh0IHRoYXQgd2FzIGNvcGllZCBmcm9tIGEgcGFnZSBpbnRvIHRoZSB1bml2ZXJzYWwg
c2VhcmNoIGZpZWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzMyOTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMyNDQwOTE4PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFZlbmQgInB1YmxpYy51dGY4
LXBsYWluLXRleHQiIGFuZCAicHVibGljLnV0ZjE2LXBsYWluLXRleHQiIGFzIGFkZGl0aW9uYWwg
cmVwcmVzZW50YXRpb25zIG9uIHRoZSBwYXN0ZWJvYXJkIHdoZW4KKyAgICAgICAgY29weWluZyBi
b3RoIHJpY2ggYW5kIHBsYWluIHdlYiBjb250ZW50IGluIFBsYXRmb3JtUGFzdGVib2FyZElPUy5t
bS4gVGhpcyBpcyBiZWNhdXNlICJwdWJsaWMuY29udGVudCIgaXMgbm8KKyAgICAgICAgbG9uZ2Vy
IGEgd2hpY2ggVUlUZXh0VmlldyBpcyBjYXBhYmxlIG9mIGludGVycHJldGluZyBhbmQgaW5zZXJ0
aW5nIHRleHQgZnJvbSBpbiBpT1MgMTEuCisKKyAgICAgICAgVGVzdHM6CisgICAgICAgIFVJUGFz
dGVib2FyZFRlc3RzLkNvcHlQbGFpblRleHRXcml0ZXNDb25jcmV0ZVR5cGVzCisgICAgICAgIFVJ
UGFzdGVib2FyZFRlc3RzLkNvcHlSaWNoVGV4dFdyaXRlc0NvbmNyZXRlVHlwZXMKKworICAgICAg
ICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW06CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKToKKworMjAxNy0wNi0xMiAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKwogICAgICAgICBbaU9TIERuRF0gQWxsb3cg
dGhlIGluamVjdGVkIGJ1bmRsZSB0byBhZGQgY2xpZW50IGRhdGEgd2hlbiB3cml0aW5nIGFuIGlt
YWdlIHRvIHRoZSBwYXN0ZWJvYXJkCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzMyMzgKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxOTQzMzcwPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCmluZGV4IDkwMjgyYzk2NjM1YmQ1NjY0ZmRjYTc0NGUxZDY5MmRlYzhhNGYwYTcuLjI4
M2Y1NGVjZWJjMTczZWM5Y2MxNzdkNTA0ZWZlYTQ4M2JkMDljN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyMCBAQAogMjAxNy0wNi0xMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KIAorICAgICAgICBVbmFibGUgdG8gcGFzdGUgdGV4dCB0aGF0IHdhcyBjb3BpZWQgZnJv
bSBhIHBhZ2UgaW50byB0aGUgdW5pdmVyc2FsIHNlYXJjaCBmaWVsZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMjkzCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8zMjQ0MDkxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgLWV4ZWN1dGVFZGl0Q29tbWFuZDpjb21wbGV0aW9uSGFuZGxlcjogYXMg
U1BJIGluIFdLV2ViVmlldyB0byBhbGxvdyB1bml0IHRlc3RzIHRvIHRyaWdnZXIgZWRpdGluZyBj
b21tYW5kcworICAgICAgICBmcm9tIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBleGVjdXRl
RWRpdENvbW1hbmQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisKKzIwMTctMDYtMTIgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgW2lPUyBEbkRdIEFsbG93IHRoZSBp
bmplY3RlZCBidW5kbGUgdG8gYWRkIGNsaWVudCBkYXRhIHdoZW4gd3JpdGluZyBhbiBpbWFnZSB0
byB0aGUgcGFzdGVib2FyZAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTczMjM4CiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTk0MzM3MD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1Mu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1t
CmluZGV4IDNhNmJhZWY2NDUxZDZjOTNmZDBiMjJhNjBmOGQ4NGYyZGJjYzZiNDkuLjIxMWFhNDJj
ZmU3Njc2Y2JiMGM0YmVkYWQwYzEyODhhNDBhY2NlMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbQpAQCAtMjU2LDcgKzI1
NiwxMiBAQCB2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZFdl
YkNvbnRlbnQmIGNvbnRlbnQpCiAKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4g
cmVwcmVzZW50YXRpb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGlu
aXRdKTsKICAgICBbcmVwcmVzZW50YXRpb25zIGFkZEVudHJpZXNGcm9tRGljdGlvbmFyeTpyaWNo
VGV4dFJlcHJlc2VudGF0aW9uc0ZvclBhc3RlYm9hcmRXZWJDb250ZW50KGNvbnRlbnQpLmF1dG9y
ZWxlYXNlKCldOwotICAgIFtyZXByZXNlbnRhdGlvbnMgc2V0VmFsdWU6Y29udGVudC5kYXRhSW5T
dHJpbmdGb3JtYXQgZm9yS2V5OihOU1N0cmluZyAqKWtVVFR5cGVUZXh0XTsKKworICAgIE5TU3Ry
aW5nICp0ZXh0QXNTdHJpbmcgPSBjb250ZW50LmRhdGFJblN0cmluZ0Zvcm1hdDsKKyAgICBbcmVw
cmVzZW50YXRpb25zIHNldFZhbHVlOlt0ZXh0QXNTdHJpbmcgZGF0YVVzaW5nRW5jb2Rpbmc6TlNV
VEY4U3RyaW5nRW5jb2RpbmddIGZvcktleTooTlNTdHJpbmcgKilrVVRUeXBlVVRGOFBsYWluVGV4
dF07CisgICAgW3JlcHJlc2VudGF0aW9ucyBzZXRWYWx1ZTpbdGV4dEFzU3RyaW5nIGRhdGFVc2lu
Z0VuY29kaW5nOk5TVVRGMTZTdHJpbmdFbmNvZGluZ10gZm9yS2V5OihOU1N0cmluZyAqKWtVVFR5
cGVVVEYxNlBsYWluVGV4dF07CisgICAgLy8gRklYTUU6IEZvciBiYWNrd2FyZHMgY29tcGF0aWJp
bGl0eSB3aXRoIGNsaWVudHMgdGhhdCBleHBlY3QgcHJlLWlPUyAxMSBiZWhhdmlvciAoJ3B1Ymxp
Yy50ZXh0JyB3aXRoIGFuIE5TU3RyaW5nIGFzIHRoZSB2YWx1ZSkgd2hlbiBjb3B5aW5nIHJpY2gg
d2ViIGNvbnRlbnQuCisgICAgW3JlcHJlc2VudGF0aW9ucyBzZXRWYWx1ZTp0ZXh0QXNTdHJpbmcg
Zm9yS2V5OihOU1N0cmluZyAqKWtVVFR5cGVUZXh0XTsKIAogICAgIFttX3Bhc3RlYm9hcmQgc2V0
SXRlbXM6QFtyZXByZXNlbnRhdGlvbnMuZ2V0KCldXTsKIH0KQEAgLTMzOSwxMSArMzQ0LDIxIEBA
IHZvaWQgUGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRU
eXBlLCBjb25zdCBTdHJpbmcmIHRleHQpCiAKICAgICBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5PiBy
ZXByZXNlbnRhdGlvbnMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5p
dF0pOwogCisgICAgTlNTdHJpbmcgKnRleHRBc1N0cmluZyA9IHRleHQ7CiAgICAgaWYgKHBhc3Rl
Ym9hcmRUeXBlID09IFN0cmluZyhrVVRUeXBlVVJMKSkgewogICAgICAgICBbcmVwcmVzZW50YXRp
b25zIHNldFZhbHVlOmFkb3B0TlMoW1tOU1VSTCBhbGxvY10gaW5pdFdpdGhTdHJpbmc6dGV4dF0p
LmdldCgpIGZvcktleTpwYXN0ZWJvYXJkVHlwZV07Ci0gICAgICAgIFtyZXByZXNlbnRhdGlvbnMg
c2V0VmFsdWU6dGV4dCBmb3JLZXk6KE5TU3RyaW5nICopa1VUVHlwZVRleHRdOwotICAgIH0gZWxz
ZSBpZiAoIXBhc3RlYm9hcmRUeXBlLmlzTnVsbCgpKQotICAgICAgICBbcmVwcmVzZW50YXRpb25z
IHNldFZhbHVlOnRleHQgZm9yS2V5OnBhc3RlYm9hcmRUeXBlXTsKKyAgICAgICAgW3JlcHJlc2Vu
dGF0aW9ucyBzZXRWYWx1ZTp0ZXh0QXNTdHJpbmcgZm9yS2V5OihOU1N0cmluZyAqKWtVVFR5cGVU
ZXh0XTsKKyAgICB9IGVsc2UgaWYgKCFwYXN0ZWJvYXJkVHlwZS5pc051bGwoKSkgeworICAgICAg
ICAvLyBGSVhNRTogV3JpdGluZyBhbiBOU1N0cmluZyBkaXJlY3RseSB0byB0aGUgcGFzdGVib2Fy
ZCBpcyBvbmx5IGZvciBiYWNrd2FyZHMgY29tcGFiaWxpdHkgd2l0aCBhcHBzIHRoYXQgZXhwZWN0
IGEgY29weSBmcm9tIHdlYiBjb250ZW50IHRvIHZlbmQKKyAgICAgICAgLy8gcHVibGljLnRleHQs
IGFuZCBub3QgbW9yZSBzcGVjaWZpYyBzdWJ0eXBlcy4KKyAgICAgICAgW3JlcHJlc2VudGF0aW9u
cyBzZXRWYWx1ZTp0ZXh0QXNTdHJpbmcgZm9yS2V5OnBhc3RlYm9hcmRUeXBlXTsKKyAgICB9CisK
KyAgICBhdXRvIGNmUGFzdGVib2FyZFR5cGUgPSBwYXN0ZWJvYXJkVHlwZS5jcmVhdGVDRlN0cmlu
ZygpOworICAgIGlmIChVVFR5cGVDb25mb3Jtc1RvKGNmUGFzdGVib2FyZFR5cGUuZ2V0KCksIGtV
VFR5cGVUZXh0KSB8fCBVVFR5cGVDb25mb3Jtc1RvKGNmUGFzdGVib2FyZFR5cGUuZ2V0KCksIGtV
VFR5cGVVUkwpKSB7CisgICAgICAgIFtyZXByZXNlbnRhdGlvbnMgc2V0VmFsdWU6W3RleHRBc1N0
cmluZyBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10gZm9yS2V5OihOU1N0
cmluZyAqKWtVVFR5cGVVVEY4UGxhaW5UZXh0XTsKKyAgICAgICAgW3JlcHJlc2VudGF0aW9ucyBz
ZXRWYWx1ZTpbdGV4dEFzU3RyaW5nIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGMTZTdHJpbmdFbmNv
ZGluZ10gZm9yS2V5OihOU1N0cmluZyAqKWtVVFR5cGVVVEYxNlBsYWluVGV4dF07CisgICAgfQog
ICAgIFttX3Bhc3RlYm9hcmQgc2V0SXRlbXM6QFtyZXByZXNlbnRhdGlvbnMuZ2V0KCldXTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpp
bmRleCAxNzQwNWVlNTQ1MDJhZjI3OTg0N2E3ZTkwNDZmMzYxMzUyYTQzNmFmLi42MWJmZTg0MDI2
MzZmN2E3MWQ4ODMyMWRlMTRkMWFlOWVkMjliOGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNTI3Miw2ICs1MjcyLDEzIEBAIC0g
KHZvaWQpcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOihDR1BvaW50KXBvc2l0aW9u
IGNvbXBsZXRpb25CbG9jazoodm9pCiAgICAgfSBmb3JSZXF1ZXN0OldlYktpdDo6SW50ZXJhY3Rp
b25JbmZvcm1hdGlvblJlcXVlc3QoV2ViQ29yZTo6cm91bmRlZEludFBvaW50KHBvc2l0aW9uKSld
OwogfQogCistICh2b2lkKWV4ZWN1dGVFZGl0Q29tbWFuZDooTlNTdHJpbmcgKiljb21tYW5kIGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAg
X3BhZ2UtPmV4ZWN1dGVFZGl0Q29tbWFuZChjb21tYW5kLCBbY29tcGxldGlvbiA9IG1ha2VCbG9j
a1B0cihjb21wbGV0aW9uSGFuZGxlcildKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJv
cikgeworICAgICAgICBjb21wbGV0aW9uKGVycm9yID09IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpF
cnJvcjo6Tm9uZSk7CisgICAgfSk7Cit9CisKIC0gKENHUmVjdClfY29udGVudFZpc2libGVSZWN0
CiB7CiAgICAgcmV0dXJuIFtzZWxmIGNvbnZlcnRSZWN0OltzZWxmIGJvdW5kc10gdG9WaWV3OnNl
bGYuX2N1cnJlbnRDb250ZW50Vmlld107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDBlNzUxOTM1YWI1ZjhiMDc5
OGIyYzc3M2Y2MGRhYjFmYTU4NTczM2UuLmEyYjY1YzBiMzU4MGYyOWUzYzBkMDhhM2MzOGIwYTc4
M2EzMmRmYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0zNjAsNiArMzYwLDcgQEAgdHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSkgewogLSAoX1dLRHJhZ2dhYmxlRWxl
bWVudEluZm8gKilkcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjooQ0dQb2ludClwb3NpdGlvbjsK
IC0gKHZvaWQpcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOihDR1BvaW50KXBvc2l0
aW9uIGNvbXBsZXRpb25CbG9jazoodm9pZCAoXikoX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gKikp
YmxvY2s7CiAKKy0gKHZvaWQpZXhlY3V0ZUVkaXRDb21tYW5kOihOU1N0cmluZyAqKWNvbW1hbmQg
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXI7CiAjZW5k
aWYgLy8gVEFSR0VUX09TX0lQSE9ORQogCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0NjIyNmQyMzExYzEx
NDNjNDMwOGU4OTIxNDM5M2M2NmFjNTY0OWRkLi41ODY3ZjZkMmEyNTljYTk0ZWM0YWUyMzNlYTk4
NDg2YjZmZGY5MGUyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMjIgQEAKIDIwMTctMDYtMTIgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKKyAgICAgICAgVW5hYmxlIHRvIHBhc3RlIHRleHQgdGhhdCB3
YXMgY29waWVkIGZyb20gYSBwYWdlIGludG8gdGhlIHVuaXZlcnNhbCBzZWFyY2ggZmllbGQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzI5MworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzI0NDA5MTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyAyIG5ldyB1bml0IHRlc3RzIGZvciBjb3B5aW5n
IHBsYWluIGFuZCByaWNoIHNlbGVjdGVkIHdlYiBjb250ZW50LgorICAgICAgICBTZWUgV2ViQ29y
ZSBhbmQgV2ViS2l0IENoYW5nZUxvZ3MgZm9yIG1vcmUgZGV0YWlsLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvcmljaC1hbmQtcGxhaW4tdGV4
dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9VSVBhc3Rl
Ym9hcmRUZXN0cy5tbTogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkYXRhRm9yUGFz
dGVib2FyZFR5cGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKKzIwMTctMDYt
MTIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgW2lP
UyBEbkRdIEFsbG93IHRoZSBpbmplY3RlZCBidW5kbGUgdG8gYWRkIGNsaWVudCBkYXRhIHdoZW4g
d3JpdGluZyBhbiBpbWFnZSB0byB0aGUgcGFzdGVib2FyZAogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMjM4CiAgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zMTk0MzM3MD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzJlM2FkODQwNjMyNGNhODk4
MDAwMzhiNzlkZTVmZWY2ZDJlMDQ0My4uOGRmMTMwNmQxNDNkYTAzN2YzNzUwODM2ODNkZWMwYTll
NGY1ZTNlZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYyMCw2ICs2MjAsOCBAQAogCQlG
NDJEQTUxNjFEOENFRkU0MDAzMzZGNDAgLyogbGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2Fk
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjQyREE1MTUxRDhDRUZEQjAwMzM2RjQwIC8qIGxhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9u
bG9hZC5odG1sICovOyB9OwogCQlGNDQ1MUM3NjFFQjhGRDg5MDAyMEM1REEgLyogdHdvLXBhcmFn
cmFwaC1jb250ZW50ZWRpdGFibGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDQ1MUM3NTFFQjhGRDdDMDAyMEM1REEgLyogdHdvLXBh
cmFncmFwaC1jb250ZW50ZWRpdGFibGUuaHRtbCAqLzsgfTsKIAkJRjQ1MzhFRjcxRTg0NzNFNjAw
QjVDOTUzIC8qIGxhcmdlLXJlZC1zcXVhcmUucG5nIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NTM4RUYwMUU4NDZCNDEwMEI1Qzk1MyAvKiBs
YXJnZS1yZWQtc3F1YXJlLnBuZyAqLzsgfTsKKwkJRjQ2ODQ5QkUxRUVGNThFNDAwQjkzN0ZFIC8q
IFVJUGFzdGVib2FyZFRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQ2ODQ5QkQxRUVGNThFNDAwQjkzN0ZFIC8qIFVJUGFzdGVib2FyZFRlc3Rz
Lm1tICovOyB9OworCQlGNDY4NDlDMDFFRUY1RUYzMDBCOTM3RkUgLyogcmljaC1hbmQtcGxhaW4t
dGV4dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0Njg0OUJGMUVFRjVFREMwMEI5MzdGRSAvKiByaWNoLWFuZC1wbGFpbi10ZXh0Lmh0
bWwgKi87IH07CiAJCUY0NkEwOTVBMUVEOEE2RTYwMEQ0QUE1NSAvKiBhcHBsZS5naWYgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3RDMwRUIx
RUQyODYxOTAwMDQ4MkUxIC8qIGFwcGxlLmdpZiAqLzsgfTsKIAkJRjQ2QTA5NUIxRUQ4QTZFNjAw
RDRBQTU1IC8qIGdpZi1hbmQtZmlsZS1pbnB1dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0N0QzMEVEMUVEMjhBNkMwMDA0ODJFMSAv
KiBnaWYtYW5kLWZpbGUtaW5wdXQuaHRtbCAqLzsgfTsKIAkJRjQ3NzI4OTkxRTRBRTNDMTAwN0FC
RjZBIC8qIGZ1bGwtcGFnZS1jb250ZW50ZWRpdGFibGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDc3Mjg5ODFFNEFFM0FEMDA3QUJG
NkEgLyogZnVsbC1wYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sICovOyB9OwpAQCAtNzA0LDYgKzcw
Niw3IEBACiAJCQlkc3RQYXRoID0gVGVzdFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJm
b2xkZXJTcGVjID0gNzsKIAkJCWZpbGVzID0gKAorCQkJCUY0Njg0OUMwMUVFRjVFRjMwMEI5MzdG
RSAvKiByaWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
OTNFMkQyNzYxRUQ3RDUzMjAwRkE3NkY2IC8qIG9mZnNjcmVlbi1pZnJhbWUtb2YtbWVkaWEtZG9j
dW1lbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNDZBMDk1QTFFRDhBNkU2MDBE
NEFBNTUgLyogYXBwbGUuZ2lmIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0NkEwOTVCMUVE
OEE2RTYwMEQ0QUE1NSAvKiBnaWYtYW5kLWZpbGUtaW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKQEAgLTE1NDksNiArMTU1Miw4IEBACiAJCUY0MkRBNTE1MUQ4Q0VGREIwMDMzNkY0MCAv
KiBsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgbmFtZSA9ICJsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCI7IHBhdGggPSAi
VGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sIjsg
c291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlGNDQ1MUM3NTFFQjhGRDdDMDAyMEM1REEg
LyogdHdvLXBhcmFncmFwaC1jb250ZW50ZWRpdGFibGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJ0d28tcGFyYWdyYXBoLWNvbnRlbnRlZGl0YWJsZS5odG1sIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ1MzhFRjAxRTg0NkI0MTAwQjVDOTUzIC8qIGxhcmdlLXJl
ZC1zcXVhcmUucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gaW1hZ2UucG5nOyBwYXRoID0gImxhcmdlLXJlZC1zcXVhcmUucG5nIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ2ODQ5QkQxRUVGNThFNDAwQjkzN0ZFIC8qIFVJUGFzdGVi
b2FyZFRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVUlQYXN0ZWJvYXJkVGVzdHMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0Njg0OUJGMUVFRjVFREMwMEI5MzdGRSAv
KiByaWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAicmljaC1hbmQtcGxhaW4tdGV4
dC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3NzI4OTgxRTRBRTNBRDAw
N0FCRjZBIC8qIGZ1bGwtcGFnZS1jb250ZW50ZWRpdGFibGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9ICJmdWxsLXBhZ2UtY29udGVudGVkaXRhYmxlLmh0bWwiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNDdEMzBFQjFFRDI4NjE5MDAwNDgyRTEgLyogYXBwbGUuZ2lm
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2Uu
Z2lmOyBwYXRoID0gYXBwbGUuZ2lmOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdE
MzBFRDFFRDI4QTZDMDAwNDgyRTEgLyogZ2lmLWFuZC1maWxlLWlucHV0Lmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSAiZ2lmLWFuZC1maWxlLWlucHV0Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTg5Niw2ICsxOTAxLDcgQEAKIAkJCQlGNEQ0RjNCNzFFNEUzNkU0MDBCQjI3NjcgLyogRGF0
YUludGVyYWN0aW9uVGVzdHMubW0gKi8sCiAJCQkJNzU2MDkxNzcxOTI1OUM1OTAwOUVGMDZFIC8q
IE1lbW9yeUNhY2hlQWRkSW1hZ2VUb0NhY2hlSU9TLm1tICovLAogCQkJCUY0RDdCQ0Q2MUVBNTc0
REQwMEM0MjFEMyAvKiBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMubW0gKi8sCisJCQkJRjQ2ODQ5
QkQxRUVGNThFNDAwQjkzN0ZFIC8qIFVJUGFzdGVib2FyZFRlc3RzLm1tICovLAogCQkJKTsKIAkJ
CXBhdGggPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjAxNiw2ICsyMDIy
LDcgQEAKIAkJCQlBMTQwOUFEODFFNzI1NEFDMDA0OTQ5RDkgLyogcGFzc3dvcmQtcHJvdGVjdGVk
LnBhZ2VzICovLAogCQkJCUY0MTUwODZDMURBMDQwQzEwMDQ0QkU5QiAvKiBwbGF5LWF1ZGlvLW9u
LWNsaWNrLmh0bWwgKi8sCiAJCQkJQTEyRERCRkYxRTgzNzNDMTAwQ0Y2Q0FFIC8qIHJlbmRlcmVk
LWltYWdlLWV4Y2x1ZGluZy1vdmVyZmxvdy5odG1sICovLAorCQkJCUY0Njg0OUJGMUVFRjVFREMw
MEI5MzdGRSAvKiByaWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwgKi8sCiAJCQkJQzlCNEFEMjkxRUNB
NkVBNTAwRjVGRUEwIC8qIHNpbGVuY2UtbG9uZy5tNGEgKi8sCiAJCQkJRjRGNDA1QkIxRDRDMENG
ODAwN0E5NzA3IC8qIHNraW5ueS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi8s
CiAJCQkJNTE1QkUxNkUxRDQyODhGRjAwREQ3QzY4IC8qIFN0b3JlQmxvYlRvQmVEZWxldGVkLmh0
bWwgKi8sCkBAIC0zMTQ4LDYgKzMxNTUsNyBAQAogCQkJCTVDNzk2NDEwMUVCMDI3OEQwMDc1RDc0
QyAvKiBFdmVudE1vZGlmaWVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDRDRjhCRDFEODM2
MENDMDAwMUNFOEQgLyogV0tUaHVtYm5haWxWaWV3Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNF
MzU0RDkxRTcwREE1QzAwQkVGRTNCIC8qIFdLQ29udGVudEV4dGVuc2lvblN0b3JlLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJRjQ2ODQ5QkUxRUVGNThFNDAwQjkzN0ZFIC8qIFVJUGFzdGVib2FyZFRl
c3RzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVGRjA2RDcxRDhBRjM0QTAwMDRCQjMwIC8qIFdL
V2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0RkM1ODUxQjg5
NzM5MTAwRDEwN0VCIC8qIFdLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMubW0gaW4gU291cmNl
cyAqLywKIAkJCQk3QzQxN0YzMzFEMTlFMTQ4MDBCOEVGNTMgLyogV0tXZWJWaWV3RGVmYXVsdE5h
dmlnYXRpb25EZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvcmljaC1hbmQtcGxhaW4tdGV4dC5odG1sIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvcmljaC1hbmQtcGxhaW4tdGV4
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZhMTM3ZTdiZmYwN2VjODE4NTRmODA5MjI3MGJkOGFhZGI5NzI5
MDcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9yaWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPGhlYWQ+Cisg
ICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCI+Cisg
ICAgICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsK
KyAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAg
ICAgfQorCisgICAgICAgIGRpdiwgdGV4dGFyZWEgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7
CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgZm9udC1zaXplOiAxMDBw
eDsKKyAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgICAgICAgIH0KKyAgICAgICAg
PC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+CisgICAgPGRpdiBpZD0icmljaCIgY29udGVudGVk
aXRhYmxlPkhlbGxvIHdvcmxkPC9kaXY+CisgICAgPHRleHRhcmVhIGlkPSJwbGFpbiI+PC90ZXh0
YXJlYT4KKyAgICA8c2NyaXB0PgorICAgIHBsYWluLnZhbHVlPSJIZWxsbyB3b3JsZCIKKworICAg
IGZ1bmN0aW9uIGRlc2VsZWN0VGV4dCgpCisgICAgeworICAgICAgICBibHVyKCk7CisgICAgICAg
IGdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHNlbGVjdFJpY2hUZXh0KCkKKyAgICB7CisgICAgICAgIGRlc2VsZWN0VGV4dCgpOworICAgICAg
ICBsZXQgdGV4dCA9IHJpY2guY2hpbGROb2Rlc1swXTsKKyAgICAgICAgZ2V0U2VsZWN0aW9uKCku
c2V0QmFzZUFuZEV4dGVudCh0ZXh0LCAwLCB0ZXh0LCB0ZXh0LmRhdGEubGVuZ3RoKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBzZWxlY3RQbGFpblRleHQoKQorICAgIHsKKyAgICAgICAgZGVzZWxl
Y3RUZXh0KCk7CisgICAgICAgIHBsYWluLmZvY3VzKCk7CisgICAgICAgIHBsYWluLnNlbGVjdGlv
blN0YXJ0ID0gMDsKKyAgICAgICAgcGxhaW4uc2VsZWN0aW9uRW5kID0gcGxhaW4udmFsdWUubGVu
Z3RoOworICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvaW9zL1VJUGFzdGVib2FyZFRlc3RzLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9pb3MvVUlQYXN0ZWJvYXJkVGVzdHMubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQ1NmNj
N2JkYmYxYTgwNGI2NmUxNWM3NmQ1NWU5NTBlMmVmMTVmNAotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1VJUGFzdGVib2FyZFRlc3RzLm1tCkBAIC0wLDAg
KzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBQTEFURk9S
TShJT1MpCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tX
ZWJWaWV3LmgiCisjaW1wb3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2Vz
Lmg+CisjaW1wb3J0IDxVSUtpdC9VSVBhc3RlYm9hcmQuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dl
YlZpZXdQcml2YXRlLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworTlNEYXRhICpk
YXRhRm9yUGFzdGVib2FyZFR5cGUoQ0ZTdHJpbmdSZWYgdHlwZSkKK3sKKyAgICByZXR1cm4gW1tV
SVBhc3RlYm9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRdIGRhdGFGb3JQYXN0ZWJvYXJkVHlwZTooTlNT
dHJpbmcgKil0eXBlIGluSXRlbVNldDpbTlNJbmRleFNldCBpbmRleFNldFdpdGhJbmRleDowXV0u
Zmlyc3RPYmplY3Q7Cit9CisKK1RFU1QoVUlQYXN0ZWJvYXJkVGVzdHMsIENvcHlQbGFpblRleHRX
cml0ZXNDb25jcmV0ZVR5cGVzKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDAp
XSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAicmljaC1h
bmQtcGxhaW4tdGV4dCJdOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6QCJzZWxlY3RQbGFpblRleHQoKSJdOworCisgICAgX19ibG9jayBib29sIGRvbmVFeGVjdXRp
bmdDb21tYW5kID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXhlY3V0ZUVkaXRDb21tYW5kOkAiY29w
eSIgY29tcGxldGlvbkhhbmRsZXI6XihCT09MIHN1Y2Nlc3MpIHsKKyAgICAgICAgRVhQRUNUX1RS
VUUoc3VjY2Vzcyk7CisgICAgICAgIGRvbmVFeGVjdXRpbmdDb21tYW5kID0gdHJ1ZTsKKyAgICB9
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVFeGVjdXRpbmdDb21tYW5kKTsK
KworICAgIGF1dG8gdXRmOFJlc3VsdCA9IGFkb3B0TlMoW1tOU1N0cmluZyBhbGxvY10gaW5pdFdp
dGhEYXRhOmRhdGFGb3JQYXN0ZWJvYXJkVHlwZShrVVRUeXBlVVRGOFBsYWluVGV4dCkgZW5jb2Rp
bmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddKTsKKyAgICBhdXRvIHV0ZjE2UmVzdWx0ID0gYWRvcHRO
UyhbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aERhdGE6ZGF0YUZvclBhc3RlYm9hcmRUeXBlKGtV
VFR5cGVVVEYxNlBsYWluVGV4dCkgZW5jb2Rpbmc6TlNVVEYxNlN0cmluZ0VuY29kaW5nXSk7Cisg
ICAgRVhQRUNUX1dLX1NUUkVRKCJIZWxsbyB3b3JsZCIsIFt1dGY4UmVzdWx0IFVURjhTdHJpbmdd
KTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIkhlbGxvIHdvcmxkIiwgW3V0ZjE2UmVzdWx0IFVURjhT
dHJpbmddKTsKK30KKworVEVTVChVSVBhc3RlYm9hcmRUZXN0cywgQ29weVJpY2hUZXh0V3JpdGVz
Q29uY3JldGVUeXBlcykKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwor
ICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAInJpY2gtYW5kLXBs
YWluLXRleHQiXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAi
c2VsZWN0UmljaFRleHQoKSJdOworCisgICAgX19ibG9jayBib29sIGRvbmVFeGVjdXRpbmdDb21t
YW5kID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXhlY3V0ZUVkaXRDb21tYW5kOkAiY29weSIgY29t
cGxldGlvbkhhbmRsZXI6XihCT09MIHN1Y2Nlc3MpIHsKKyAgICAgICAgRVhQRUNUX1RSVUUoc3Vj
Y2Vzcyk7CisgICAgICAgIGRvbmVFeGVjdXRpbmdDb21tYW5kID0gdHJ1ZTsKKyAgICB9XTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVFeGVjdXRpbmdDb21tYW5kKTsKKworICAg
IGF1dG8gdXRmOFJlc3VsdCA9IGFkb3B0TlMoW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhEYXRh
OmRhdGFGb3JQYXN0ZWJvYXJkVHlwZShrVVRUeXBlVVRGOFBsYWluVGV4dCkgZW5jb2Rpbmc6TlNV
VEY4U3RyaW5nRW5jb2RpbmddKTsKKyAgICBhdXRvIHV0ZjE2UmVzdWx0ID0gYWRvcHROUyhbW05T
U3RyaW5nIGFsbG9jXSBpbml0V2l0aERhdGE6ZGF0YUZvclBhc3RlYm9hcmRUeXBlKGtVVFR5cGVV
VEYxNlBsYWluVGV4dCkgZW5jb2Rpbmc6TlNVVEYxNlN0cmluZ0VuY29kaW5nXSk7CisgICAgRVhQ
RUNUX1dLX1NUUkVRKCJIZWxsbyB3b3JsZCIsIFt1dGY4UmVzdWx0IFVURjhTdHJpbmddKTsKKyAg
ICBFWFBFQ1RfV0tfU1RSRVEoIkhlbGxvIHdvcmxkIiwgW3V0ZjE2UmVzdWx0IFVURjhTdHJpbmdd
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYK
</data>
<flag name="review"
          id="333655"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312750</attachid>
            <date>2017-06-12 22:49:16 -0700</date>
            <delta_ts>2017-06-13 09:17:06 -0700</delta_ts>
            <desc>Patch for landing (holding for wk2r+)</desc>
            <filename>0001-Unable-to-paste-text-that-was-copied-from-a-page-int.patch</filename>
            <type>text/plain</type>
            <size>20610</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">RnJvbSA3NTM2N2Q5N2U1NmQ5MTMzYTBkZTNlYzAzNjJmY2U2NGE0ZWIzYmE5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBXZW5zb24gSHNpZWggPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CkRhdGU6IE1vbiwgMTIgSnVuIDIwMTcgMjI6NDc6NTUgLTA3MDAKU3ViamVjdDogW1BBVENIXSBV
bmFibGUgdG8gcGFzdGUgdGV4dCB0aGF0IHdhcyBjb3BpZWQgZnJvbSBhIHBhZ2UgaW50byB0aGUK
IHVuaXZlcnNhbCBzZWFyY2ggZmllbGQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3MzI5MwogPHJkYXI6Ly9wcm9ibGVtLzMyNDQwOTE4PgoKUmV2aWV3ZWQgYnkgUnlv
c3VrZSBOaXdhLgoKU291cmNlL1dlYkNvcmU6CgpWZW5kICJwdWJsaWMudXRmOC1wbGFpbi10ZXh0
IiBhbmQgInB1YmxpYy51dGYxNi1wbGFpbi10ZXh0IiBhcyBhZGRpdGlvbmFsIHJlcHJlc2VudGF0
aW9ucyBvbiB0aGUgcGFzdGVib2FyZCB3aGVuCmNvcHlpbmcgYm90aCByaWNoIGFuZCBwbGFpbiB3
ZWIgY29udGVudCBpbiBQbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0uIFRoaXMgaXMgYmVjYXVzZSBV
SVRleHRWaWV3IG5vIGxvbmdlcgpzdXBwb3J0cyBwYXN0aW5nICJwdWJsaWMudGV4dCIgYXMgdGV4
dCBpbiBpT1MgMTEuCgpUZXN0czoKVUlQYXN0ZWJvYXJkVGVzdHMuQ29weVBsYWluVGV4dFdyaXRl
c0NvbmNyZXRlVHlwZXMKVUlQYXN0ZWJvYXJkVGVzdHMuQ29weVJpY2hUZXh0V3JpdGVzQ29uY3Jl
dGVUeXBlcwoKKiBwbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tOgooV2ViQ29y
ZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZSk6CgpTb3VyY2UvV2ViS2l0MjoKCkFkZCBib2ls
ZXJwbGF0ZSBTUEkgb24gV0tQcmVmZXJlbmNlcyB0byBlbmFibGUgSmF2YVNjcmlwdCBhY2Nlc3Mg
dG8gY29weSBhbmQgcGFzdGUuCgoqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5t
bToKKC1bV0tQcmVmZXJlbmNlcyBfc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZDpdKToK
KC1bV0tQcmVmZXJlbmNlcyBfamF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZF0pOgoqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaDoKClRvb2xzOgoKQWRkcyAyIG5l
dyB1bml0IHRlc3RzIGZvciBjb3B5aW5nIHBsYWluIGFuZCByaWNoIHNlbGVjdGVkIHdlYiBjb250
ZW50LgpTZWUgV2ViQ29yZSBhbmQgV2ViS2l0IENoYW5nZUxvZ3MgZm9yIG1vcmUgZGV0YWlsLgoK
KiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9yaWNoLWFuZC1wbGFpbi10ZXh0Lmh0
bWw6IEFkZGVkLgoqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1VJUGFzdGVib2FyZFRlc3RzLm1t
OiBBZGRlZC4KKFRlc3RXZWJLaXRBUEk6OmRhdGFGb3JQYXN0ZWJvYXJkVHlwZSk6CihUZXN0V2Vi
S2l0QVBJOjpzZXRVcFdlYlZpZXdGb3JQYXN0ZWJvYXJkVGVzdHMpOgooVGVzdFdlYktpdEFQSTo6
VEVTVCk6Ci0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAxOSArKysrKwogLi4uL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVi
b2FyZElPUy5tbSAgfCAyMyArKysrLS0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgMTUgKysrKwogLi4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZWZlcmVuY2VzLm1tICAgfCAxMCArKysKIC4uLi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXNQcml2YXRlLmggICAgIHwgIDIgKwogVG9vbHMvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxOCArKysrKwogLi4uL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgfCAgOCArKysKIC4uLi9UZXN0cy9X
ZWJLaXQyQ29jb2EvcmljaC1hbmQtcGxhaW4tdGV4dC5odG1sICAgIHwgNDYgKysrKysrKysrKysr
CiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9VSVBhc3RlYm9hcmRUZXN0cy5tbSB8IDgy
ICsrKysrKysrKysrKysrKysrKysrKysKIDkgZmlsZXMgY2hhbmdlZCwgMjE5IGluc2VydGlvbnMo
KyksIDQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvcmljaC1hbmQtcGxhaW4tdGV4dC5odG1sCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvVUlQYXN0ZWJvYXJkVGVzdHMu
bW0KCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggNjhjZjNmZTNiZjkuLmNmZThlNDdkYWRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTctMDYtMTMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CisKKyAgICAgICAgVW5hYmxlIHRvIHBhc3RlIHRleHQgdGhhdCB3YXMgY29waWVk
IGZyb20gYSBwYWdlIGludG8gdGhlIHVuaXZlcnNhbCBzZWFyY2ggZmllbGQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzI5MworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzI0NDA5MTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdh
LgorCisgICAgICAgIFZlbmQgInB1YmxpYy51dGY4LXBsYWluLXRleHQiIGFuZCAicHVibGljLnV0
ZjE2LXBsYWluLXRleHQiIGFzIGFkZGl0aW9uYWwgcmVwcmVzZW50YXRpb25zIG9uIHRoZSBwYXN0
ZWJvYXJkIHdoZW4KKyAgICAgICAgY29weWluZyBib3RoIHJpY2ggYW5kIHBsYWluIHdlYiBjb250
ZW50IGluIFBsYXRmb3JtUGFzdGVib2FyZElPUy5tbS4gVGhpcyBpcyBiZWNhdXNlIFVJVGV4dFZp
ZXcgbm8gbG9uZ2VyCisgICAgICAgIHN1cHBvcnRzIHBhc3RpbmcgInB1YmxpYy50ZXh0IiBhcyB0
ZXh0IGluIGlPUyAxMS4KKworICAgICAgICBUZXN0czoKKyAgICAgICAgVUlQYXN0ZWJvYXJkVGVz
dHMuQ29weVBsYWluVGV4dFdyaXRlc0NvbmNyZXRlVHlwZXMKKyAgICAgICAgVUlQYXN0ZWJvYXJk
VGVzdHMuQ29weVJpY2hUZXh0V3JpdGVzQ29uY3JldGVUeXBlcworCisgICAgICAgICogcGxhdGZv
cm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtUGFzdGVib2FyZDo6d3JpdGUpOgorCiAyMDE3LTA2LTEyICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgRG5EXSBBbGxvdyB0aGUgaW5qZWN0
ZWQgYnVuZGxlIHRvIGFkZCBjbGllbnQgZGF0YSB3aGVuIHdyaXRpbmcgYW4gaW1hZ2UgdG8gdGhl
IHBhc3RlYm9hcmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0
Zm9ybVBhc3RlYm9hcmRJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZv
cm1QYXN0ZWJvYXJkSU9TLm1tCmluZGV4IDNhNmJhZWY2NDUxLi4yMTFhYTQyY2ZlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9T
Lm1tCkBAIC0yNTYsNyArMjU2LDEyIEBAIHZvaWQgUGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZShj
b25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKIAogICAgIFJldGFpblB0cjxOU011
dGFibGVEaWN0aW9uYXJ5PiByZXByZXNlbnRhdGlvbnMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGlj
dGlvbmFyeSBhbGxvY10gaW5pdF0pOwogICAgIFtyZXByZXNlbnRhdGlvbnMgYWRkRW50cmllc0Zy
b21EaWN0aW9uYXJ5OnJpY2hUZXh0UmVwcmVzZW50YXRpb25zRm9yUGFzdGVib2FyZFdlYkNvbnRl
bnQoY29udGVudCkuYXV0b3JlbGVhc2UoKV07Ci0gICAgW3JlcHJlc2VudGF0aW9ucyBzZXRWYWx1
ZTpjb250ZW50LmRhdGFJblN0cmluZ0Zvcm1hdCBmb3JLZXk6KE5TU3RyaW5nICopa1VUVHlwZVRl
eHRdOworCisgICAgTlNTdHJpbmcgKnRleHRBc1N0cmluZyA9IGNvbnRlbnQuZGF0YUluU3RyaW5n
Rm9ybWF0OworICAgIFtyZXByZXNlbnRhdGlvbnMgc2V0VmFsdWU6W3RleHRBc1N0cmluZyBkYXRh
VXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10gZm9yS2V5OihOU1N0cmluZyAqKWtV
VFR5cGVVVEY4UGxhaW5UZXh0XTsKKyAgICBbcmVwcmVzZW50YXRpb25zIHNldFZhbHVlOlt0ZXh0
QXNTdHJpbmcgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEYxNlN0cmluZ0VuY29kaW5nXSBmb3JLZXk6
KE5TU3RyaW5nICopa1VUVHlwZVVURjE2UGxhaW5UZXh0XTsKKyAgICAvLyBGSVhNRTogRm9yIGJh
Y2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggY2xpZW50cyB0aGF0IGV4cGVjdCBwcmUtaU9TIDEx
IGJlaGF2aW9yICgncHVibGljLnRleHQnIHdpdGggYW4gTlNTdHJpbmcgYXMgdGhlIHZhbHVlKSB3
aGVuIGNvcHlpbmcgcmljaCB3ZWIgY29udGVudC4KKyAgICBbcmVwcmVzZW50YXRpb25zIHNldFZh
bHVlOnRleHRBc1N0cmluZyBmb3JLZXk6KE5TU3RyaW5nICopa1VUVHlwZVRleHRdOwogCiAgICAg
W21fcGFzdGVib2FyZCBzZXRJdGVtczpAW3JlcHJlc2VudGF0aW9ucy5nZXQoKV1dOwogfQpAQCAt
MzM5LDExICszNDQsMjEgQEAgdm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCkKIAogICAgIFJldGFpblB0
cjxOU0RpY3Rpb25hcnk+IHJlcHJlc2VudGF0aW9ucyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0
aW9uYXJ5IGFsbG9jXSBpbml0XSk7CiAKKyAgICBOU1N0cmluZyAqdGV4dEFzU3RyaW5nID0gdGV4
dDsKICAgICBpZiAocGFzdGVib2FyZFR5cGUgPT0gU3RyaW5nKGtVVFR5cGVVUkwpKSB7CiAgICAg
ICAgIFtyZXByZXNlbnRhdGlvbnMgc2V0VmFsdWU6YWRvcHROUyhbW05TVVJMIGFsbG9jXSBpbml0
V2l0aFN0cmluZzp0ZXh0XSkuZ2V0KCkgZm9yS2V5OnBhc3RlYm9hcmRUeXBlXTsKLSAgICAgICAg
W3JlcHJlc2VudGF0aW9ucyBzZXRWYWx1ZTp0ZXh0IGZvcktleTooTlNTdHJpbmcgKilrVVRUeXBl
VGV4dF07Ci0gICAgfSBlbHNlIGlmICghcGFzdGVib2FyZFR5cGUuaXNOdWxsKCkpCi0gICAgICAg
IFtyZXByZXNlbnRhdGlvbnMgc2V0VmFsdWU6dGV4dCBmb3JLZXk6cGFzdGVib2FyZFR5cGVdOwor
ICAgICAgICBbcmVwcmVzZW50YXRpb25zIHNldFZhbHVlOnRleHRBc1N0cmluZyBmb3JLZXk6KE5T
U3RyaW5nICopa1VUVHlwZVRleHRdOworICAgIH0gZWxzZSBpZiAoIXBhc3RlYm9hcmRUeXBlLmlz
TnVsbCgpKSB7CisgICAgICAgIC8vIEZJWE1FOiBXcml0aW5nIGFuIE5TU3RyaW5nIGRpcmVjdGx5
IHRvIHRoZSBwYXN0ZWJvYXJkIGlzIG9ubHkgZm9yIGJhY2t3YXJkcyBjb21wYWJpbGl0eSB3aXRo
IGFwcHMgdGhhdCBleHBlY3QgYSBjb3B5IGZyb20gd2ViIGNvbnRlbnQgdG8gdmVuZAorICAgICAg
ICAvLyBwdWJsaWMudGV4dCwgYW5kIG5vdCBtb3JlIHNwZWNpZmljIHN1YnR5cGVzLgorICAgICAg
ICBbcmVwcmVzZW50YXRpb25zIHNldFZhbHVlOnRleHRBc1N0cmluZyBmb3JLZXk6cGFzdGVib2Fy
ZFR5cGVdOworICAgIH0KKworICAgIGF1dG8gY2ZQYXN0ZWJvYXJkVHlwZSA9IHBhc3RlYm9hcmRU
eXBlLmNyZWF0ZUNGU3RyaW5nKCk7CisgICAgaWYgKFVUVHlwZUNvbmZvcm1zVG8oY2ZQYXN0ZWJv
YXJkVHlwZS5nZXQoKSwga1VUVHlwZVRleHQpIHx8IFVUVHlwZUNvbmZvcm1zVG8oY2ZQYXN0ZWJv
YXJkVHlwZS5nZXQoKSwga1VUVHlwZVVSTCkpIHsKKyAgICAgICAgW3JlcHJlc2VudGF0aW9ucyBz
ZXRWYWx1ZTpbdGV4dEFzU3RyaW5nIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29k
aW5nXSBmb3JLZXk6KE5TU3RyaW5nICopa1VUVHlwZVVURjhQbGFpblRleHRdOworICAgICAgICBb
cmVwcmVzZW50YXRpb25zIHNldFZhbHVlOlt0ZXh0QXNTdHJpbmcgZGF0YVVzaW5nRW5jb2Rpbmc6
TlNVVEYxNlN0cmluZ0VuY29kaW5nXSBmb3JLZXk6KE5TU3RyaW5nICopa1VUVHlwZVVURjE2UGxh
aW5UZXh0XTsKKyAgICB9CiAgICAgW21fcGFzdGVib2FyZCBzZXRJdGVtczpAW3JlcHJlc2VudGF0
aW9ucy5nZXQoKV1dOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTAyODJjOTY2MzUuLjY4OTYyMWEyZGY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTctMDYtMTMgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgVW5hYmxlIHRvIHBhc3RlIHRleHQg
dGhhdCB3YXMgY29waWVkIGZyb20gYSBwYWdlIGludG8gdGhlIHVuaXZlcnNhbCBzZWFyY2ggZmll
bGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzI5
MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI0NDA5MTg+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIEFkZCBib2lsZXJwbGF0ZSBTUEkgb24gV0tQcmVm
ZXJlbmNlcyB0byBlbmFibGUgSmF2YVNjcmlwdCBhY2Nlc3MgdG8gY29weSBhbmQgcGFzdGUuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW06CisgICAgICAg
ICgtW1dLUHJlZmVyZW5jZXMgX3NldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQ6XSk6Cisg
ICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX2phdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmRdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CisK
IDIwMTctMDYtMTIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgW2lPUyBEbkRdIEFsbG93IHRoZSBpbmplY3RlZCBidW5kbGUgdG8gYWRkIGNsaWVudCBk
YXRhIHdoZW4gd3JpdGluZyBhbiBpbWFnZSB0byB0aGUgcGFzdGVib2FyZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDkx
MmI2NDhmYzNhLi5mNDUzYjBjZmRhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQpAQCAtNjE3LDYgKzYxNywxNiBAQCAtICh2
b2lkKV9zZXRXZWJSVENMZWdhY3lBUElFbmFibGVkOihCT09MKWVuYWJsZWQKICAgICBfcHJlZmVy
ZW5jZXMtPnNldFdlYlJUQ0xlZ2FjeUFQSURpc2FibGVkKCFlbmFibGVkKTsKIH0KIAorLSAodm9p
ZClfc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZDooQk9PTClqYXZhU2NyaXB0Q2FuQWNj
ZXNzQ2xpcGJvYXJkCit7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRKYXZhU2NyaXB0Q2FuQWNjZXNz
Q2xpcGJvYXJkKGphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQpOworfQorCistIChCT09MKV9q
YXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+
amF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCgpOworfQorCiBAZW5kCiAKICNlbmRpZiAvLyBX
S19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDNlNDZiYjNiMzhhLi4xZThjMzBj
ZGYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
ZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtMTA2LDYgKzEwNiw4IEBAIHR5cGVkZWYgTlNf
T1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tKYXZhU2NyaXB0UnVudGltZUZsYWdzKSB7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkOikg
Qk9PTCBfaWNlQ2FuZGlkYXRlRmlsdGVydGluZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRXZWJSVENMZWdhY3lBUElFbmFibGVkOikgQk9PTCBfd2ViUlRDTGVnYWN5QVBJ
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKIAorQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SmF2YVNjcmlwdENhbkFj
Y2Vzc0NsaXBib2FyZDopIEJPT0wgX2phdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKICsgKE5T
QXJyYXk8X1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqPiAqKV9leHBlcmltZW50YWxGZWF0dXJlcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CiAtIChCT09MKV9pc0Vu
YWJsZWRGb3JGZWF0dXJlOihfV0tFeHBlcmltZW50YWxGZWF0dXJlICopZmVhdHVyZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CiAtICh2b2lkKV9zZXRFbmFibGVk
OihCT09MKXZhbHVlIGZvckZlYXR1cmU6KF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKilmZWF0dXJl
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0NjIyNmQyMzExYy4uNDMx
OGExYzBlZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNy0wNi0xMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KKworICAgICAgICBVbmFibGUgdG8gcGFzdGUgdGV4dCB0aGF0IHdhcyBj
b3BpZWQgZnJvbSBhIHBhZ2UgaW50byB0aGUgdW5pdmVyc2FsIHNlYXJjaCBmaWVsZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMjkzCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8zMjQ0MDkxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtl
IE5pd2EuCisKKyAgICAgICAgQWRkcyAyIG5ldyB1bml0IHRlc3RzIGZvciBjb3B5aW5nIHBsYWlu
IGFuZCByaWNoIHNlbGVjdGVkIHdlYiBjb250ZW50LgorICAgICAgICBTZWUgV2ViQ29yZSBhbmQg
V2ViS2l0IENoYW5nZUxvZ3MgZm9yIG1vcmUgZGV0YWlsLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvcmljaC1hbmQtcGxhaW4tdGV4dC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9VSVBhc3RlYm9hcmRU
ZXN0cy5tbTogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkYXRhRm9yUGFzdGVib2Fy
ZFR5cGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6c2V0VXBXZWJWaWV3Rm9yUGFzdGVib2Fy
ZFRlc3RzKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE3LTA2LTEyICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgRG5E
XSBBbGxvdyB0aGUgaW5qZWN0ZWQgYnVuZGxlIHRvIGFkZCBjbGllbnQgZGF0YSB3aGVuIHdyaXRp
bmcgYW4gaW1hZ2UgdG8gdGhlIHBhc3RlYm9hcmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MzJlM2FkODQwNjMuLjhkZjEzMDZkMTQzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjIw
LDYgKzYyMCw4IEBACiAJCUY0MkRBNTE2MUQ4Q0VGRTQwMDMzNkY0MCAvKiBsYXJnZS1pbnB1dC1m
aWVsZC1mb2N1cy1vbmxvYWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNDJEQTUxNTFEOENFRkRCMDAzMzZGNDAgLyogbGFyZ2UtaW5w
dXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwgKi87IH07CiAJCUY0NDUxQzc2MUVCOEZEODkwMDIw
QzVEQSAvKiB0d28tcGFyYWdyYXBoLWNvbnRlbnRlZGl0YWJsZS5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDUxQzc1MUVCOEZEN0Mw
MDIwQzVEQSAvKiB0d28tcGFyYWdyYXBoLWNvbnRlbnRlZGl0YWJsZS5odG1sICovOyB9OwogCQlG
NDUzOEVGNzFFODQ3M0U2MDBCNUM5NTMgLyogbGFyZ2UtcmVkLXNxdWFyZS5wbmcgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ1MzhFRjAxRTg0
NkI0MTAwQjVDOTUzIC8qIGxhcmdlLXJlZC1zcXVhcmUucG5nICovOyB9OworCQlGNDY4NDlCRTFF
RUY1OEU0MDBCOTM3RkUgLyogVUlQYXN0ZWJvYXJkVGVzdHMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDY4NDlCRDFFRUY1OEU0MDBCOTM3RkUgLyog
VUlQYXN0ZWJvYXJkVGVzdHMubW0gKi87IH07CisJCUY0Njg0OUMwMUVFRjVFRjMwMEI5MzdGRSAv
KiByaWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ2ODQ5QkYxRUVGNUVEQzAwQjkzN0ZFIC8qIHJpY2gt
YW5kLXBsYWluLXRleHQuaHRtbCAqLzsgfTsKIAkJRjQ2QTA5NUExRUQ4QTZFNjAwRDRBQTU1IC8q
IGFwcGxlLmdpZiBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNDdEMzBFQjFFRDI4NjE5MDAwNDgyRTEgLyogYXBwbGUuZ2lmICovOyB9OwogCQlG
NDZBMDk1QjFFRDhBNkU2MDBENEFBNTUgLyogZ2lmLWFuZC1maWxlLWlucHV0Lmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3RDMwRUQx
RUQyOEE2QzAwMDQ4MkUxIC8qIGdpZi1hbmQtZmlsZS1pbnB1dC5odG1sICovOyB9OwogCQlGNDc3
Mjg5OTFFNEFFM0MxMDA3QUJGNkEgLyogZnVsbC1wYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Nzcy
ODk4MUU0QUUzQUQwMDdBQkY2QSAvKiBmdWxsLXBhZ2UtY29udGVudGVkaXRhYmxlLmh0bWwgKi87
IH07CkBAIC03MDQsNiArNzA2LDcgQEAKIAkJCWRzdFBhdGggPSBUZXN0V2ViS2l0QVBJLnJlc291
cmNlczsKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSA3OwogCQkJZmlsZXMgPSAoCisJCQkJRjQ2ODQ5
QzAxRUVGNUVGMzAwQjkzN0ZFIC8qIHJpY2gtYW5kLXBsYWluLXRleHQuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQk5M0UyRDI3NjFFRDdENTMyMDBGQTc2RjYgLyogb2Zmc2NyZWVuLWlm
cmFtZS1vZi1tZWRpYS1kb2N1bWVudC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0
NkEwOTVBMUVEOEE2RTYwMEQ0QUE1NSAvKiBhcHBsZS5naWYgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJRjQ2QTA5NUIxRUQ4QTZFNjAwRDRBQTU1IC8qIGdpZi1hbmQtZmlsZS1pbnB1dC5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTU0OSw2ICsxNTUyLDggQEAKIAkJRjQyREE1MTUx
RDhDRUZEQjAwMzM2RjQwIC8qIGxhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBuYW1lID0gImxhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9h
ZC5odG1sIjsgcGF0aCA9ICJUZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtaW5wdXQtZmllbGQtZm9j
dXMtb25sb2FkLmh0bWwiOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUY0NDUxQzc1
MUVCOEZEN0MwMDIwQzVEQSAvKiB0d28tcGFyYWdyYXBoLWNvbnRlbnRlZGl0YWJsZS5odG1sICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gInR3by1wYXJhZ3JhcGgtY29udGVudGVkaXRhYmxl
Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDUzOEVGMDFFODQ2QjQxMDBC
NUM5NTMgLyogbGFyZ2UtcmVkLXNxdWFyZS5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAibGFyZ2UtcmVkLXNxdWFy
ZS5wbmciOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDY4NDlCRDFFRUY1OEU0MDBC
OTM3RkUgLyogVUlQYXN0ZWJvYXJkVGVzdHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVSVBh
c3RlYm9hcmRUZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ2ODQ5QkYx
RUVGNUVEQzAwQjkzN0ZFIC8qIHJpY2gtYW5kLXBsYWluLXRleHQuaHRtbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJy
aWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NDc3Mjg5ODFFNEFFM0FEMDA3QUJGNkEgLyogZnVsbC1wYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImZ1bGwtcGFnZS1jb250ZW50ZWRpdGFibGUu
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0QzMEVCMUVEMjg2MTkwMDA0
ODJFMSAvKiBhcHBsZS5naWYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBpbWFnZS5naWY7IHBhdGggPSBhcHBsZS5naWY7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY0N0QzMEVEMUVEMjhBNkMwMDA0ODJFMSAvKiBnaWYtYW5kLWZpbGUtaW5w
dXQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQuaHRtbDsgcGF0aCA9ICJnaWYtYW5kLWZpbGUtaW5wdXQuaHRtbCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xODk2LDYgKzE5MDEsNyBAQAogCQkJCUY0RDRGM0I3MUU0RTM2
RTQwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25UZXN0cy5tbSAqLywKIAkJCQk3NTYwOTE3NzE5
MjU5QzU5MDA5RUYwNkUgLyogTWVtb3J5Q2FjaGVBZGRJbWFnZVRvQ2FjaGVJT1MubW0gKi8sCiAJ
CQkJRjREN0JDRDYxRUE1NzRERDAwQzQyMUQzIC8qIFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cy5t
bSAqLywKKwkJCQlGNDY4NDlCRDFFRUY1OEU0MDBCOTM3RkUgLyogVUlQYXN0ZWJvYXJkVGVzdHMu
bW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC0yMDE2LDYgKzIwMjIsNyBAQAogCQkJCUExNDA5QUQ4MUU3MjU0QUMwMDQ5NDlEOSAvKiBw
YXNzd29yZC1wcm90ZWN0ZWQucGFnZXMgKi8sCiAJCQkJRjQxNTA4NkMxREEwNDBDMTAwNDRCRTlC
IC8qIHBsYXktYXVkaW8tb24tY2xpY2suaHRtbCAqLywKIAkJCQlBMTJEREJGRjFFODM3M0MxMDBD
RjZDQUUgLyogcmVuZGVyZWQtaW1hZ2UtZXhjbHVkaW5nLW92ZXJmbG93Lmh0bWwgKi8sCisJCQkJ
RjQ2ODQ5QkYxRUVGNUVEQzAwQjkzN0ZFIC8qIHJpY2gtYW5kLXBsYWluLXRleHQuaHRtbCAqLywK
IAkJCQlDOUI0QUQyOTFFQ0E2RUE1MDBGNUZFQTAgLyogc2lsZW5jZS1sb25nLm00YSAqLywKIAkJ
CQlGNEY0MDVCQjFENEMwQ0Y4MDA3QTk3MDcgLyogc2tpbm55LWF1dG9wbGF5aW5nLXZpZGVvLXdp
dGgtYXVkaW8uaHRtbCAqLywKIAkJCQk1MTVCRTE2RTFENDI4OEZGMDBERDdDNjggLyogU3RvcmVC
bG9iVG9CZURlbGV0ZWQuaHRtbCAqLywKQEAgLTMxNDgsNiArMzE1NSw3IEBACiAJCQkJNUM3OTY0
MTAxRUIwMjc4RDAwNzVENzRDIC8qIEV2ZW50TW9kaWZpZXJzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTJENENGOEJEMUQ4MzYwQ0MwMDAxQ0U4RCAvKiBXS1RodW1ibmFpbFZpZXcubW0gaW4gU291
cmNlcyAqLywKIAkJCQk1Q0UzNTREOTFFNzBEQTVDMDBCRUZFM0IgLyogV0tDb250ZW50RXh0ZW5z
aW9uU3RvcmUubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNDY4NDlCRTFFRUY1OEU0MDBCOTM3RkUg
LyogVUlQYXN0ZWJvYXJkVGVzdHMubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRUZGMDZENzFEOEFG
MzRBMDAwNEJCMzAgLyogV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW0gaW4gU291cmNlcyAqLywK
IAkJCQlBMTRGQzU4NTFCODk3MzkxMDBEMTA3RUIgLyogV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4
dHJhcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDNDE3RjMzMUQxOUUxNDgwMEI4RUY1MyAvKiBX
S1dlYlZpZXdEZWZhdWx0TmF2aWdhdGlvbkRlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9yaWNoLWFuZC1w
bGFpbi10ZXh0Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9y
aWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmZhMTM3ZTdiZmYwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvcmljaC1hbmQtcGxhaW4tdGV4dC5odG1sCkBAIC0wLDAgKzEs
NDYgQEAKKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1k
ZXZpY2Utd2lkdGgiPgorICAgICAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAg
ICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgICAgICBt
YXJnaW46IDA7CisgICAgICAgIH0KKworICAgICAgICBkaXYsIHRleHRhcmVhIHsKKyAgICAgICAg
ICAgIHdpZHRoOiAxMDAlOworICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAg
IGZvbnQtc2l6ZTogMTAwcHg7CisgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworICAg
ICAgICB9CisgICAgICAgIDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxkaXYgaWQ9
InJpY2giIGNvbnRlbnRlZGl0YWJsZT5IZWxsbyB3b3JsZDwvZGl2PgorICAgIDx0ZXh0YXJlYSBp
ZD0icGxhaW4iPjwvdGV4dGFyZWE+CisgICAgPHNjcmlwdD4KKyAgICBwbGFpbi52YWx1ZT0iSGVs
bG8gd29ybGQiCisKKyAgICBmdW5jdGlvbiBkZXNlbGVjdFRleHQoKQorICAgIHsKKyAgICAgICAg
Ymx1cigpOworICAgICAgICBnZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBzZWxlY3RSaWNoVGV4dCgpCisgICAgeworICAgICAgICBkZXNlbGVj
dFRleHQoKTsKKyAgICAgICAgbGV0IHRleHQgPSByaWNoLmNoaWxkTm9kZXNbMF07CisgICAgICAg
IGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGV4dCwgMCwgdGV4dCwgdGV4dC5kYXRh
Lmxlbmd0aCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2VsZWN0UGxhaW5UZXh0KCkKKyAgICB7
CisgICAgICAgIGRlc2VsZWN0VGV4dCgpOworICAgICAgICBwbGFpbi5mb2N1cygpOworICAgICAg
ICBwbGFpbi5zZWxlY3Rpb25TdGFydCA9IDA7CisgICAgICAgIHBsYWluLnNlbGVjdGlvbkVuZCA9
IHBsYWluLnZhbHVlLmxlbmd0aDsKKyAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9VSVBhc3RlYm9hcmRUZXN0cy5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1VJUGFzdGVib2FyZFRlc3RzLm1tCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jM2FkZWJiM2JmYwotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1VJUGFzdGVib2FyZFRl
c3RzLm1tCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisKKyNpZiBQTEFURk9STShJT1MpICYmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgIlBsYXRm
b3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxNb2Jp
bGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CisjaW1wb3J0IDxVSUtpdC9VSVBh
c3RlYm9hcmQuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgorI2lt
cG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgeworCitOU0RhdGEgKmRhdGFGb3JQYXN0ZWJvYXJkVHlwZShDRlN0cmluZ1JlZiB0eXBlKQor
eworICAgIHJldHVybiBbW1VJUGFzdGVib2FyZCBnZW5lcmFsUGFzdGVib2FyZF0gZGF0YUZvclBh
c3RlYm9hcmRUeXBlOihOU1N0cmluZyAqKXR5cGUgaW5JdGVtU2V0OltOU0luZGV4U2V0IGluZGV4
U2V0V2l0aEluZGV4OjBdXS5maXJzdE9iamVjdDsKK30KKworUmV0YWluUHRyPFRlc3RXS1dlYlZp
ZXc+IHNldFVwV2ViVmlld0ZvclBhc3RlYm9hcmRUZXN0cygpCit7CisgICAgW1VJUGFzdGVib2Fy
ZCBnZW5lcmFsUGFzdGVib2FyZF0uaXRlbXMgPSBAW107CisgICAgRVhQRUNUX1RSVUUoIWRhdGFG
b3JQYXN0ZWJvYXJkVHlwZShrVVRUeXBlVVRGOFBsYWluVGV4dCkubGVuZ3RoKTsKKyAgICBFWFBF
Q1RfVFJVRSghZGF0YUZvclBhc3RlYm9hcmRUeXBlKGtVVFR5cGVVVEYxNlBsYWluVGV4dCkubGVu
Z3RoKTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZp
ZXcgY29uZmlndXJhdGlvbl0ucHJlZmVyZW5jZXMuX2phdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9h
cmQgPSBZRVM7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAi
cmljaC1hbmQtcGxhaW4tdGV4dCJdOworICAgIHJldHVybiB3ZWJWaWV3OworfQorCitURVNUKFVJ
UGFzdGVib2FyZFRlc3RzLCBDb3B5UGxhaW5UZXh0V3JpdGVzQ29uY3JldGVUeXBlcykKK3sKKyAg
ICBhdXRvIHdlYlZpZXcgPSBzZXRVcFdlYlZpZXdGb3JQYXN0ZWJvYXJkVGVzdHMoKTsKKyAgICBb
d2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAic2VsZWN0UGxhaW5UZXh0KCki
XTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQu
ZXhlY0NvbW1hbmQoJ2NvcHknKSJdOworCisgICAgYXV0byB1dGY4UmVzdWx0ID0gYWRvcHROUyhb
W05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aERhdGE6ZGF0YUZvclBhc3RlYm9hcmRUeXBlKGtVVFR5
cGVVVEY4UGxhaW5UZXh0KSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10pOworICAgIGF1
dG8gdXRmMTZSZXN1bHQgPSBhZG9wdE5TKFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRGF0YTpk
YXRhRm9yUGFzdGVib2FyZFR5cGUoa1VUVHlwZVVURjE2UGxhaW5UZXh0KSBlbmNvZGluZzpOU1VU
RjE2U3RyaW5nRW5jb2RpbmddKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIkhlbGxvIHdvcmxkIiwg
W3V0ZjhSZXN1bHQgVVRGOFN0cmluZ10pOworICAgIEVYUEVDVF9XS19TVFJFUSgiSGVsbG8gd29y
bGQiLCBbdXRmMTZSZXN1bHQgVVRGOFN0cmluZ10pOworfQorCitURVNUKFVJUGFzdGVib2FyZFRl
c3RzLCBDb3B5UmljaFRleHRXcml0ZXNDb25jcmV0ZVR5cGVzKQoreworICAgIGF1dG8gd2ViVmll
dyA9IHNldFVwV2ViVmlld0ZvclBhc3RlYm9hcmRUZXN0cygpOworICAgIFt3ZWJWaWV3IHN0cmlu
Z0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJzZWxlY3RSaWNoVGV4dCgpIl07CisgICAgW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmV4ZWNDb21tYW5kKCdj
b3B5JykiXTsKKworICAgIGF1dG8gdXRmOFJlc3VsdCA9IGFkb3B0TlMoW1tOU1N0cmluZyBhbGxv
Y10gaW5pdFdpdGhEYXRhOmRhdGFGb3JQYXN0ZWJvYXJkVHlwZShrVVRUeXBlVVRGOFBsYWluVGV4
dCkgZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddKTsKKyAgICBhdXRvIHV0ZjE2UmVzdWx0
ID0gYWRvcHROUyhbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aERhdGE6ZGF0YUZvclBhc3RlYm9h
cmRUeXBlKGtVVFR5cGVVVEYxNlBsYWluVGV4dCkgZW5jb2Rpbmc6TlNVVEYxNlN0cmluZ0VuY29k
aW5nXSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJIZWxsbyB3b3JsZCIsIFt1dGY4UmVzdWx0IFVU
RjhTdHJpbmddKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIkhlbGxvIHdvcmxkIiwgW3V0ZjE2UmVz
dWx0IFVURjhTdHJpbmddKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisj
ZW5kaWYKLS0gCjIuMTIuMiAoQXBwbGUgR2l0LTg2KQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312777</attachid>
            <date>2017-06-13 09:16:08 -0700</date>
            <delta_ts>2017-06-13 09:58:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173293-20170613091607.patch</filename>
            <type>text/plain</type>
            <size>19537</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4MTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhjZjNmZTNiZjk4OGUx
NWUxNTU0MWNkZjMxNWY5ZTQ0YjM5MjYwYi4uN2Y0NzJhZjBmZmJkNGE2YTdlZDU3NTQzYjQwZTc1
MTRkZTE4ZDZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE3LTA2LTEzICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFVuYWJsZSB0byBw
YXN0ZSB0ZXh0IHRoYXQgd2FzIGNvcGllZCBmcm9tIGEgcGFnZSBpbnRvIHRoZSB1bml2ZXJzYWwg
c2VhcmNoIGZpZWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzMyOTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMyNDQwOTE4PgorCisgICAgICAg
IFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBWZW5kICJwdWJsaWMudXRmOC1w
bGFpbi10ZXh0IiBhbmQgInB1YmxpYy51dGYxNi1wbGFpbi10ZXh0IiBhcyBhZGRpdGlvbmFsIHJl
cHJlc2VudGF0aW9ucyBvbiB0aGUgcGFzdGVib2FyZCB3aGVuCisgICAgICAgIGNvcHlpbmcgYm90
aCByaWNoIGFuZCBwbGFpbiB3ZWIgY29udGVudCBpbiBQbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0u
IFRoaXMgaXMgYmVjYXVzZSBVSVRleHRWaWV3IG5vIGxvbmdlcgorICAgICAgICBzdXBwb3J0cyBw
YXN0aW5nICJwdWJsaWMudGV4dCIgYXMgdGV4dCBpbiBpT1MgMTEuCisKKyAgICAgICAgVGVzdHM6
CisgICAgICAgIFVJUGFzdGVib2FyZFRlc3RzLkNvcHlQbGFpblRleHRXcml0ZXNDb25jcmV0ZVR5
cGVzCisgICAgICAgIFVJUGFzdGVib2FyZFRlc3RzLkNvcHlSaWNoVGV4dFdyaXRlc0NvbmNyZXRl
VHlwZXMKKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQpOgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKToKKwogMjAxNy0wNi0xMiAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TIERuRF0gQWxsb3cgdGhlIGluamVj
dGVkIGJ1bmRsZSB0byBhZGQgY2xpZW50IGRhdGEgd2hlbiB3cml0aW5nIGFuIGltYWdlIHRvIHRo
ZSBwYXN0ZWJvYXJkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTAyODJjOTY2MzViZDU2NjRmZGNhNzQ0ZTFkNjky
ZGVjOGE0ZjBhNy4uNjg5NjIxYTJkZjQ4ODViZTZmMWYyM2Q2YWI5M2Y1YzgxY2Y1OTI3ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE3LTA2LTEzICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFVuYWJsZSB0byBwYXN0ZSB0ZXh0IHRoYXQg
d2FzIGNvcGllZCBmcm9tIGEgcGFnZSBpbnRvIHRoZSB1bml2ZXJzYWwgc2VhcmNoIGZpZWxkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMyOTMKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMyNDQwOTE4PgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5
b3N1a2UgTml3YS4KKworICAgICAgICBBZGQgYm9pbGVycGxhdGUgU1BJIG9uIFdLUHJlZmVyZW5j
ZXMgdG8gZW5hYmxlIEphdmFTY3JpcHQgYWNjZXNzIHRvIGNvcHkgYW5kIHBhc3RlLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtX
S1ByZWZlcmVuY2VzIF9zZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkOl0pOgorICAgICAg
ICAoLVtXS1ByZWZlcmVuY2VzIF9qYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkXSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oOgorCiAyMDE3
LTA2LTEyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IFtpT1MgRG5EXSBBbGxvdyB0aGUgaW5qZWN0ZWQgYnVuZGxlIHRvIGFkZCBjbGllbnQgZGF0YSB3
aGVuIHdyaXRpbmcgYW4gaW1hZ2UgdG8gdGhlIHBhc3RlYm9hcmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KaW5kZXggM2Q4ZDc0Y2FmZDRjOWEyMmRkMzY4
ZDIzZTllOWU1NWJmMDkwYWJjMC4uYjc1N2E1NzlmZDAzNTljNWEzNDlmMjEwZGFiNWJhYjJmNzg5
YjQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJ
T1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0K
QEAgLTEzMSw2ICsxMzEsOCBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9h
cmRJbWFnZSYgcGFzdGVib2FyZEltYWdlKQogCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5U
ZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgU21hcnRSZXBsYWNlT3B0aW9uKQogeworICAgIC8vIEZJ
WE1FOiBXZSB2ZW5kICJwdWJsaWMudGV4dCIgaGVyZSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxp
dHkgd2l0aCBwcmUtaU9TIDExIGFwcHMuIEluIHRoZSBmdXR1cmUsIHdlIHNob3VsZCBzdG9wIHZl
bmRpbmcgdGhpcyBVVEksCisgICAgLy8gYW5kIGluc3RlYWQgc2V0IGRhdGEgZm9yIGNvbmNyZXRl
IHBsYWluIHRleHQgdHlwZXMuIFNlZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3MzMxNz4uCiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJh
dGVneSgpLT53cml0ZVRvUGFzdGVib2FyZChrVVRUeXBlVGV4dCwgdGV4dCwgbV9wYXN0ZWJvYXJk
TmFtZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0
Zm9ybVBhc3RlYm9hcmRJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZv
cm1QYXN0ZWJvYXJkSU9TLm1tCmluZGV4IDNhNmJhZWY2NDUxZDZjOTNmZDBiMjJhNjBmOGQ4NGYy
ZGJjYzZiNDkuLjc2Y2E5ODdiMzQ1NWVjNzkzNTg5NGExOTVlNDNiN2VkODNkNmE3YzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1Mu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElP
Uy5tbQpAQCAtMjU2LDcgKzI1NiwxMyBAQCB2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUo
Y29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCiAKICAgICBSZXRhaW5QdHI8TlNN
dXRhYmxlRGljdGlvbmFyeT4gcmVwcmVzZW50YXRpb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURp
Y3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKICAgICBbcmVwcmVzZW50YXRpb25zIGFkZEVudHJpZXNG
cm9tRGljdGlvbmFyeTpyaWNoVGV4dFJlcHJlc2VudGF0aW9uc0ZvclBhc3RlYm9hcmRXZWJDb250
ZW50KGNvbnRlbnQpLmF1dG9yZWxlYXNlKCldOwotICAgIFtyZXByZXNlbnRhdGlvbnMgc2V0VmFs
dWU6Y29udGVudC5kYXRhSW5TdHJpbmdGb3JtYXQgZm9yS2V5OihOU1N0cmluZyAqKWtVVFR5cGVU
ZXh0XTsKKworICAgIE5TU3RyaW5nICp0ZXh0QXNTdHJpbmcgPSBjb250ZW50LmRhdGFJblN0cmlu
Z0Zvcm1hdDsKKyAgICBbcmVwcmVzZW50YXRpb25zIHNldFZhbHVlOlt0ZXh0QXNTdHJpbmcgZGF0
YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddIGZvcktleTooTlNTdHJpbmcgKilr
VVRUeXBlVVRGOFBsYWluVGV4dF07CisgICAgW3JlcHJlc2VudGF0aW9ucyBzZXRWYWx1ZTpbdGV4
dEFzU3RyaW5nIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGMTZTdHJpbmdFbmNvZGluZ10gZm9yS2V5
OihOU1N0cmluZyAqKWtVVFR5cGVVVEYxNlBsYWluVGV4dF07CisgICAgLy8gRklYTUU6IFdlIHZl
bmQgInB1YmxpYy50ZXh0IiBoZXJlIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIHBy
ZS1pT1MgMTEgYXBwcy4gSW4gdGhlIGZ1dHVyZSwgd2Ugc2hvdWxkIHN0b3AgdmVuZGluZyB0aGlz
IFVUSSwKKyAgICAvLyBhbmQgaW5zdGVhZCBzZXQgZGF0YSBmb3IgY29uY3JldGUgcGxhaW4gdGV4
dCB0eXBlcy4gU2VlIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcz
MzE3Pi4KKyAgICBbcmVwcmVzZW50YXRpb25zIHNldFZhbHVlOnRleHRBc1N0cmluZyBmb3JLZXk6
KE5TU3RyaW5nICopa1VUVHlwZVRleHRdOwogCiAgICAgW21fcGFzdGVib2FyZCBzZXRJdGVtczpA
W3JlcHJlc2VudGF0aW9ucy5nZXQoKV1dOwogfQpAQCAtMzM5LDExICszNDUsMTggQEAgdm9pZCBQ
bGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNv
bnN0IFN0cmluZyYgdGV4dCkKIAogICAgIFJldGFpblB0cjxOU0RpY3Rpb25hcnk+IHJlcHJlc2Vu
dGF0aW9ucyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XSk7CiAK
KyAgICBOU1N0cmluZyAqdGV4dEFzU3RyaW5nID0gdGV4dDsKICAgICBpZiAocGFzdGVib2FyZFR5
cGUgPT0gU3RyaW5nKGtVVFR5cGVVUkwpKSB7CiAgICAgICAgIFtyZXByZXNlbnRhdGlvbnMgc2V0
VmFsdWU6YWRvcHROUyhbW05TVVJMIGFsbG9jXSBpbml0V2l0aFN0cmluZzp0ZXh0XSkuZ2V0KCkg
Zm9yS2V5OnBhc3RlYm9hcmRUeXBlXTsKLSAgICAgICAgW3JlcHJlc2VudGF0aW9ucyBzZXRWYWx1
ZTp0ZXh0IGZvcktleTooTlNTdHJpbmcgKilrVVRUeXBlVGV4dF07CisgICAgICAgIFtyZXByZXNl
bnRhdGlvbnMgc2V0VmFsdWU6dGV4dEFzU3RyaW5nIGZvcktleTooTlNTdHJpbmcgKilrVVRUeXBl
VGV4dF07CiAgICAgfSBlbHNlIGlmICghcGFzdGVib2FyZFR5cGUuaXNOdWxsKCkpCi0gICAgICAg
IFtyZXByZXNlbnRhdGlvbnMgc2V0VmFsdWU6dGV4dCBmb3JLZXk6cGFzdGVib2FyZFR5cGVdOwor
ICAgICAgICBbcmVwcmVzZW50YXRpb25zIHNldFZhbHVlOnRleHRBc1N0cmluZyBmb3JLZXk6cGFz
dGVib2FyZFR5cGVdOworCisgICAgYXV0byBjZlBhc3RlYm9hcmRUeXBlID0gcGFzdGVib2FyZFR5
cGUuY3JlYXRlQ0ZTdHJpbmcoKTsKKyAgICBpZiAoVVRUeXBlQ29uZm9ybXNUbyhjZlBhc3RlYm9h
cmRUeXBlLmdldCgpLCBrVVRUeXBlVGV4dCkgfHwgVVRUeXBlQ29uZm9ybXNUbyhjZlBhc3RlYm9h
cmRUeXBlLmdldCgpLCBrVVRUeXBlVVJMKSkgeworICAgICAgICBbcmVwcmVzZW50YXRpb25zIHNl
dFZhbHVlOlt0ZXh0QXNTdHJpbmcgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2Rp
bmddIGZvcktleTooTlNTdHJpbmcgKilrVVRUeXBlVVRGOFBsYWluVGV4dF07CisgICAgICAgIFty
ZXByZXNlbnRhdGlvbnMgc2V0VmFsdWU6W3RleHRBc1N0cmluZyBkYXRhVXNpbmdFbmNvZGluZzpO
U1VURjE2U3RyaW5nRW5jb2RpbmddIGZvcktleTooTlNTdHJpbmcgKilrVVRUeXBlVVRGMTZQbGFp
blRleHRdOworICAgIH0KICAgICBbbV9wYXN0ZWJvYXJkIHNldEl0ZW1zOkBbcmVwcmVzZW50YXRp
b25zLmdldCgpXV07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlcy5tbQppbmRleCA5MTJiNjQ4ZmMzYThkYTMwNzk0N2U1MzIwNDJl
ZmNkYjljNzcxNmEyLi5mNDUzYjBjZmRhZDczMDlmNjY3MGU0MjI5MWM1ZDM3ZTM3ZjI0ZDQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVu
Y2VzLm1tCkBAIC02MTcsNiArNjE3LDE2IEBAIC0gKHZvaWQpX3NldFdlYlJUQ0xlZ2FjeUFQSUVu
YWJsZWQ6KEJPT0wpZW5hYmxlZAogICAgIF9wcmVmZXJlbmNlcy0+c2V0V2ViUlRDTGVnYWN5QVBJ
RGlzYWJsZWQoIWVuYWJsZWQpOwogfQogCistICh2b2lkKV9zZXRKYXZhU2NyaXB0Q2FuQWNjZXNz
Q2xpcGJvYXJkOihCT09MKWphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQKK3sKKyAgICBfcHJl
ZmVyZW5jZXMtPnNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoamF2YVNjcmlwdENhbkFj
Y2Vzc0NsaXBib2FyZCk7Cit9CisKKy0gKEJPT0wpX2phdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9h
cmQKK3sKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5qYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJv
YXJkKCk7Cit9CisKIEBlbmQKIAogI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2
YXRlLmgKaW5kZXggM2U0NmJiM2IzOGFkNWNlNjNmZmVjMDEwNWJhMGYxOTM0OTllNDU4ZC4uMWU4
YzMwY2RmM2JjMTNkZGEzOTQ2YmE1MDM0NjcxNGNmMDczMWRkZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUu
aApAQCAtMTA2LDYgKzEwNiw4IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tK
YXZhU2NyaXB0UnVudGltZUZsYWdzKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkOikgQk9PTCBfaWNlQ2FuZGlkYXRlRmlsdGVy
dGluZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRXZWJSVENMZWdhY3lB
UElFbmFibGVkOikgQk9PTCBfd2ViUlRDTGVnYWN5QVBJRW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAorQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZDopIEJPT0wgX2ph
dmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKICsgKE5TQXJyYXk8X1dLRXhwZXJpbWVudGFsRmVh
dHVyZSAqPiAqKV9leHBlcmltZW50YWxGZWF0dXJlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMiksIGlvcygxMC4wKSk7CiAtIChCT09MKV9pc0VuYWJsZWRGb3JGZWF0dXJlOihfV0tFeHBl
cmltZW50YWxGZWF0dXJlICopZmVhdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiks
IGlvcygxMC4wKSk7CiAtICh2b2lkKV9zZXRFbmFibGVkOihCT09MKXZhbHVlIGZvckZlYXR1cmU6
KF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKilmZWF0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEyKSwgaW9zKDEwLjApKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA0NjIyNmQyMzExYzExNDNjNDMwOGU4OTIxNDM5M2M2NmFjNTY0OWRk
Li40MzE4YTFjMGVlM2MyMjNiOWM5MmJiNzQ1NjAwNmE2YmFmMGIwYzBlIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIw
MTctMDYtMTMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAg
ICAgVW5hYmxlIHRvIHBhc3RlIHRleHQgdGhhdCB3YXMgY29waWVkIGZyb20gYSBwYWdlIGludG8g
dGhlIHVuaXZlcnNhbCBzZWFyY2ggZmllbGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3MzI5MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI0NDA5
MTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIEFkZHMg
MiBuZXcgdW5pdCB0ZXN0cyBmb3IgY29weWluZyBwbGFpbiBhbmQgcmljaCBzZWxlY3RlZCB3ZWIg
Y29udGVudC4KKyAgICAgICAgU2VlIFdlYkNvcmUgYW5kIFdlYktpdCBDaGFuZ2VMb2dzIGZvciBt
b3JlIGRldGFpbC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL3JpY2gtYW5kLXBsYWluLXRleHQuaHRtbDogQWRkZWQuCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9pb3MvVUlQYXN0ZWJvYXJkVGVzdHMubW06IEFkZGVkLgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6ZGF0YUZvclBhc3RlYm9hcmRUeXBlKToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OnNldFVwV2ViVmlld0ZvclBhc3RlYm9hcmRUZXN0cyk6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNy0wNi0xMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TIERuRF0gQWxsb3cgdGhlIGluamVjdGVkIGJ1
bmRsZSB0byBhZGQgY2xpZW50IGRhdGEgd2hlbiB3cml0aW5nIGFuIGltYWdlIHRvIHRoZSBwYXN0
ZWJvYXJkCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDMyZTNhZDg0MDYzMjRjYTg5ODAwMDM4
Yjc5ZGU1ZmVmNmQyZTA0NDMuLjhkZjEzMDZkMTQzZGEwMzdmMzc1MDgzNjgzZGVjMGE5ZTRmNWUz
ZWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MjAsNiArNjIwLDggQEAKIAkJRjQyREE1
MTYxRDhDRUZFNDAwMzM2RjQwIC8qIGxhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
MkRBNTE1MUQ4Q0VGREIwMDMzNkY0MCAvKiBsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQu
aHRtbCAqLzsgfTsKIAkJRjQ0NTFDNzYxRUI4RkQ4OTAwMjBDNURBIC8qIHR3by1wYXJhZ3JhcGgt
Y29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjQ0NTFDNzUxRUI4RkQ3QzAwMjBDNURBIC8qIHR3by1wYXJhZ3Jh
cGgtY29udGVudGVkaXRhYmxlLmh0bWwgKi87IH07CiAJCUY0NTM4RUY3MUU4NDczRTYwMEI1Qzk1
MyAvKiBsYXJnZS1yZWQtc3F1YXJlLnBuZyBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDUzOEVGMDFFODQ2QjQxMDBCNUM5NTMgLyogbGFyZ2Ut
cmVkLXNxdWFyZS5wbmcgKi87IH07CisJCUY0Njg0OUJFMUVFRjU4RTQwMEI5MzdGRSAvKiBVSVBh
c3RlYm9hcmRUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0Njg0OUJEMUVFRjU4RTQwMEI5MzdGRSAvKiBVSVBhc3RlYm9hcmRUZXN0cy5tbSAq
LzsgfTsKKwkJRjQ2ODQ5QzAxRUVGNUVGMzAwQjkzN0ZFIC8qIHJpY2gtYW5kLXBsYWluLXRleHQu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNDY4NDlCRjFFRUY1RURDMDBCOTM3RkUgLyogcmljaC1hbmQtcGxhaW4tdGV4dC5odG1sICov
OyB9OwogCQlGNDZBMDk1QTFFRDhBNkU2MDBENEFBNTUgLyogYXBwbGUuZ2lmIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0N0QzMEVCMUVEMjg2
MTkwMDA0ODJFMSAvKiBhcHBsZS5naWYgKi87IH07CiAJCUY0NkEwOTVCMUVEOEE2RTYwMEQ0QUE1
NSAvKiBnaWYtYW5kLWZpbGUtaW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdEMzBFRDFFRDI4QTZDMDAwNDgyRTEgLyogZ2lm
LWFuZC1maWxlLWlucHV0Lmh0bWwgKi87IH07CiAJCUY0NzcyODk5MUU0QUUzQzEwMDdBQkY2QSAv
KiBmdWxsLXBhZ2UtY29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3NzI4OTgxRTRBRTNBRDAwN0FCRjZBIC8q
IGZ1bGwtcGFnZS1jb250ZW50ZWRpdGFibGUuaHRtbCAqLzsgfTsKQEAgLTcwNCw2ICs3MDYsNyBA
QAogCQkJZHN0UGF0aCA9IFRlc3RXZWJLaXRBUEkucmVzb3VyY2VzOwogCQkJZHN0U3ViZm9sZGVy
U3BlYyA9IDc7CiAJCQlmaWxlcyA9ICgKKwkJCQlGNDY4NDlDMDFFRUY1RUYzMDBCOTM3RkUgLyog
cmljaC1hbmQtcGxhaW4tdGV4dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTkzRTJE
Mjc2MUVEN0Q1MzIwMEZBNzZGNiAvKiBvZmZzY3JlZW4taWZyYW1lLW9mLW1lZGlhLWRvY3VtZW50
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjQ2QTA5NUExRUQ4QTZFNjAwRDRBQTU1
IC8qIGFwcGxlLmdpZiBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNDZBMDk1QjFFRDhBNkU2
MDBENEFBNTUgLyogZ2lmLWFuZC1maWxlLWlucHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CkBAIC0xNTQ5LDYgKzE1NTIsOCBAQAogCQlGNDJEQTUxNTFEOENFRkRCMDAzMzZGNDAgLyogbGFy
Z2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IG5h
bWUgPSAibGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwiOyBwYXRoID0gIlRlc3Rz
L1dlYktpdDJDb2NvYS9sYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCI7IHNvdXJj
ZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJRjQ0NTFDNzUxRUI4RkQ3QzAwMjBDNURBIC8qIHR3
by1wYXJhZ3JhcGgtY29udGVudGVkaXRhYmxlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSAidHdvLXBhcmFncmFwaC1jb250ZW50ZWRpdGFibGUuaHRtbCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0NTM4RUYwMUU4NDZCNDEwMEI1Qzk1MyAvKiBsYXJnZS1yZWQtc3F1
YXJlLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IGltYWdlLnBuZzsgcGF0aCA9ICJsYXJnZS1yZWQtc3F1YXJlLnBuZyI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY0Njg0OUJEMUVFRjU4RTQwMEI5MzdGRSAvKiBVSVBhc3RlYm9hcmRU
ZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVJUGFzdGVib2FyZFRlc3RzLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDY4NDlCRjFFRUY1RURDMDBCOTM3RkUgLyogcmlj
aC1hbmQtcGxhaW4tdGV4dC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gInJpY2gtYW5kLXBsYWluLXRleHQuaHRt
bCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NzcyODk4MUU0QUUzQUQwMDdBQkY2
QSAvKiBmdWxsLXBhZ2UtY29udGVudGVkaXRhYmxlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSAiZnVsbC1wYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjQ3RDMwRUIxRUQyODYxOTAwMDQ4MkUxIC8qIGFwcGxlLmdpZiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLmdpZjsg
cGF0aCA9IGFwcGxlLmdpZjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3RDMwRUQx
RUQyOEE2QzAwMDQ4MkUxIC8qIGdpZi1hbmQtZmlsZS1pbnB1dC5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImdp
Zi1hbmQtZmlsZS1pbnB1dC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4
OTYsNiArMTkwMSw3IEBACiAJCQkJRjRENEYzQjcxRTRFMzZFNDAwQkIyNzY3IC8qIERhdGFJbnRl
cmFjdGlvblRlc3RzLm1tICovLAogCQkJCTc1NjA5MTc3MTkyNTlDNTkwMDlFRjA2RSAvKiBNZW1v
cnlDYWNoZUFkZEltYWdlVG9DYWNoZUlPUy5tbSAqLywKIAkJCQlGNEQ3QkNENjFFQTU3NEREMDBD
NDIxRDMgLyogUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLm1tICovLAorCQkJCUY0Njg0OUJEMUVF
RjU4RTQwMEI5MzdGRSAvKiBVSVBhc3RlYm9hcmRUZXN0cy5tbSAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIwMTYsNiArMjAyMiw3IEBA
CiAJCQkJQTE0MDlBRDgxRTcyNTRBQzAwNDk0OUQ5IC8qIHBhc3N3b3JkLXByb3RlY3RlZC5wYWdl
cyAqLywKIAkJCQlGNDE1MDg2QzFEQTA0MEMxMDA0NEJFOUIgLyogcGxheS1hdWRpby1vbi1jbGlj
ay5odG1sICovLAogCQkJCUExMkREQkZGMUU4MzczQzEwMENGNkNBRSAvKiByZW5kZXJlZC1pbWFn
ZS1leGNsdWRpbmctb3ZlcmZsb3cuaHRtbCAqLywKKwkJCQlGNDY4NDlCRjFFRUY1RURDMDBCOTM3
RkUgLyogcmljaC1hbmQtcGxhaW4tdGV4dC5odG1sICovLAogCQkJCUM5QjRBRDI5MUVDQTZFQTUw
MEY1RkVBMCAvKiBzaWxlbmNlLWxvbmcubTRhICovLAogCQkJCUY0RjQwNUJCMUQ0QzBDRjgwMDdB
OTcwNyAvKiBza2lubnktYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sICovLAogCQkJ
CTUxNUJFMTZFMUQ0Mjg4RkYwMEREN0M2OCAvKiBTdG9yZUJsb2JUb0JlRGVsZXRlZC5odG1sICov
LApAQCAtMzE0OCw2ICszMTU1LDcgQEAKIAkJCQk1Qzc5NjQxMDFFQjAyNzhEMDA3NUQ3NEMgLyog
RXZlbnRNb2RpZmllcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ0Q0Y4QkQxRDgzNjBDQzAw
MDFDRThEIC8qIFdLVGh1bWJuYWlsVmlldy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDRTM1NEQ5
MUU3MERBNUMwMEJFRkUzQiAvKiBXS0NvbnRlbnRFeHRlbnNpb25TdG9yZS5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCUY0Njg0OUJFMUVFRjU4RTQwMEI5MzdGRSAvKiBVSVBhc3RlYm9hcmRUZXN0cy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTJFRkYwNkQ3MUQ4QUYzNEEwMDA0QkIzMCAvKiBXS1dlYlZp
ZXdDYW5kaWRhdGVUZXN0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExNEZDNTg1MUI4OTczOTEw
MEQxMDdFQiAvKiBXS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0M0MTdGMzMxRDE5RTE0ODAwQjhFRjUzIC8qIFdLV2ViVmlld0RlZmF1bHROYXZpZ2F0
aW9uRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3JpY2gtYW5kLXBsYWluLXRleHQuaHRtbCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3JpY2gtYW5kLXBsYWluLXRleHQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mYTEzN2U3YmZmMDdlYzgxODU0ZjgwOTIyNzBiZDhhYWRiOTcyOTA3Ci0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
cmljaC1hbmQtcGxhaW4tdGV4dC5odG1sCkBAIC0wLDAgKzEsNDYgQEAKKzxoZWFkPgorICAgIDxt
ZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPgorICAgICAg
ICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAg
ICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIH0K
KworICAgICAgICBkaXYsIHRleHRhcmVhIHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDAlOworICAg
ICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogMTAwcHg7Cisg
ICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworICAgICAgICB9CisgICAgICAgIDwvc3R5
bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxkaXYgaWQ9InJpY2giIGNvbnRlbnRlZGl0YWJs
ZT5IZWxsbyB3b3JsZDwvZGl2PgorICAgIDx0ZXh0YXJlYSBpZD0icGxhaW4iPjwvdGV4dGFyZWE+
CisgICAgPHNjcmlwdD4KKyAgICBwbGFpbi52YWx1ZT0iSGVsbG8gd29ybGQiCisKKyAgICBmdW5j
dGlvbiBkZXNlbGVjdFRleHQoKQorICAgIHsKKyAgICAgICAgYmx1cigpOworICAgICAgICBnZXRT
ZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZWxl
Y3RSaWNoVGV4dCgpCisgICAgeworICAgICAgICBkZXNlbGVjdFRleHQoKTsKKyAgICAgICAgbGV0
IHRleHQgPSByaWNoLmNoaWxkTm9kZXNbMF07CisgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJh
c2VBbmRFeHRlbnQodGV4dCwgMCwgdGV4dCwgdGV4dC5kYXRhLmxlbmd0aCk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gc2VsZWN0UGxhaW5UZXh0KCkKKyAgICB7CisgICAgICAgIGRlc2VsZWN0VGV4
dCgpOworICAgICAgICBwbGFpbi5mb2N1cygpOworICAgICAgICBwbGFpbi5zZWxlY3Rpb25TdGFy
dCA9IDA7CisgICAgICAgIHBsYWluLnNlbGVjdGlvbkVuZCA9IHBsYWluLnZhbHVlLmxlbmd0aDsK
KyAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL2lvcy9VSVBhc3RlYm9hcmRUZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvaW9zL1VJUGFzdGVib2FyZFRlc3RzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzYWRlYmIzYmZj
MzliNTI5MDgwYjQxZTU0ZThmNTc3MmRmNTA0ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9VSVBhc3RlYm9hcmRUZXN0cy5tbQpAQCAtMCwwICsxLDgy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0oSU9T
KSAmJiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2lt
cG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL01vYmls
ZUNvcmVTZXJ2aWNlcy5oPgorI2ltcG9ydCA8VUlLaXQvVUlQYXN0ZWJvYXJkLmg+CisjaW1wb3J0
IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZp
ZXdQcml2YXRlLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworTlNEYXRhICpkYXRh
Rm9yUGFzdGVib2FyZFR5cGUoQ0ZTdHJpbmdSZWYgdHlwZSkKK3sKKyAgICByZXR1cm4gW1tVSVBh
c3RlYm9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRdIGRhdGFGb3JQYXN0ZWJvYXJkVHlwZTooTlNTdHJp
bmcgKil0eXBlIGluSXRlbVNldDpbTlNJbmRleFNldCBpbmRleFNldFdpdGhJbmRleDowXV0uZmly
c3RPYmplY3Q7Cit9CisKK1JldGFpblB0cjxUZXN0V0tXZWJWaWV3PiBzZXRVcFdlYlZpZXdGb3JQ
YXN0ZWJvYXJkVGVzdHMoKQoreworICAgIFtVSVBhc3RlYm9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRd
Lml0ZW1zID0gQFtdOworICAgIEVYUEVDVF9UUlVFKCFkYXRhRm9yUGFzdGVib2FyZFR5cGUoa1VU
VHlwZVVURjhQbGFpblRleHQpLmxlbmd0aCk7CisgICAgRVhQRUNUX1RSVUUoIWRhdGFGb3JQYXN0
ZWJvYXJkVHlwZShrVVRUeXBlVVRGMTZQbGFpblRleHQpLmxlbmd0aCk7CisKKyAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1Jl
Y3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOworICAgIFt3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLnBy
ZWZlcmVuY2VzLl9qYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkID0gWUVTOworICAgIFt3ZWJW
aWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAInJpY2gtYW5kLXBsYWluLXRleHQi
XTsKKyAgICByZXR1cm4gd2ViVmlldzsKK30KKworVEVTVChVSVBhc3RlYm9hcmRUZXN0cywgQ29w
eVBsYWluVGV4dFdyaXRlc0NvbmNyZXRlVHlwZXMpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gc2V0
VXBXZWJWaWV3Rm9yUGFzdGVib2FyZFRlc3RzKCk7CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFs
dWF0aW5nSmF2YVNjcmlwdDpAInNlbGVjdFBsYWluVGV4dCgpIl07CisgICAgW3dlYlZpZXcgc3Ry
aW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyki
XTsKKworICAgIGF1dG8gdXRmOFJlc3VsdCA9IGFkb3B0TlMoW1tOU1N0cmluZyBhbGxvY10gaW5p
dFdpdGhEYXRhOmRhdGFGb3JQYXN0ZWJvYXJkVHlwZShrVVRUeXBlVVRGOFBsYWluVGV4dCkgZW5j
b2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddKTsKKyAgICBhdXRvIHV0ZjE2UmVzdWx0ID0gYWRv
cHROUyhbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aERhdGE6ZGF0YUZvclBhc3RlYm9hcmRUeXBl
KGtVVFR5cGVVVEYxNlBsYWluVGV4dCkgZW5jb2Rpbmc6TlNVVEYxNlN0cmluZ0VuY29kaW5nXSk7
CisgICAgRVhQRUNUX1dLX1NUUkVRKCJIZWxsbyB3b3JsZCIsIFt1dGY4UmVzdWx0IFVURjhTdHJp
bmddKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIkhlbGxvIHdvcmxkIiwgW3V0ZjE2UmVzdWx0IFVU
RjhTdHJpbmddKTsKK30KKworVEVTVChVSVBhc3RlYm9hcmRUZXN0cywgQ29weVJpY2hUZXh0V3Jp
dGVzQ29uY3JldGVUeXBlcykKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBzZXRVcFdlYlZpZXdGb3JQ
YXN0ZWJvYXJkVGVzdHMoKTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0OkAic2VsZWN0UmljaFRleHQoKSJdOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6QCJkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpIl07CisKKyAgICBhdXRv
IHV0ZjhSZXN1bHQgPSBhZG9wdE5TKFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRGF0YTpkYXRh
Rm9yUGFzdGVib2FyZFR5cGUoa1VUVHlwZVVURjhQbGFpblRleHQpIGVuY29kaW5nOk5TVVRGOFN0
cmluZ0VuY29kaW5nXSk7CisgICAgYXV0byB1dGYxNlJlc3VsdCA9IGFkb3B0TlMoW1tOU1N0cmlu
ZyBhbGxvY10gaW5pdFdpdGhEYXRhOmRhdGFGb3JQYXN0ZWJvYXJkVHlwZShrVVRUeXBlVVRGMTZQ
bGFpblRleHQpIGVuY29kaW5nOk5TVVRGMTZTdHJpbmdFbmNvZGluZ10pOworICAgIEVYUEVDVF9X
S19TVFJFUSgiSGVsbG8gd29ybGQiLCBbdXRmOFJlc3VsdCBVVEY4U3RyaW5nXSk7CisgICAgRVhQ
RUNUX1dLX1NUUkVRKCJIZWxsbyB3b3JsZCIsIFt1dGYxNlJlc3VsdCBVVEY4U3RyaW5nXSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>