<?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>194190</bug_id>
          
          <creation_ts>2019-02-02 00:59:05 -0800</creation_ts>
          <short_desc>[CG] Enable setAdditionalSupportedImageTypes for WK1</short_desc>
          <delta_ts>2019-02-04 16:47:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Images</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="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1501469</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-02-02 00:59:05 -0800</bug_when>
    <thetext>Add a preference key for AdditionalSupportedImageTypes and transfer its value to the UTI registry when the WebPreferences is set to the WebView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501470</commentid>
    <comment_count>1</comment_count>
      <attachid>360969</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-02-02 01:03:27 -0800</bug_when>
    <thetext>Created attachment 360969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501471</commentid>
    <comment_count>2</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-02-02 01:06:02 -0800</bug_when>
    <thetext>&lt;rdar://problem/47680862&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501899</commentid>
    <comment_count>3</comment_count>
      <attachid>360969</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-02-04 10:52:17 -0800</bug_when>
    <thetext>Comment on attachment 360969
Patch

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

&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.h:208
&gt; +/*!
&gt; + @property additionalSupportedImageTypes
&gt; + */
&gt; +@property (nonatomic, retain) NSArray&lt;NSString *&gt; *additionalSupportedImageTypes;
&gt; +

Shouldn&apos;t this be SPI? (in a private header, with underscores probably?)

&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.mm:459
&gt; +        @[@&quot;&quot;],                         WebKitAdditionalSupportedImageTypesKey,

Shouldn&apos;t the default probably be an empty array, not an array with one empty string in it?

&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.mm:1186
&gt; +    [self _setStringArrayValueForKey: imageTypes forKey: WebKitAdditionalSupportedImageTypesKey];

I see you&apos;re just following surrounding code but we don&apos;t put spaces after colons.

&gt; Source/WebKitLegacy/mac/WebView/WebView.mm:2870
&gt; +#if PLATFORM(MAC)

Why PLATFORM(MAC)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501918</commentid>
    <comment_count>4</comment_count>
      <attachid>360969</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-02-04 11:18:14 -0800</bug_when>
    <thetext>Comment on attachment 360969
Patch

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

&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.h:206
&gt; +/*!
&gt; + @property additionalSupportedImageTypes
&gt; + */

More words please. What is this list? MIME types? UTIs?

&gt;&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.mm:459
&gt;&gt; +        @[@&quot;&quot;],                         WebKitAdditionalSupportedImageTypesKey,
&gt; 
&gt; Shouldn&apos;t the default probably be an empty array, not an array with one empty string in it?

Why does the key need to be in the list at all?

&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.mm:763
&gt; +    id s = [self _valueForKey:key];

better name for &apos;s&apos; please.

&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.mm:764
&gt; +    return [s isKindOfClass:[NSArray&lt;NSString *&gt; class]] ? (NSArray&lt;NSString *&gt; *)s : nil;

This doesn&apos;t do what you expect. isKindOfClass:[NSArray&lt;NSString *&gt; class] does NOT check the types of the objects in the array.

&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.mm:769
&gt; +    NSString *_key = KEY(key);

What does that do?

&gt; Tools/TestWebKitAPI/Tests/mac/AdditionalSupportedImageTypes.mm:56
&gt; +    [preferences setAdditionalSupportedImageTypes:@[@&quot;com.truevision.tga-image&quot;]];

You should also test:
* empty array
* array with [NSNull null]
* array with things that are not strings
* array with things that are not UTIs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501928</commentid>
    <comment_count>5</comment_count>
      <attachid>361079</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-02-04 11:39:54 -0800</bug_when>
    <thetext>Created attachment 361079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501957</commentid>
    <comment_count>6</comment_count>
      <attachid>361087</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-02-04 12:56:56 -0800</bug_when>
    <thetext>Created attachment 361087
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501978</commentid>
    <comment_count>7</comment_count>
      <attachid>360969</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-02-04 13:12:03 -0800</bug_when>
    <thetext>Comment on attachment 360969
Patch

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

&gt;&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.h:206
&gt;&gt; + */
&gt; 
&gt; More words please. What is this list? MIME types? UTIs?

I added the following comment before the property:

// The input of this SPI is an array of image UTI (Uniform Type Identifier).

&gt;&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.h:208
&gt;&gt; +
&gt; 
&gt; Shouldn&apos;t this be SPI? (in a private header, with underscores probably?)

The property is moved to WebPreferencesPrivate.h

&gt;&gt;&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.mm:459
&gt;&gt;&gt; +        @[@&quot;&quot;],                         WebKitAdditionalSupportedImageTypesKey,
&gt;&gt; 
&gt;&gt; Shouldn&apos;t the default probably be an empty array, not an array with one empty string in it?
&gt; 
&gt; Why does the key need to be in the list at all?

Yes there is no need to specify a default value for this property. So I removed this entry in the default dictionary.

&gt;&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.mm:763
&gt;&gt; +    id s = [self _valueForKey:key];
&gt; 
&gt; better name for &apos;s&apos; please.

I renamed it to &quot;value&quot;

&gt;&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.mm:764
&gt;&gt; +    return [s isKindOfClass:[NSArray&lt;NSString *&gt; class]] ? (NSArray&lt;NSString *&gt; *)s : nil;
&gt; 
&gt; This doesn&apos;t do what you expect. isKindOfClass:[NSArray&lt;NSString *&gt; class] does NOT check the types of the objects in the array.

Yes you right. I added two checks. The first one checks whether the value is an NSArray or not. The second check loops through the entries in this array and checks whether the entry is an NSString or not.

&gt;&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.mm:769
&gt;&gt; +    NSString *_key = KEY(key);
&gt; 
&gt; What does that do?

If the preferences was initWithIdentifier, all the keys will be prefixed by that identifier. KEY is defined to be the macro:

#define KEY(x) (_private-&gt;identifier ? [_private-&gt;identifier.get() stringByAppendingString:(x)] : (x))

&gt;&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.mm:1186
&gt;&gt; +    [self _setStringArrayValueForKey: imageTypes forKey: WebKitAdditionalSupportedImageTypesKey];
&gt; 
&gt; I see you&apos;re just following surrounding code but we don&apos;t put spaces after colons.

Spaces were removed.

&gt;&gt; Source/WebKitLegacy/mac/WebView/WebView.mm:2870
&gt;&gt; +#if PLATFORM(MAC)
&gt; 
&gt; Why PLATFORM(MAC)?

PLATFORM(MAC) was removed since by default the code in this source file is enabled for macOS and iOS.

&gt;&gt; Tools/TestWebKitAPI/Tests/mac/AdditionalSupportedImageTypes.mm:56
&gt;&gt; +    [preferences setAdditionalSupportedImageTypes:@[@&quot;com.truevision.tga-image&quot;]];
&gt; 
&gt; You should also test:
&gt; * empty array
&gt; * array with [NSNull null]
&gt; * array with things that are not strings
&gt; * array with things that are not UTIs

Tests were added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501993</commentid>
    <comment_count>8</comment_count>
      <attachid>361087</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-02-04 13:37:39 -0800</bug_when>
    <thetext>Comment on attachment 361087
Patch

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

&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.mm:1192
&gt; +- (void)setAdditionalSupportedImageTypes: (NSArray&lt;NSString *&gt; *)imageTypes

:&lt;no space&gt;(

Also, it&apos;s funny that you&apos;re being so careful with the type checks when reading out of prefs but not when writing to them.

&gt; Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h:629
&gt; +// The input of this SPI is an array of image UTI (Uniform Type Identifier).

I would leave off &quot;the input of this SPI&quot;. Maybe just &quot;additionalSupportedImageTypes is an array of image UTIs&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502074</commentid>
    <comment_count>9</comment_count>
      <attachid>361114</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-02-04 15:43:20 -0800</bug_when>
    <thetext>Created attachment 361114
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502075</commentid>
    <comment_count>10</comment_count>
      <attachid>361087</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-02-04 15:47:06 -0800</bug_when>
    <thetext>Comment on attachment 361087
Patch

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

&gt;&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.mm:1192
&gt;&gt; +- (void)setAdditionalSupportedImageTypes: (NSArray&lt;NSString *&gt; *)imageTypes
&gt; 
&gt; :&lt;no space&gt;(
&gt; 
&gt; Also, it&apos;s funny that you&apos;re being so careful with the type checks when reading out of prefs but not when writing to them.

The space was removed.

I just followed what other functions, in the same file, are doing. For example _setIntegerValue() sets the value without checking whether it can be an integer or not. But _integerValueForKey() returns 0 if the value of the key is not an integer.

&gt;&gt; Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h:629
&gt;&gt; +// The input of this SPI is an array of image UTI (Uniform Type Identifier).
&gt; 
&gt; I would leave off &quot;the input of this SPI&quot;. Maybe just &quot;additionalSupportedImageTypes is an array of image UTIs&quot;.

The comment was changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502076</commentid>
    <comment_count>11</comment_count>
      <attachid>361115</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-02-04 15:51:52 -0800</bug_when>
    <thetext>Created attachment 361115
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502118</commentid>
    <comment_count>12</comment_count>
      <attachid>361115</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-04 16:47:23 -0800</bug_when>
    <thetext>Comment on attachment 361115
Patch

Clearing flags on attachment: 361115

Committed r240949: &lt;https://trac.webkit.org/changeset/240949&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502119</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-04 16:47:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360969</attachid>
            <date>2019-02-02 01:03:27 -0800</date>
            <delta_ts>2019-02-04 11:39:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194190-20190202010327.patch</filename>
            <type>text/plain</type>
            <size>28101</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM0NDI0ODJkYjMwYjRl
NTIxNGE2ZDk2ZTVlOTYyY2E4NmM3NjEwMy4uMjRjM2E4MDg1Zjk4MTM4Y2E3MGU4MWRkNzlmMTU0
M2ZhYWRjOWVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTAyLTAyICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtDR10gRW5hYmxlIHNl
dEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIGZvciBXSzEKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDE5MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGZ1bmN0aW9uIHdlYkNvcmVT
dHJpbmdWZWN0b3JGcm9tTlNTdHJpbmdBcnJheSBmcm9tIFdlYktpdCB0bworICAgICAgICBXZWJD
b3JlIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IGJvdGggV2ViS2l0IGFuZCBXZWJLaXRMZWdhY3kuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYkNvcmU6OndlYkNvcmVT
dHJpbmdWZWN0b3JGcm9tTlNTdHJpbmdBcnJheSk6CisKIDIwMTktMDItMDEgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRoZSB1bnVzZWQg
bGF5ZXJGb3JTY3JvbGxpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5NzM5NzExMWQ0ZTMxZjIyNjdhYzJjOThk
M2E1NTM5Mzk1ZjAwOWY0Li4zODdjODBjMTg2ZGY3NmIwZWUxZTM0NTJmNTMxYmQyMzIwOWM1NDI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTAyLTAyICBTYWlkIEFib3UtSGFsbGF3
YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtDR10gRW5hYmxlIHNldEFkZGl0aW9uYWxT
dXBwb3J0ZWRJbWFnZVR5cGVzIGZvciBXSzEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5NDE5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGZ1bmN0aW9uIHdlYkNvcmVTdHJpbmdWZWN0b3JG
cm9tTlNTdHJpbmdBcnJheSBmcm9tIFdlYktpdCB0bworICAgICAgICBXZWJDb3JlIHNvIGl0IGNh
biBiZSB1c2VkIGJ5IGJvdGggV2ViS2l0IGFuZCBXZWJLaXRMZWdhY3kuCisKKyAgICAgICAgKiBQ
bGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLmg6CisgICAgICAgICogUGxhdGZvcm0vbWFjL1N0
cmluZ1V0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktpdDo6d2ViQ29yZVN0cmluZ1ZlY3RvckZy
b21OU1N0cmluZ0FycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9pbml0aWFsaXplV2l0aENvbmZp
Z3VyYXRpb246XSk6CisKIDIwMTktMDItMDEgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxl
LmNvbT4KIAogICAgICAgICBNb3ZlIHNvZnQtbGlua2luZyBvZiBUZWxlcGhvbnlVdGlsaXRpZXMu
ZnJhbWV3b3JrIG91dCBvZiBUVUNhbGxTUEkuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IGEyMjE2NGE5YzdmY2IyYWIzZmVmMGUzYjIwODE0YThkYjI4NTkwY2UuLmJhMjUwOWJiZDZh
NDRkNzZjZDE2MWRmNDc1YThhNDYxOWRmMWYzOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOS0wMi0wMiAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlk
QGFwcGxlLmNvbT4KKworICAgICAgICBbQ0ddIEVuYWJsZSBzZXRBZGRpdGlvbmFsU3VwcG9ydGVk
SW1hZ2VUeXBlcyBmb3IgV0sxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTQxOTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAxLiBEZWZpbmUgdGhlIHByZWZlcmVuY2VzIGtleSBBZGRpdGlvbmFsU3VwcG9y
dGVkSW1hZ2VUeXBlcy4KKyAgICAgICAgMi4gRGVmaW5lIHRoZSBzZXR0ZXIgYW5kIHRoZSBnZXR0
ZXIgb2YgdGhlIHZhbHVlLgorICAgICAgICAzLiBBZGQgZnVuY3Rpb24gdG8gY29udmVydCBmcm9t
IGFuIGlkIHRvIGFuIGFycmF5IG9mIHN0cmluZ3MuCisgICAgICAgIDQuIENhbGwgV2ViQ29yZTo6
c2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMgd2hlbiBwcmVmZXJlbmNlcyBjaGFuZ2Uu
CisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAg
ICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZl
cmVuY2VzLm1tOgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6CisgICAg
ICAgICgtW1dlYlByZWZlcmVuY2VzIF9zdHJpbmdBcnJheVZhbHVlRm9yS2V5Ol0pOgorICAgICAg
ICAoLVtXZWJQcmVmZXJlbmNlcyBfc2V0U3RyaW5nQXJyYXlWYWx1ZUZvcktleTpmb3JLZXk6XSk6
CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5
cGVzOl0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBhZGRpdGlvbmFsU3VwcG9ydGVkSW1h
Z2VUeXBlc10pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
VmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgorCiAyMDE5LTAxLTMxICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2ZXJ0IHIyMzg4MTkg
d2hpY2ggaXMgdW5uZWVkZWQgYW5kIGNhdXNlZCBhIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLmgKaW5kZXggMDAx
MWJmYzU0OTA2MTU1OGVhNmVlNjVmMTlhZWZkYWEwY2VkOTlkNS4uYWJmMmJmMTMwOGFmZGNlZGVk
YjUzYTUxMTkxY2VmYzQxMWNlYmJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1N0cmluZ1V0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TdHJpbmdVdGlsaXRpZXMuaApAQCAtMjksNSArMjksMTEgQEAKICNpbXBvcnQgPHd0Zi9Gb3J3
YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKwogV0VCQ09SRV9FWFBPUlQgYm9vbCBzdHJp
bmdNYXRjaGVzV2lsZGNhcmRTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmdUb0JlTWF0Y2hlZCwg
Y29uc3QgU3RyaW5nJiB3aWxkY2FyZFN0cmluZyk7CisKKyNpZmRlZiBfX09CSkNfXworV0VCQ09S
RV9FWFBPUlQgVmVjdG9yPFN0cmluZz4gd2ViQ29yZVN0cmluZ1ZlY3RvckZyb21OU1N0cmluZ0Fy
cmF5KE5TQXJyYXk8TlNTdHJpbmcgKj4gKik7CisjZW5kaWYgLy8gZGVmaW5lZChfX09CSkNfXykK
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxp
dGllcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0K
aW5kZXggN2NkMWJkODBhZTllMzNlNzU2ZjY1OTEyMjQwZjdlZDZjYzMzYzViNS4uZjFmNTZiMzA4
N2QwZTA5MTFmMTgwZTU1MzIwNjZmYjBkYTFlNmE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tCkBAIC01OSw0ICs1OSwxNSBAQCBib29sIHN0
cmluZ01hdGNoZXNXaWxkY2FyZFN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgU3Ry
aW5nJiB3aWxkY2FyZFN0cgogICAgIHJldHVybiBKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9u
KHdpbGRjYXJkUmVnZXhQYXR0ZXJuU3RyaW5nKHdpbGRjYXJkU3RyaW5nKSwgSlNDOjpZYXJyOjpU
ZXh0Q2FzZUluc2Vuc2l0aXZlKS5tYXRjaChzdHJpbmcpICE9IC0xOwogfQogCitWZWN0b3I8U3Ry
aW5nPiB3ZWJDb3JlU3RyaW5nVmVjdG9yRnJvbU5TU3RyaW5nQXJyYXkoTlNBcnJheTxOU1N0cmlu
ZyAqPiAqbnNTdHJpbmdBcnJheSkKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiBzdHJpbmdWZWN0b3I7
CisgICAgc3RyaW5nVmVjdG9yLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoW25zU3RyaW5nQXJyYXkg
Y291bnRdKTsKKworICAgIGZvciAoTlNTdHJpbmcgKm5zU3RyaW5nIGluIG5zU3RyaW5nQXJyYXkp
CisgICAgICAgIHN0cmluZ1ZlY3Rvci51bmNoZWNrZWRBcHBlbmQobnNTdHJpbmcpOworCisgICAg
cmV0dXJuIHN0cmluZ1ZlY3RvcjsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL21h
Yy9TdHJpbmdVdGlsaXRpZXMuaAppbmRleCA0MjU3YzhjZmE5ZTRhYmExNDJhYWRlODE5MWU5Zjk5
ZmIyOWQ4MjM5Li4yOWE3NmNkNzUzOGM1ZGZjOGUxYThkMjg5ZWNjOWU4YjZjODA1ZGYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMuaApAQCAtMzcsOCAr
MzcsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIE5TU3RyaW5nICpuc1N0cmluZ0Zyb21XZWJDb3Jl
U3RyaW5nKGNvbnN0IFN0cmluZyYpOwogTlNTdHJpbmcgKmZvcm1hdHRlZFBob25lTnVtYmVyU3Ry
aW5nKE5TU3RyaW5nICpvcmlnaW5hbFBob25lTnVtYmVyKTsKIAotVmVjdG9yPFN0cmluZz4gd2Vi
Q29yZVN0cmluZ1ZlY3RvckZyb21OU1N0cmluZ0FycmF5KE5TQXJyYXk8TlNTdHJpbmcgKj4gKik7
Ci0KICNlbmRpZiAvLyBkZWZpbmVkKF9fT0JKQ19fKQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0KaW5kZXggYmNkMmZiNjU1YTUyNGNjMDQxYjkx
YTllN2ZjMjc5M2FkOGY3N2VmOC4uZWNiYjc5Nzc3NmMyYjhmOTcxNjVjMzM5ZWYwNGZmYmY0OTRh
NjhkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0
aWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5t
bQpAQCAtODIsMTUgKzgyLDQgQEAgTlNTdHJpbmcgKmZvcm1hdHRlZFBob25lTnVtYmVyU3RyaW5n
KE5TU3RyaW5nICopCiAKICNlbmRpZiAvLyBFTkFCTEUoVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJ
T04pICYmIFBMQVRGT1JNKE1BQykKIAotVmVjdG9yPFN0cmluZz4gd2ViQ29yZVN0cmluZ1ZlY3Rv
ckZyb21OU1N0cmluZ0FycmF5KE5TQXJyYXk8TlNTdHJpbmcgKj4gKm5zU3RyaW5nQXJyYXkpCi17
Ci0gICAgVmVjdG9yPFN0cmluZz4gc3RyaW5nVmVjdG9yOwotICAgIHN0cmluZ1ZlY3Rvci5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KFtuc1N0cmluZ0FycmF5IGNvdW50XSk7Ci0KLSAgICBmb3IgKE5T
U3RyaW5nICpuc1N0cmluZyBpbiBuc1N0cmluZ0FycmF5KQotICAgICAgICBzdHJpbmdWZWN0b3Iu
dW5jaGVja2VkQXBwZW5kKG5zU3RyaW5nKTsKLQotICAgIHJldHVybiBzdHJpbmdWZWN0b3I7Ci19
Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CmluZGV4IDlhNzNhMzZjNGZlZjk3N2U4OWFjYzI1ZGZmY2QzYTFjNzQxZDhhYWQuLjc1N2M5NThi
ZjBhOGU1YmQ4ZjMzNDk2MzZhYWI0NGQ2N2ZiZmQ0ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNTEsNyArNTEsNiBAQAogI2ltcG9y
dCAiUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCIKICNpbXBvcnQgIlJlbW90ZU9iamVjdFJlZ2lzdHJ5
TWVzc2FnZXMuaCIKICNpbXBvcnQgIlNhZmVCcm93c2luZ1dhcm5pbmcuaCIKLSNpbXBvcnQgIlN0
cmluZ1V0aWxpdGllcy5oIgogI2ltcG9ydCAiVUlEZWxlZ2F0ZS5oIgogI2ltcG9ydCAiVXNlck1l
ZGlhUHJvY2Vzc01hbmFnZXIuaCIKICNpbXBvcnQgIlZlcnNpb25DaGVja3MuaCIKQEAgLTExMiw2
ICsxMTEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9TZXR0aW5ncy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvU3RyaW5nVXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ZhbGlk
YXRpb25CdWJibGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4KICNp
bXBvcnQgPFdlYkNvcmUvV3JpdGluZ01vZGUuaD4KQEAgLTU4Myw3ICs1ODMsNyBAQCBzdGF0aWMg
dm9pZCB2YWxpZGF0ZShXS1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uKQogICAg
ICAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFBhZ2VHcm91cChXZWJLaXQ6OldlYlBhZ2VH
cm91cDo6Y3JlYXRlKGNvbmZpZ3VyYXRpb24uX2dyb3VwSWRlbnRpZmllcikucHRyKCkpOwogICAg
IH0KIAotICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VU
eXBlcyhXZWJLaXQ6OndlYkNvcmVTdHJpbmdWZWN0b3JGcm9tTlNTdHJpbmdBcnJheShbX2NvbmZp
Z3VyYXRpb24gX2FkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzXSkpOworICAgIHBhZ2VDb25m
aWd1cmF0aW9uLT5zZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyhXZWJDb3JlOjp3ZWJD
b3JlU3RyaW5nVmVjdG9yRnJvbU5TU3RyaW5nQXJyYXkoW19jb25maWd1cmF0aW9uIF9hZGRpdGlv
bmFsU3VwcG9ydGVkSW1hZ2VUeXBlc10pKTsKIAogICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVm
ZXJlbmNlVmFsdWVzKCkuc2V0KFdlYktpdDo6V2ViUHJlZmVyZW5jZXNLZXk6OnN1cHByZXNzZXNJ
bmNyZW1lbnRhbFJlbmRlcmluZ0tleSgpLCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmU6OlZh
bHVlKCEhW19jb25maWd1cmF0aW9uIHN1cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZ10pKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggNDlkMzQyZmYyZTI3NDA0YWU4YzI2OWUyYjVhOTYw
YTI2ZGYzYjk4MC4uZGE0ZDYyN2NlODIzMzE2NTQ3MTcxNDA2YzM3NGNiOWY5YTA3ODQzMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC02Niw2ICs2Niw3IEBACiAjZGVmaW5lIFdlYktpdEFsbG93
QW5pbWF0ZWRJbWFnZXNQcmVmZXJlbmNlS2V5IEAiV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlc1By
ZWZlcmVuY2VLZXkiCiAjZGVmaW5lIFdlYktpdEFsbG93QW5pbWF0ZWRJbWFnZUxvb3BpbmdQcmVm
ZXJlbmNlS2V5IEAiV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlTG9vcGluZ1ByZWZlcmVuY2VLZXki
CiAjZGVmaW5lIFdlYktpdERpc3BsYXlJbWFnZXNLZXkgQCJXZWJLaXREaXNwbGF5SW1hZ2VzS2V5
IgorI2RlZmluZSBXZWJLaXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc0tleSAgQCJXZWJL
aXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc0tleSIKICNkZWZpbmUgV2ViS2l0TG9hZFNp
dGVJY29uc0tleSBAIldlYktpdExvYWRTaXRlSWNvbnNLZXkiCiAjZGVmaW5lIFdlYktpdEJhY2tG
b3J3YXJkQ2FjaGVFeHBpcmF0aW9uSW50ZXJ2YWxLZXkgQCJXZWJLaXRCYWNrRm9yd2FyZENhY2hl
RXhwaXJhdGlvbkludGVydmFsS2V5IgogI2lmICFUQVJHRVRfT1NfSVBIT05FCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLmgKaW5kZXggNjhhNjQy
NzhhMzQxYTNkZjRlY2MwZDViNzNkMGVjZGU1M2ZhOGFiOS4uOTM1NTZlYjY4NGEwNDhiM2Y3ZjY5
YWVjZDMyYTgzMmVkZDZhYWYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXMuaApAQCAtMjAxLDYgKzIwMSwxMSBAQCBXRUJLSVRfQ0xBU1Nf
REVQUkVDQVRFRF9NQUMoMTBfMywgMTBfMTQpCiAqLwogQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5OwogCisvKiEKKyBAcHJvcGVydHkgYWRkaXRpb25h
bFN1cHBvcnRlZEltYWdlVHlwZXMKKyAqLworQHByb3BlcnR5IChub25hdG9taWMsIHJldGFpbikg
TlNBcnJheTxOU1N0cmluZyAqPiAqYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXM7CisKIC8q
IQogICAgIEBwcm9wZXJ0eSBhdXRvc2F2ZXMKICAgICBAZGlzY3Vzc2lvbiBJZiBhdXRvc2F2ZXMg
aXMgWUVTIHRoZSBzZXR0aW5ncyByZXByZXNlbnRlZCBieQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggZTgwMmMwYTQ4Y2RhY2Y4
ZmMxOTNkZjY2ZjcxN2NhMDMxYzJlNjY2NC4uNDIwNzlkZDYyMDc1NmE2YjRhMzVjNDhlMjg2Yjcx
OWIzMTk0NDI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzLm1tCkBAIC00NTYsNiArNDU2LDcgQEAgcHVibGljOgogICAgICAgICBbTlNO
dW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwgIFdlYktpdEFsbG93QW5pbWF0ZWRJbWFnZXNQcmVm
ZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwgIFdlYktp
dEFsbG93QW5pbWF0ZWRJbWFnZUxvb3BpbmdQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1i
ZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwgIFdlYktpdERpc3BsYXlJbWFnZXNLZXksCisgICAgICAg
IEBbQCIiXSwgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0QWRkaXRpb25hbFN1cHBvcnRl
ZEltYWdlVHlwZXNLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAg
V2ViS2l0TG9hZFNpdGVJY29uc0tleSwKICAgICAgICAgQCIxODAwIiwgICAgICAgICAgICAgICAg
ICAgICAgICBXZWJLaXRCYWNrRm9yd2FyZENhY2hlRXhwaXJhdGlvbkludGVydmFsS2V5LAogI2lm
ICFQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNzU3LDYgKzc1OCwyNyBAQCBwdWJsaWM6CiAgICAg
W3NlbGYgX3Bvc3RQcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb25dOwogfQogCistIChOU0Fy
cmF5PE5TU3RyaW5nICo+ICopX3N0cmluZ0FycmF5VmFsdWVGb3JLZXk6KE5TU3RyaW5nICopa2V5
Cit7CisgICAgaWQgcyA9IFtzZWxmIF92YWx1ZUZvcktleTprZXldOworICAgIHJldHVybiBbcyBp
c0tpbmRPZkNsYXNzOltOU0FycmF5PE5TU3RyaW5nICo+IGNsYXNzXV0gPyAoTlNBcnJheTxOU1N0
cmluZyAqPiAqKXMgOiBuaWw7Cit9CisKKy0gKHZvaWQpX3NldFN0cmluZ0FycmF5VmFsdWVGb3JL
ZXk6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKil2YWx1ZSBmb3JLZXk6KE5TU3RyaW5nICopa2V5Cit7
CisgICAgTlNTdHJpbmcgKl9rZXkgPSBLRVkoa2V5KTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgIGRpc3BhdGNoX2JhcnJpZXJfc3luYyhfcHJpdmF0ZS0+cmVhZFdyaXRlUXVldWUsIF57
CisjZW5kaWYKKyAgICAgICAgW19wcml2YXRlLT52YWx1ZXMuZ2V0KCkgc2V0T2JqZWN0OnZhbHVl
IGZvcktleTpfa2V5XTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIH0pOworI2VuZGlm
CisgICAgaWYgKF9wcml2YXRlLT5hdXRvc2F2ZXMpCisgICAgICAgIFtbTlNVc2VyRGVmYXVsdHMg
c3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldE9iamVjdDp2YWx1ZSBmb3JLZXk6X2tleV07CisgICAg
W3NlbGYgX3Bvc3RQcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb25dOworfQorCiAtIChpbnQp
X2ludGVnZXJWYWx1ZUZvcktleTooTlNTdHJpbmcgKilrZXkKIHsKICAgICBpZCBvID0gW3NlbGYg
X3ZhbHVlRm9yS2V5OmtleV07CkBAIC0xMTU5LDYgKzExODEsMTYgQEAgcHVibGljOgogICAgIHJl
dHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OiBXZWJLaXREaXNwbGF5SW1hZ2VzS2V5XTsKIH0K
IAorLSAodm9pZClzZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlczogKE5TQXJyYXk8TlNT
dHJpbmcgKj4gKilpbWFnZVR5cGVzCit7CisgICAgW3NlbGYgX3NldFN0cmluZ0FycmF5VmFsdWVG
b3JLZXk6IGltYWdlVHlwZXMgZm9yS2V5OiBXZWJLaXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VU
eXBlc0tleV07Cit9CisKKy0gKE5TQXJyYXk8TlNTdHJpbmcgKj4gKilhZGRpdGlvbmFsU3VwcG9y
dGVkSW1hZ2VUeXBlcworeworICAgIHJldHVybiBbc2VsZiBfc3RyaW5nQXJyYXlWYWx1ZUZvcktl
eTogV2ViS2l0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXNLZXldOworfQorCiAtICh2b2lk
KXNldEF1dG9zYXZlczooQk9PTClmbGFnCiB7CiAgICAgX3ByaXZhdGUtPmF1dG9zYXZlcyA9IGZs
YWc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNjYz
MDkzNDM5MTYxZDI4NDhlNWQyOWU2ZmQ5NTY4OTE4ZThkODUyZC4uY2M2YjE0NzIyNTQ4NDEyMzk5
YjY2OTY1YjQ4NDc4ZWVkYTY0YzVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQpAQCAtMjA0LDkgKzIwNCwxMSBAQAogI2ltcG9ydCA8V2ViQ29yZS9TZXR0
aW5ncy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvU29ja2V0UHJvdmlkZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU3Ry
aW5nVXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N0eWxlUHJvcGVydGllcy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9UZXh0UmVzb3VyY2VEZWNvZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Ro
cmVhZENoZWNrLmg+CisjaW1wb3J0IDxXZWJDb3JlL1VUSVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1VzZXJBZ2VudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Vc2VyQ29udGVudENvbnRyb2xs
ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVXNlckdlc3R1cmVJbmRpY2F0b3IuaD4KQEAgLTI4NjUs
NiArMjg2Nyw5IEBAIHN0YXRpYyBib29sIG5lZWRzU2VsZlJldGFpbldoaWxlTG9hZGluZ1F1aXJr
KCkKICAgICBzZXR0aW5ncy5zZXRTdGFuZGFyZEZvbnRGYW1pbHkoW3ByZWZlcmVuY2VzIHN0YW5k
YXJkRm9udEZhbWlseV0pOwogICAgIHNldHRpbmdzLnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxs
eShbcHJlZmVyZW5jZXMgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5XSk7CiAgICAgc2V0dGluZ3Mu
c2V0TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcoW3ByZWZlcmVuY2Vz
IGxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlXSk7CisjaWYgUExB
VEZPUk0oTUFDKQorICAgIFdlYkNvcmU6OnNldEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVz
KFdlYkNvcmU6OndlYkNvcmVTdHJpbmdWZWN0b3JGcm9tTlNTdHJpbmdBcnJheShbcHJlZmVyZW5j
ZXMgYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXNdKSk7CisjZW5kaWYKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQogICAgIHNldHRpbmdzLnNldFNob3VsZFByaW50QmFja2dyb3VuZHModHJ1
ZSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDhkNjNmNjI5MmZlYjJjNDU3ZGI2Y2E4NTQzNWUzNzlmNjNiMmIwNWYuLjZjYmI4YTZl
OGU1NzU2MzhlMjEyZDg3NmVkNDUwNDQ1OTU1MGYxOWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxOS0wMi0wMiAg
U2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbQ0ddIEVuYWJs
ZSBzZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyBmb3IgV0sxCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQxOTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0IHNpbWlsYXIgdG8g
dGhlIG9uZSB1bmRlciBXZWJLaXQgQ29jb2EgYnV0IG1ha2UgaXQgY3JlYXRlIGEKKyAgICAgICAg
V2ViVmlldyBpbnN0ZWFkIG9mIGEgV0tXZWJWaWV3LgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvMTAweDEwMC1yZWQudGdhOiBBZGRlZC4KKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9BZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9BZGRpdGlvbmFsU3Vw
cG9ydGVkSW1hZ2VUeXBlcy5tbTogQWRkZWQuCisgICAgICAgICgtW0FkZGl0aW9uYWxTdXBwb3J0
ZWRJbWFnZVR5cGVzVGVzdCB3ZWJWaWV3OmRpZEZpbmlzaExvYWRGb3JGcmFtZTpdKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE5LTAyLTAxICBBYWthc2ggSmFpbiAgPGFh
a2FzaF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbZXdzLWJ1aWxkXSBBZGQgdW5pdCB0ZXN0
IHRvIHZlcmlmeSBidWlsZGVyIGtleXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOThiMDc0
NDk2ZDE5YjZlZjg0MWU5NzQzYzUzODJhZjBiNjUxYThiNy4uYjE5OTc4OGUwMzE3NDU0M2EzODI1
ZGYwOGRkOGViMDAyNWVlY2I2NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2Myw2ICsy
NjMsNyBAQAogCQk1NUE4MTdGQzIxODEwMEUwMDAwNEEzOUEgLyogQWRkaXRpb25hbFN1cHBvcnRl
ZEltYWdlVHlwZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NUE4MTdGQjIxODEwMEUwMDAwNEEzOUEgLyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdl
VHlwZXMubW0gKi87IH07CiAJCTU1QTgxN0ZGMjE4MTAyMUEwMDA0QTM5QSAvKiAxMDB4MTAwLXJl
ZC50Z2EgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTVBODE3RkUyMTgxMDFERjAwMDRBMzlBIC8qIDEwMHgxMDAtcmVkLnRnYSAqLzsgfTsKIAkJ
NTVBODE4MDAyMTgxMDIyMTAwMDRBMzlBIC8qIDQwMHg0MDAtZ3JlZW4ucG5nIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTgxN0ZEMjE4MTAx
REYwMDA0QTM5QSAvKiA0MDB4NDAwLWdyZWVuLnBuZyAqLzsgfTsKKwkJNTVGOUQyRTUyMjA1MDMx
ODAwQTlBQjM4IC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVGOUQyRTQyMjA1MDMxODAwQTlB
QjM4IC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tICovOyB9OwogCQk1NzE0RUNC
OTFDQThCNUIwMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzE0RUNC
ODFDQThCNTg4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwuaHRtbCAqLzsg
fTsKIAkJNTcxNEVDQkIxQ0E4QkZFNDAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFs
VVJMRnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzE0RUNCQTFDQThCRkQxMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3Jp
Z2luYWxVUkxGcmFtZS5odG1sICovOyB9OwogCQk1NzE0RUNCRDFDQThDMjJBMDAwNTFBQzggLyog
RG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxNEVDQkMxQ0E4QzIxODAwMDUxQUM4IC8q
IERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMMi5odG1sICovOyB9OwpAQCAtMzQwLDYgKzM0MSw4
IEBACiAJCTZCMzA2MTA2MjE4QTM3MjkwMEY1QTgwMiAvKiBDbG9zaW5nV2ViVmlldy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCMzA2MTA1MjE4QTM3
MjkwMEY1QTgwMiAvKiBDbG9zaW5nV2ViVmlldy5tbSAqLzsgfTsKIAkJNkI5QUJFMTIyMDg2OTUy
RjAwRDc1REU2IC8qIEhUVFBQYXJzZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZCOUFCRTExMjA4Njk1MkYwMEQ3NURFNiAvKiBIVFRQUGFyc2Vy
cy5jcHAgKi87IH07CiAJCTZCRkQyOTRDMUQ1RTZDMUQwMDhFQzk2OCAvKiBIYXNoQ291bnRlZFNl
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTM4
RDdFNTFDNzUyRDVGMDA0RjE1N0QgLyogSGFzaENvdW50ZWRTZXQuY3BwICovOyB9OworCQk3MjVD
M0VFRjIyMDU3MEJFMDA3QzM2RkMgLyogMTAweDEwMC1yZWQudGdhIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNUMzRUVFMjIwNTcwMDUwMDdD
MzZGQyAvKiAxMDB4MTAwLXJlZC50Z2EgKi87IH07CisJCTcyNUMzRUYzMjIwNThBNUIwMDdDMzZG
QyAvKiBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNUMzRUYyMjIwNTg0QkEwMDdD
MzZGQyAvKiBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5odG1sICovOyB9OwogCQk3NTFC
MDVENjFGOEVBQzQxMDAyOEEwOUUgLyogRGF0YWJhc2VUcmFja2VyVGVzdC5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1MUIwNUQ1MUY4RUFDMUEwMDI4
QTA5RSAvKiBEYXRhYmFzZVRyYWNrZXJUZXN0Lm1tICovOyB9OwogCQk3NTRDRUM4MTFGNjcyMkYy
MDBEMDAzOUEgLyogQXV0b0ZpbGxBdmFpbGFibGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTRDRUM4MDFGNjcyMkRDMDBEMDAzOUEgLyogQXV0b0Zp
bGxBdmFpbGFibGUubW0gKi87IH07CiAJCTc2NzM0OTlEMTkzMEM1QkIwMEU0NERGOSAvKiBTdG9w
TG9hZGluZ0R1cmluZ0RpZEZhaWxQcm92aXNpb25hbExvYWRfYnVuZGxlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2NzM0OTlBMTkzMDE4MkUwMEU0
NERGOSAvKiBTdG9wTG9hZGluZ0R1cmluZ0RpZEZhaWxQcm92aXNpb25hbExvYWRfYnVuZGxlLmNw
cCAqLzsgfTsKQEAgLTk5MywxMCArOTk2LDEyIEBACiAJCQlkc3RQYXRoID0gVGVzdFdlYktpdEFQ
SS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gNzsKIAkJCWZpbGVzID0gKAorCQkJ
CTcyNUMzRUVGMjIwNTcwQkUwMDdDMzZGQyAvKiAxMDB4MTAwLXJlZC50Z2EgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJNTVBODE3RkYyMTgxMDIxQTAwMDRBMzlBIC8qIDEwMHgxMDAtcmVkLnRn
YSBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkxQTlFNTJDOTEzRTY1RUY0MDA2OTE3RjUgLyog
MTgtY2hhcmFjdGVycy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU1QTgxODAwMjE4
MTAyMjEwMDA0QTM5QSAvKiA0MDB4NDAwLWdyZWVuLnBuZyBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQkzNzkwMjhCOTE0RkFDMjRDMDA3RTZCNDMgLyogYWNjZXB0c0ZpcnN0TW91c2UuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk3MjVDM0VGMzIyMDU4QTVCMDA3QzM2RkMgLyogQWRk
aXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJ
CQkxQzJCODE4NzFDODkyNUEwMDBBNTUyOUYgLyogQWhlbS50dGYgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJMUE2MzQ3OUYxODNENzJBNDAwNUIxNzA3IC8qIGFsbC1jb250ZW50LWluLW9uZS1p
ZnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDMjVDQ0EwRDFFNTE0MTg0MDAy
NkNCOEEgLyogQWxsQWhlbS5zdmcgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xNjM2LDYgKzE2
NDEsNyBAQAogCQk1NUE4MTdGQjIxODEwMEUwMDAwNEEzOUEgLyogQWRkaXRpb25hbFN1cHBvcnRl
ZEltYWdlVHlwZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBZGRpdGlvbmFsU3VwcG9ydGVk
SW1hZ2VUeXBlcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVBODE3RkQyMTgx
MDFERjAwMDRBMzlBIC8qIDQwMHg0MDAtZ3JlZW4ucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gIjQwMHg0MDAtZ3Jl
ZW4ucG5nIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVBODE3RkUyMTgxMDFERjAw
MDRBMzlBIC8qIDEwMHgxMDAtcmVkLnRnYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiMTAweDEwMC1yZWQudGdhIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTVGOUQyRTQyMjA1MDMxODAwQTlBQjM4IC8qIEFkZGl0
aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBZGRpdGlv
bmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTcxNEVDQjgxQ0E4QjU4ODAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMLmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVS
TC5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzE0RUNCQTFDQThCRkQxMDAw
NTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzE0RUNCQzFDQThDMjE4MDAwNTFBQzggLyog
RG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTDIuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE3MTMsNiArMTcxOSw4IEBACiAJCTZCMEEwN0Y2MjFGQTlDMkIwMEQ1NzM5
MSAvKiBBZENsaWNrQXR0cmlidXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWRDbGlja0F0
dHJpYnV0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkIzMDYxMDUyMThB
MzcyOTAwRjVBODAyIC8qIENsb3NpbmdXZWJWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
Q2xvc2luZ1dlYlZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCOUFCRTEx
MjA4Njk1MkYwMEQ3NURFNiAvKiBIVFRQUGFyc2Vycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
VFRQUGFyc2Vycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyNUMzRUVFMjIw
NTcwMDUwMDdDMzZGQyAvKiAxMDB4MTAwLXJlZC50Z2EgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gIjEwMHgxMDAtcmVkLnRnYSI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyNUMzRUYyMjIwNTg0QkEwMDdDMzZGQyAv
KiBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1s
OyBwYXRoID0gQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMuaHRtbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzUxQjA1RDUxRjhFQUMxQTAwMjhBMDlFIC8qIERhdGFiYXNlVHJh
Y2tlclRlc3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEYXRhYmFzZVRyYWNrZXJUZXN0Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTRDRUM4MDFGNjcyMkRDMDBEMDAzOUEg
LyogQXV0b0ZpbGxBdmFpbGFibGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdXRvRmlsbEF2
YWlsYWJsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU2MDkxNzcxOTI1OUM1
OTAwOUVGMDZFIC8qIE1lbW9yeUNhY2hlQWRkSW1hZ2VUb0NhY2hlSU9TLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVtb3J5Q2FjaGVBZGRJbWFnZVRvQ2FjaGVJ
T1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTEzLDcgKzI1MjEsNiBAQAog
CQkJCUExMjU0NzhEMURCMThCOTQwMDM1ODU2NCAvKiBMb2FkRGF0YVdpdGhOaWxNSU1FVHlwZS5t
bSAqLywKIAkJCQk0NjEyQzJCODIxMEE2QUJGMDBCNzg4QTYgLyogTG9hZEZpbGVUaGVuUmVsb2Fk
Lm1tICovLAogCQkJCTU3OTAxRkFDMUNBRjEyQzIwMEVENjRGOSAvKiBMb2FkSW52YWxpZFVSTFJl
cXVlc3QubW0gKi8sCi0JCQkJNTc3NEFBNjcyMUZCQkY3ODAwQUYyQTFCIC8qIFRlc3RMb2FkT3B0
aW1pemVyLm1tICovLAogCQkJCTUxRTZBODkyMUQyRjFCRUMwMEMwMDRCNiAvKiBMb2NhbFN0b3Jh
Z2VDbGVhci5tbSAqLywKIAkJCQlDQTM4NDU5NTIwQUUwMTJFMDA5OTBEM0IgLyogTG9jYWxTdG9y
YWdlRGF0YWJhc2VUcmFja2VyLm1tICovLAogCQkJCTQ2QzUxOUQ4MUQzNTVBNzMwMERBQTUxQSAv
KiBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5tbSAqLywKQEAgLTI1NzQsNiArMjU4MSw3IEBACiAJ
CQkJNTE1QkUxNzAxRDQyOEJEMTAwREQ3QzY4IC8qIFN0b3JlQmxvYlRoZW5EZWxldGUubW0gKi8s
CiAJCQkJMUM3MzRCNTIyMDc4OEM0ODAwRjQzMEVBIC8qIFN5c3RlbUNvbG9ycy5tbSAqLywKIAkJ
CQkyRDcwMDU5NTIxRURBMEM2MDAzNDYzQ0IgLyogVGFiT3V0T2ZXZWJWaWV3Lm1tICovLAorCQkJ
CTU3NzRBQTY3MjFGQkJGNzgwMEFGMkExQiAvKiBUZXN0TG9hZE9wdGltaXplci5tbSAqLywKIAkJ
CQlGNENENzRDNzIwRkRCNDk2MDBERTM3OTQgLyogVGVzdFVSTFNjaGVtZUhhbmRsZXIuaCAqLywK
IAkJCQlGNENENzRDODIwRkRCNDk2MDBERTM3OTQgLyogVGVzdFVSTFNjaGVtZUhhbmRsZXIubW0g
Ki8sCiAJCQkJNUNCNDBCNEQxRjRCOThCRTAwN0RDN0I5IC8qIFVJRGVsZWdhdGUubW0gKi8sCkBA
IC0zNDEwLDYgKzM0MTgsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQzA3RTZDQjAxM0ZENzM3
QzAwMzhCMjJCIC8qIFJlc291cmNlcyAqLywKIAkJCQkzNzkwMjhCNTE0RkFCRDkyMDA3RTZCNDMg
LyogQWNjZXB0c0ZpcnN0TW91c2UubW0gKi8sCisJCQkJNTVGOUQyRTQyMjA1MDMxODAwQTlBQjM4
IC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tICovLAogCQkJCUI1NUYxMTlGMTUx
NjgzNEYwMDkxNTkxNiAvKiBBdHRyaWJ1dGVkU3RyaW5nLm1tICovLAogCQkJCTAwQ0Q5RjYyMTVC
RTMxMkMwMDJEQTJDRSAvKiBCYWNrRm9yd2FyZExpc3QubW0gKi8sCiAJCQkJMUM3RkVCMUYyMDdD
MEYyRDAwRDIzMjc4IC8qIEJhY2tncm91bmRDb2xvci5tbSAqLywKQEAgLTM0ODQsNyArMzQ5Myw5
IEBACiAJCUMwN0U2Q0IwMTNGRDczN0MwMDM4QjIyQiAvKiBSZXNvdXJjZXMgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTcyNUMzRUVFMjIwNTcwMDUwMDdD
MzZGQyAvKiAxMDB4MTAwLXJlZC50Z2EgKi8sCiAJCQkJMzc5MDI4QjgxNEZBQkU0OTAwN0U2QjQz
IC8qIGFjY2VwdHNGaXJzdE1vdXNlLmh0bWwgKi8sCisJCQkJNzI1QzNFRjIyMjA1ODRCQTAwN0Mz
NkZDIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLmh0bWwgKi8sCiAJCQkJQjU1RjEx
QjAxNTE3QTJDNDAwOTE1OTE2IC8qIGF0dHJpYnV0ZWRTdHJpbmdDdXN0b21Gb250Lmh0bWwgKi8s
CiAJCQkJN0M5RUQ5OEExN0ExOUQwNjAwRTREQzMzIC8qIGF0dHJpYnV0ZWRTdHJpbmdTdHJpa2V0
aHJvdWdoLmh0bWwgKi8sCiAJCQkJMjZERjVBNjExNUEyQTIyQjAwMzY4OUMyIC8qIENhbmNlbExv
YWRGcm9tUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCAqLywKQEAgLTM5MDQsNiArMzkxNSw3IEBA
CiAJCQkJNkIwQTA3RjcyMUZBOUMyQjAwRDU3MzkxIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkzN0U3REQ2NDFFQTA2RkYyMDA5QjM5NkQgLyogQWRkaXRpb25h
bFJlYWRBY2Nlc3NBbGxvd2VkVVJMcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU1QTgxN0ZDMjE4
MTAwRTAwMDA0QTM5QSAvKiBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCTU1RjlEMkU1MjIwNTAzMTgwMEE5QUIzOCAvKiBBZGRpdGlvbmFsU3VwcG9y
dGVkSW1hZ2VUeXBlcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdBOTA5QTdEMUQ4Nzc0ODAwMDdF
MTBGOCAvKiBBZmZpbmVUcmFuc2Zvcm0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFERjc0MzIx
QzQxQjY1ODAwQTJGNEQwIC8qIEFsd2F5c1JldmFsaWRhdGVkVVJMU2NoZW1lcy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTJERTcxQUZFMUQ0OUMwQkQwMDkwNDA5NCAvKiBBbmltYXRlZFJlc2l6ZS5t
bSBpbiBTb3VyY2VzICovLApAQCAtNDI0MSw2ICs0MjUzLDcgQEAKIAkJCQlGNEY1QkI1MjIxNjY3
QkFBMDAyRDA2QjkgLyogVGVzdEZvbnRPcHRpb25zLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ1
RTE1NzYyMTEyQ0U2MjAwMzA3RTgyIC8qIFRlc3RJbnB1dERlbGVnYXRlLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRjQ1RDM4OTEyMTVBN0I0QjAwMkEyOTc5IC8qIFRlc3RJbnNwZWN0b3JCYXIubW0g
aW4gU291cmNlcyAqLywKKwkJCQk1Nzc0QUE2ODIxRkJCRjc4MDBBRjJBMUIgLyogVGVzdExvYWRP
cHRpbWl6ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDFDMDRBNzFENzYyOThCMDAwQTY4MTYg
LyogVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExNEZDNTkw
MUI4QUUzNkYwMEQxMDdFQiAvKiBUZXN0UHJvdG9jb2wubW0gaW4gU291cmNlcyAqLywKIAkJCQk3
Q0NFN0VBRTFBNDExQTM0MDA0NDdDNEMgLyogVGVzdHNDb250cm9sbGVyLmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtNDI1OSw3ICs0MjcyLDYgQEAKIAkJCQk3Q0NFN0YyNzFBNDExQUY2MDA0NDdDNEMg
LyogVXNlckNvbnRlbnRDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMkQx
QTQxMUIxMDAwNDQ3QzRDIC8qIFVzZXJDb250ZW50VGVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTdDODgyRTBBMUM4MEM3NjQwMDZCRjczMSAvKiBVc2VyQ29udGVudFdvcmxkLm1tIGluIFNvdXJj
ZXMgKi8sCi0JCQkJNTc3NEFBNjgyMUZCQkY3ODAwQUYyQTFCIC8qIFRlc3RMb2FkT3B0aW1pemVy
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDQjk5MjExRDNCNDFGNjAwMzkyMkY2IC8qIFVzZXJJ
bml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQk3
Q0NFN0YxNzFBNDExQUU2MDA0NDdDNEMgLyogVXNlck1lZGlhLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTA3OTlDMzQ5MUVCQTJEN0IwMDNCNzUzMiAvKiBVc2VyTWVkaWFEaXNhYmxlZC5tbSBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvMTAw
eDEwMC1yZWQudGdhIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvMTAweDEwMC1yZWQu
dGdhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA2OTU4YmEwYzQ0MTA2MDU4ODg0YTNmMjRhMjNlZWQxODI4YjE3NGIK
R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDUxOApjY21aUXo7OWBKKjZvd1FBMSZ6bEg0RkNVKzUr
Zj1NMEN7bUM0Z2RmRQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMuaHRt
bCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0FkZGl0aW9uYWxTdXBwb3J0ZWRJbWFn
ZVR5cGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWZlMGVkZTljMzcxN2QzMDcxZTJjNTEwYzExZmY0OWRh
ZWI0NTRmMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0FkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorICAgIDxpbWcgc3JjPSIxMDB4MTAwLXJlZC50
Z2EiIG9uZXJyb3I9ImltZ0Vycm9yKHRoaXMpOyI+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVu
Y3Rpb24gaW1nRXJyb3IoaW1hZ2UpIHsKKyAgICAgICAgICAgIGltYWdlLnBhcmVudE5vZGUuIHJl
bW92ZUNoaWxkKGltYWdlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9Cisg
ICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9BZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0FkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZjMDg0MmE5YWEwZGFhZjdkZWUzOGY3YTkwM2E1ODFkMTQwMzlmZWUKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9BZGRpdGlvbmFs
U3VwcG9ydGVkSW1hZ2VUeXBlcy5tbQpAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9y
dCAiUGxhdGZvcm1XZWJWaWV3LmgiCisKKyNpbXBvcnQgPFdlYktpdC9ET00uaD4KKyNpbXBvcnQg
PFdlYktpdC9XZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCisj
aWYgV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oQ09DT0EpCisKK0BpbnRlcmZhY2UgQWRkaXRp
b25hbFN1cHBvcnRlZEltYWdlVHlwZXNUZXN0IDogTlNPYmplY3QgPFdlYkZyYW1lTG9hZERlbGVn
YXRlPiB7Cit9CitAZW5kCisKK3N0YXRpYyBib29sIGRpZEZpbmlzaExvYWQ7CisKK0BpbXBsZW1l
bnRhdGlvbiBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc1Rlc3QKKworLSAodm9pZCl3ZWJW
aWV3OihXZWJWaWV3ICopc2VuZGVyIGRpZEZpbmlzaExvYWRGb3JGcmFtZTooV2ViRnJhbWUgKilm
cmFtZQoreworICAgIGRpZEZpbmlzaExvYWQgPSB0cnVlOworfQorQGVuZAorCituYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSSB7CisKK1RFU1QoV2ViS2l0TGVnYWN5LCBBZGRpdGlvbmFsU3VwcG9ydGVk
SW1hZ2VUeXBlcykKK3sKKyAgICBXZWJQcmVmZXJlbmNlcyAqcHJlZmVyZW5jZXMgPSBbW1dlYlBy
ZWZlcmVuY2VzIGFsbG9jXSBpbml0V2l0aElkZW50aWZpZXI6bmlsXTsKKyAgICBbcHJlZmVyZW5j
ZXMgc2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXM6QFtAImNvbS50cnVldmlzaW9uLnRn
YS1pbWFnZSJdXTsKKworICAgIFJldGFpblB0cjxXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhb
W1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAxMjAsIDIwMCkg
ZnJhbWVOYW1lOm5pbCBncm91cE5hbWU6bmlsXSk7CisgICAgW3dlYlZpZXcgc2V0UHJlZmVyZW5j
ZXM6cHJlZmVyZW5jZXNdOworCisgICAgUmV0YWluUHRyPEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFn
ZVR5cGVzVGVzdD4gdGVzdENvbnRyb2xsZXIgPSBhZG9wdE5TKFtBZGRpdGlvbmFsU3VwcG9ydGVk
SW1hZ2VUeXBlc1Rlc3QgbmV3XSk7CisgICAgd2ViVmlldy5nZXQoKS5mcmFtZUxvYWREZWxlZ2F0
ZSA9IHRlc3RDb250cm9sbGVyLmdldCgpOworCisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJM
ID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkFkZGl0aW9uYWxTdXBw
b3J0ZWRJbWFnZVR5cGVzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKyAgICBbW3dlYlZpZXcuZ2V0KCkgbWFpbkZyYW1lXSBs
b2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsK
KworICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgZGlkRmluaXNoTG9hZCA9IGZh
bHNlOworCisgICAgRE9NRG9jdW1lbnQgKmRvY3VtZW50ID0gd2ViVmlldy5nZXQoKS5tYWluRnJh
bWVEb2N1bWVudDsKKyAgICBET01FbGVtZW50ICpkb2N1bWVudEVsZW1lbnQgPSBbZG9jdW1lbnQg
ZG9jdW1lbnRFbGVtZW50XTsKKworICAgIERPTUhUTUxJbWFnZUVsZW1lbnQgKmltYWdlID0gKERP
TUhUTUxJbWFnZUVsZW1lbnQgKilbZG9jdW1lbnRFbGVtZW50IHF1ZXJ5U2VsZWN0b3I6QCJpbWci
XTsKKyAgICBFWFBFQ1RfRVEoW2ltYWdlIHdpZHRoXSwgMTAwKTsKK30KKworfQorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361079</attachid>
            <date>2019-02-04 11:39:54 -0800</date>
            <delta_ts>2019-02-04 12:56:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194190-20190204113953.patch</filename>
            <type>text/plain</type>
            <size>28211</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM0NDI0ODJkYjMwYjRl
NTIxNGE2ZDk2ZTVlOTYyY2E4NmM3NjEwMy4uOTZlMzQzMDUyMDBlMDRmZWE0YThlY2NhZWMyNjY1
ZTc0MDkyZGMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTAyLTA0ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtDR10gRW5hYmxlIHNl
dEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIGZvciBXSzEKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDE5MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGZ1bmN0aW9uIHdlYkNvcmVT
dHJpbmdWZWN0b3JGcm9tTlNTdHJpbmdBcnJheSBmcm9tIFdlYktpdCB0bworICAgICAgICBXZWJD
b3JlIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IGJvdGggV2ViS2l0IGFuZCBXZWJLaXRMZWdhY3kuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYkNvcmU6OndlYkNvcmVT
dHJpbmdWZWN0b3JGcm9tTlNTdHJpbmdBcnJheSk6CisKIDIwMTktMDItMDEgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRoZSB1bnVzZWQg
bGF5ZXJGb3JTY3JvbGxpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5NzM5NzExMWQ0ZTMxZjIyNjdhYzJjOThk
M2E1NTM5Mzk1ZjAwOWY0Li43MmJhZTIzZTIwYjg3MGJjY2FkYTNkZjQzYjA2ZWIzOThlYTY4YWM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTAyLTA0ICBTYWlkIEFib3UtSGFsbGF3
YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtDR10gRW5hYmxlIHNldEFkZGl0aW9uYWxT
dXBwb3J0ZWRJbWFnZVR5cGVzIGZvciBXSzEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5NDE5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGZ1bmN0aW9uIHdlYkNvcmVTdHJpbmdWZWN0b3JG
cm9tTlNTdHJpbmdBcnJheSBmcm9tIFdlYktpdCB0bworICAgICAgICBXZWJDb3JlIHNvIGl0IGNh
biBiZSB1c2VkIGJ5IGJvdGggV2ViS2l0IGFuZCBXZWJLaXRMZWdhY3kuCisKKyAgICAgICAgKiBQ
bGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLmg6CisgICAgICAgICogUGxhdGZvcm0vbWFjL1N0
cmluZ1V0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktpdDo6d2ViQ29yZVN0cmluZ1ZlY3RvckZy
b21OU1N0cmluZ0FycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9pbml0aWFsaXplV2l0aENvbmZp
Z3VyYXRpb246XSk6CisKIDIwMTktMDItMDEgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxl
LmNvbT4KIAogICAgICAgICBNb3ZlIHNvZnQtbGlua2luZyBvZiBUZWxlcGhvbnlVdGlsaXRpZXMu
ZnJhbWV3b3JrIG91dCBvZiBUVUNhbGxTUEkuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IGEyMjE2NGE5YzdmY2IyYWIzZmVmMGUzYjIwODE0YThkYjI4NTkwY2UuLjIzNjJjZjJkMmMz
ODk1YjY4MjA1MTZhYzgzODc5MmVkMGI2Y2U2N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNyBAQAorMjAxOS0wMi0wNCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlk
QGFwcGxlLmNvbT4KKworICAgICAgICBbQ0ddIEVuYWJsZSBzZXRBZGRpdGlvbmFsU3VwcG9ydGVk
SW1hZ2VUeXBlcyBmb3IgV0sxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTQxOTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAxLiBEZWZpbmUgdGhlIHByZWZlcmVuY2VzIGtleSBBZGRpdGlvbmFsU3VwcG9y
dGVkSW1hZ2VUeXBlcy4KKyAgICAgICAgMi4gQWRkIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5
cGVzIGFzIGEgcHJpdmF0ZSBwcmVmZXJlbmNlIHByb3BlcnR5LgorICAgICAgICAzLiBEZWZpbmUg
dGhlIHNldHRlciBhbmQgdGhlIGdldHRlciBvZiB0aGUgcHJvcGVydHkuCisgICAgICAgIDQuIEFk
ZCBmdW5jdGlvbiB0byBjb252ZXJ0IGZyb20gYW4gaWQgdG8gYW4gYXJyYXkgb2Ygc3RyaW5ncy4K
KyAgICAgICAgNS4gQ2FsbCBXZWJDb3JlOjpzZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBl
cyB3aGVuIHByZWZlcmVuY2VzIGNoYW5nZS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVy
ZW5jZUtleXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToK
KyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAoLVtXZWJQ
cmVmZXJlbmNlcyBfc3RyaW5nQXJyYXlWYWx1ZUZvcktleTpdKToKKyAgICAgICAgKC1bV2ViUHJl
ZmVyZW5jZXMgX3NldFN0cmluZ0FycmF5VmFsdWVGb3JLZXk6Zm9yS2V5Ol0pOgorICAgICAgICAo
LVtXZWJQcmVmZXJlbmNlcyBzZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlczpdKToKKyAg
ICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXNdKToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAqIFdl
YlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2Vk
Ol0pOgorCiAyMDE5LTAxLTMxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2ZXJ0IHIyMzg4MTkgd2hpY2ggaXMgdW5uZWVkZWQgYW5kIGNh
dXNlZCBhIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU3RyaW5nVXRpbGl0aWVzLmgKaW5kZXggMDAxMWJmYzU0OTA2MTU1OGVhNmVlNjVmMTlh
ZWZkYWEwY2VkOTlkNS4uYWJmMmJmMTMwOGFmZGNlZGVkYjUzYTUxMTkxY2VmYzQxMWNlYmJhNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMuaApAQCAt
MjksNSArMjksMTEgQEAKICNpbXBvcnQgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKKwogV0VCQ09SRV9FWFBPUlQgYm9vbCBzdHJpbmdNYXRjaGVzV2lsZGNhcmRTdHJpbmco
Y29uc3QgU3RyaW5nJiBzdHJpbmdUb0JlTWF0Y2hlZCwgY29uc3QgU3RyaW5nJiB3aWxkY2FyZFN0
cmluZyk7CisKKyNpZmRlZiBfX09CSkNfXworV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFN0cmluZz4g
d2ViQ29yZVN0cmluZ1ZlY3RvckZyb21OU1N0cmluZ0FycmF5KE5TQXJyYXk8TlNTdHJpbmcgKj4g
Kik7CisjZW5kaWYgLy8gZGVmaW5lZChfX09CSkNfXykKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0KaW5kZXggN2NkMWJkODBhZTllMzNlNzU2
ZjY1OTEyMjQwZjdlZDZjYzMzYzViNS4uZjFmNTZiMzA4N2QwZTA5MTFmMTgwZTU1MzIwNjZmYjBk
YTFlNmE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0
aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0
aWVzLm1tCkBAIC01OSw0ICs1OSwxNSBAQCBib29sIHN0cmluZ01hdGNoZXNXaWxkY2FyZFN0cmlu
Zyhjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgU3RyaW5nJiB3aWxkY2FyZFN0cgogICAgIHJl
dHVybiBKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uKHdpbGRjYXJkUmVnZXhQYXR0ZXJuU3Ry
aW5nKHdpbGRjYXJkU3RyaW5nKSwgSlNDOjpZYXJyOjpUZXh0Q2FzZUluc2Vuc2l0aXZlKS5tYXRj
aChzdHJpbmcpICE9IC0xOwogfQogCitWZWN0b3I8U3RyaW5nPiB3ZWJDb3JlU3RyaW5nVmVjdG9y
RnJvbU5TU3RyaW5nQXJyYXkoTlNBcnJheTxOU1N0cmluZyAqPiAqbnNTdHJpbmdBcnJheSkKK3sK
KyAgICBWZWN0b3I8U3RyaW5nPiBzdHJpbmdWZWN0b3I7CisgICAgc3RyaW5nVmVjdG9yLnJlc2Vy
dmVJbml0aWFsQ2FwYWNpdHkoW25zU3RyaW5nQXJyYXkgY291bnRdKTsKKworICAgIGZvciAoTlNT
dHJpbmcgKm5zU3RyaW5nIGluIG5zU3RyaW5nQXJyYXkpCisgICAgICAgIHN0cmluZ1ZlY3Rvci51
bmNoZWNrZWRBcHBlbmQobnNTdHJpbmcpOworCisgICAgcmV0dXJuIHN0cmluZ1ZlY3RvcjsKK30K
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0
aWVzLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMuaAppbmRl
eCA0MjU3YzhjZmE5ZTRhYmExNDJhYWRlODE5MWU5Zjk5ZmIyOWQ4MjM5Li4yOWE3NmNkNzUzOGM1
ZGZjOGUxYThkMjg5ZWNjOWU4YjZjODA1ZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L21hYy9TdHJpbmdVdGlsaXRpZXMuaApAQCAtMzcsOCArMzcsNiBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIE5TU3RyaW5nICpuc1N0cmluZ0Zyb21XZWJDb3JlU3RyaW5nKGNvbnN0IFN0cmluZyYpOwog
TlNTdHJpbmcgKmZvcm1hdHRlZFBob25lTnVtYmVyU3RyaW5nKE5TU3RyaW5nICpvcmlnaW5hbFBo
b25lTnVtYmVyKTsKIAotVmVjdG9yPFN0cmluZz4gd2ViQ29yZVN0cmluZ1ZlY3RvckZyb21OU1N0
cmluZ0FycmF5KE5TQXJyYXk8TlNTdHJpbmcgKj4gKik7Ci0KICNlbmRpZiAvLyBkZWZpbmVkKF9f
T0JKQ19fKQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL21hYy9TdHJp
bmdVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRp
ZXMubW0KaW5kZXggYmNkMmZiNjU1YTUyNGNjMDQxYjkxYTllN2ZjMjc5M2FkOGY3N2VmOC4uZWNi
Yjc5Nzc3NmMyYjhmOTcxNjVjMzM5ZWYwNGZmYmY0OTRhNjhkOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQpAQCAtODIsMTUgKzgyLDQgQEAgTlNT
dHJpbmcgKmZvcm1hdHRlZFBob25lTnVtYmVyU3RyaW5nKE5TU3RyaW5nICopCiAKICNlbmRpZiAv
LyBFTkFCTEUoVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICYmIFBMQVRGT1JNKE1BQykKIAot
VmVjdG9yPFN0cmluZz4gd2ViQ29yZVN0cmluZ1ZlY3RvckZyb21OU1N0cmluZ0FycmF5KE5TQXJy
YXk8TlNTdHJpbmcgKj4gKm5zU3RyaW5nQXJyYXkpCi17Ci0gICAgVmVjdG9yPFN0cmluZz4gc3Ry
aW5nVmVjdG9yOwotICAgIHN0cmluZ1ZlY3Rvci5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KFtuc1N0
cmluZ0FycmF5IGNvdW50XSk7Ci0KLSAgICBmb3IgKE5TU3RyaW5nICpuc1N0cmluZyBpbiBuc1N0
cmluZ0FycmF5KQotICAgICAgICBzdHJpbmdWZWN0b3IudW5jaGVja2VkQXBwZW5kKG5zU3RyaW5n
KTsKLQotICAgIHJldHVybiBzdHJpbmdWZWN0b3I7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDlhNzNhMzZjNGZlZjk3N2U4
OWFjYzI1ZGZmY2QzYTFjNzQxZDhhYWQuLjc1N2M5NThiZjBhOGU1YmQ4ZjMzNDk2MzZhYWI0NGQ2
N2ZiZmQ0ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQpAQCAtNTEsNyArNTEsNiBAQAogI2ltcG9ydCAiUmVtb3RlT2JqZWN0UmVnaXN0cnku
aCIKICNpbXBvcnQgIlJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaCIKICNpbXBvcnQgIlNh
ZmVCcm93c2luZ1dhcm5pbmcuaCIKLSNpbXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgogI2ltcG9y
dCAiVUlEZWxlZ2F0ZS5oIgogI2ltcG9ydCAiVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaCIKICNp
bXBvcnQgIlZlcnNpb25DaGVja3MuaCIKQEAgLTExMiw2ICsxMTEsNyBAQAogI2ltcG9ydCA8V2Vi
Q29yZS9TY2hlbWVSZWdpc3RyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU3RyaW5nVXRp
bGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ZhbGlkYXRpb25CdWJibGUuaD4KICNpbXBvcnQg
PFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV3JpdGluZ01v
ZGUuaD4KQEAgLTU4Myw3ICs1ODMsNyBAQCBzdGF0aWMgdm9pZCB2YWxpZGF0ZShXS1dlYlZpZXdD
b25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uKQogICAgICAgICAgICAgcGFnZUNvbmZpZ3VyYXRp
b24tPnNldFBhZ2VHcm91cChXZWJLaXQ6OldlYlBhZ2VHcm91cDo6Y3JlYXRlKGNvbmZpZ3VyYXRp
b24uX2dyb3VwSWRlbnRpZmllcikucHRyKCkpOwogICAgIH0KIAotICAgIHBhZ2VDb25maWd1cmF0
aW9uLT5zZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyhXZWJLaXQ6OndlYkNvcmVTdHJp
bmdWZWN0b3JGcm9tTlNTdHJpbmdBcnJheShbX2NvbmZpZ3VyYXRpb24gX2FkZGl0aW9uYWxTdXBw
b3J0ZWRJbWFnZVR5cGVzXSkpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRBZGRpdGlvbmFs
U3VwcG9ydGVkSW1hZ2VUeXBlcyhXZWJDb3JlOjp3ZWJDb3JlU3RyaW5nVmVjdG9yRnJvbU5TU3Ry
aW5nQXJyYXkoW19jb25maWd1cmF0aW9uIF9hZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc10p
KTsKIAogICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlVmFsdWVzKCkuc2V0KFdlYktp
dDo6V2ViUHJlZmVyZW5jZXNLZXk6OnN1cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZ0tleSgp
LCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmU6OlZhbHVlKCEhW19jb25maWd1cmF0aW9uIHN1
cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZ10pKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5k
ZXggNDlkMzQyZmYyZTI3NDA0YWU4YzI2OWUyYjVhOTYwYTI2ZGYzYjk4MC4uZGE0ZDYyN2NlODIz
MzE2NTQ3MTcxNDA2YzM3NGNiOWY5YTA3ODQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC02
Niw2ICs2Niw3IEBACiAjZGVmaW5lIFdlYktpdEFsbG93QW5pbWF0ZWRJbWFnZXNQcmVmZXJlbmNl
S2V5IEAiV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlc1ByZWZlcmVuY2VLZXkiCiAjZGVmaW5lIFdl
YktpdEFsbG93QW5pbWF0ZWRJbWFnZUxvb3BpbmdQcmVmZXJlbmNlS2V5IEAiV2ViS2l0QWxsb3dB
bmltYXRlZEltYWdlTG9vcGluZ1ByZWZlcmVuY2VLZXkiCiAjZGVmaW5lIFdlYktpdERpc3BsYXlJ
bWFnZXNLZXkgQCJXZWJLaXREaXNwbGF5SW1hZ2VzS2V5IgorI2RlZmluZSBXZWJLaXRBZGRpdGlv
bmFsU3VwcG9ydGVkSW1hZ2VUeXBlc0tleSAgQCJXZWJLaXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1h
Z2VUeXBlc0tleSIKICNkZWZpbmUgV2ViS2l0TG9hZFNpdGVJY29uc0tleSBAIldlYktpdExvYWRT
aXRlSWNvbnNLZXkiCiAjZGVmaW5lIFdlYktpdEJhY2tGb3J3YXJkQ2FjaGVFeHBpcmF0aW9uSW50
ZXJ2YWxLZXkgQCJXZWJLaXRCYWNrRm9yd2FyZENhY2hlRXhwaXJhdGlvbkludGVydmFsS2V5Igog
I2lmICFUQVJHRVRfT1NfSVBIT05FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCBlODAyYzBhNDhjZGFjZjhmYzE5M2RmNjZmNzE3
Y2EwMzFjMmU2NjY0Li5kNjg3MDkzMGRlMTIzZTFhM2UzMjBlYzQ5MjFiMzVmYmUyNDEyN2MwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
bW0KQEAgLTQ1Niw2ICs0NTYsNyBAQCBwdWJsaWM6CiAgICAgICAgIFtOU051bWJlciBudW1iZXJX
aXRoQm9vbDpZRVNdLCAgV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlc1ByZWZlcmVuY2VLZXksCiAg
ICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAgV2ViS2l0QWxsb3dBbmltYXRl
ZEltYWdlTG9vcGluZ1ByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRo
Qm9vbDpZRVNdLCAgV2ViS2l0RGlzcGxheUltYWdlc0tleSwKKyAgICAgICAgQFtdLCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXZWJLaXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc0tl
eSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRMb2FkU2l0
ZUljb25zS2V5LAogICAgICAgICBAIjE4MDAiLCAgICAgICAgICAgICAgICAgICAgICAgIFdlYktp
dEJhY2tGb3J3YXJkQ2FjaGVFeHBpcmF0aW9uSW50ZXJ2YWxLZXksCiAjaWYgIVBMQVRGT1JNKElP
U19GQU1JTFkpCkBAIC03NTcsNiArNzU4LDI3IEBAIHB1YmxpYzoKICAgICBbc2VsZiBfcG9zdFBy
ZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbl07CiB9CiAKKy0gKE5TQXJyYXk8TlNTdHJpbmcg
Kj4gKilfc3RyaW5nQXJyYXlWYWx1ZUZvcktleTooTlNTdHJpbmcgKilrZXkKK3sKKyAgICBpZCBz
ID0gW3NlbGYgX3ZhbHVlRm9yS2V5OmtleV07CisgICAgcmV0dXJuIFtzIGlzS2luZE9mQ2xhc3M6
W05TQXJyYXk8TlNTdHJpbmcgKj4gY2xhc3NdXSA/IChOU0FycmF5PE5TU3RyaW5nICo+ICopcyA6
IG5pbDsKK30KKworLSAodm9pZClfc2V0U3RyaW5nQXJyYXlWYWx1ZUZvcktleTooTlNBcnJheTxO
U1N0cmluZyAqPiAqKXZhbHVlIGZvcktleTooTlNTdHJpbmcgKilrZXkKK3sKKyAgICBOU1N0cmlu
ZyAqX2tleSA9IEtFWShrZXkpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgZGlzcGF0
Y2hfYmFycmllcl9zeW5jKF9wcml2YXRlLT5yZWFkV3JpdGVRdWV1ZSwgXnsKKyNlbmRpZgorICAg
ICAgICBbX3ByaXZhdGUtPnZhbHVlcy5nZXQoKSBzZXRPYmplY3Q6dmFsdWUgZm9yS2V5Ol9rZXld
OworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgfSk7CisjZW5kaWYKKyAgICBpZiAoX3By
aXZhdGUtPmF1dG9zYXZlcykKKyAgICAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJE
ZWZhdWx0c10gc2V0T2JqZWN0OnZhbHVlIGZvcktleTpfa2V5XTsKKyAgICBbc2VsZiBfcG9zdFBy
ZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbl07Cit9CisKIC0gKGludClfaW50ZWdlclZhbHVl
Rm9yS2V5OihOU1N0cmluZyAqKWtleQogewogICAgIGlkIG8gPSBbc2VsZiBfdmFsdWVGb3JLZXk6
a2V5XTsKQEAgLTExNTksNiArMTE4MSwxNiBAQCBwdWJsaWM6CiAgICAgcmV0dXJuIFtzZWxmIF9i
b29sVmFsdWVGb3JLZXk6IFdlYktpdERpc3BsYXlJbWFnZXNLZXldOwogfQogCistICh2b2lkKXNl
dEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzOiAoTlNBcnJheTxOU1N0cmluZyAqPiAqKWlt
YWdlVHlwZXMKK3sKKyAgICBbc2VsZiBfc2V0U3RyaW5nQXJyYXlWYWx1ZUZvcktleTppbWFnZVR5
cGVzIGZvcktleTpXZWJLaXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc0tleV07Cit9CisK
Ky0gKE5TQXJyYXk8TlNTdHJpbmcgKj4gKilhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcwor
eworICAgIHJldHVybiBbc2VsZiBfc3RyaW5nQXJyYXlWYWx1ZUZvcktleTpXZWJLaXRBZGRpdGlv
bmFsU3VwcG9ydGVkSW1hZ2VUeXBlc0tleV07Cit9CisKIC0gKHZvaWQpc2V0QXV0b3NhdmVzOihC
T09MKWZsYWcKIHsKICAgICBfcHJpdmF0ZS0+YXV0b3NhdmVzID0gZmxhZzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5o
CmluZGV4IDg4MjBkYjI3MDNmN2FiODU5NzI2ZTVhYzcxYWQxZDU5NWYzOGMyODMuLjI2YjA2MmMx
ZDkxNmQyZjY2MGMzYTdmYThmNjM4NDJiMmMxOGUzNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNjI2
LDQgKzYyNiw2IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hh
bmdlZEludGVybmFsTm90aWZpY2F0aW9uIFdFQktJVF9ERVBSCiAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljKSBOU1N0cmluZyAqbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7
CiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZXRhaW4pIE5TQXJyYXk8TlNTdHJpbmcgKj4gKmFk
ZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzOworCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNjYzMDkzNDM5MTYxZDI4NDhlNWQyOWU2ZmQ5
NTY4OTE4ZThkODUyZC4uMGI3NmJhNjAwZjY4MjcwOGU3NmYwYzg2NTNjNmNlOTUyZTVjZmVlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjA0LDkg
KzIwNCwxMSBAQAogI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9TaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaD4KICNpbXBvcnQgPFdlYkNvcmUvU29ja2V0
UHJvdmlkZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU3RyaW5nVXRpbGl0aWVzLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1N0eWxlUHJvcGVydGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0UmVzb3Vy
Y2VEZWNvZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL1VUSVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VzZXJBZ2VudC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9Vc2VyQ29udGVudENvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUv
VXNlckdlc3R1cmVJbmRpY2F0b3IuaD4KQEAgLTI4NjUsNiArMjg2Nyw5IEBAIHN0YXRpYyBib29s
IG5lZWRzU2VsZlJldGFpbldoaWxlTG9hZGluZ1F1aXJrKCkKICAgICBzZXR0aW5ncy5zZXRTdGFu
ZGFyZEZvbnRGYW1pbHkoW3ByZWZlcmVuY2VzIHN0YW5kYXJkRm9udEZhbWlseV0pOwogICAgIHNl
dHRpbmdzLnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShbcHJlZmVyZW5jZXMgbG9hZHNJbWFn
ZXNBdXRvbWF0aWNhbGx5XSk7CiAgICAgc2V0dGluZ3Muc2V0TG9hZHNTaXRlSWNvbnNJZ25vcmlu
Z0ltYWdlTG9hZGluZ1NldHRpbmcoW3ByZWZlcmVuY2VzIGxvYWRzU2l0ZUljb25zSWdub3JpbmdJ
bWFnZUxvYWRpbmdQcmVmZXJlbmNlXSk7CisKKyAgICBXZWJDb3JlOjpzZXRBZGRpdGlvbmFsU3Vw
cG9ydGVkSW1hZ2VUeXBlcyhXZWJDb3JlOjp3ZWJDb3JlU3RyaW5nVmVjdG9yRnJvbU5TU3RyaW5n
QXJyYXkoW3ByZWZlcmVuY2VzIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzXSkpOworCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBzZXR0aW5ncy5zZXRTaG91bGRQcmludEJhY2tn
cm91bmRzKHRydWUpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA4ZDYzZjYyOTJmZWIyYzQ1N2RiNmNhODU0MzVlMzc5ZjYzYjJiMDVm
Li44YTdlZGNiMzUzYTdlYjQzZmJiZjllOTZjOWRhZTQxOTIxZjliM2UxIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIw
MTktMDItMDQgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAg
W0NHXSBFbmFibGUgc2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMgZm9yIFdLMQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MTkwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgdGVzdCBz
aW1pbGFyIHRvIHRoZSBvbmUgdW5kZXIgV2ViS2l0IENvY29hIGJ1dCBtYWtlIGl0IGNyZWF0ZSBh
CisgICAgICAgIFdlYlZpZXcgaW5zdGVhZCBvZiBhIFdLV2ViVmlldy4KKworICAgICAgICAqIENo
YW5nZUxvZy0yMDE1LTExLTIxOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjLzEwMHgxMDAtcmVkLnRnYTogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlw
ZXMubW06IEFkZGVkLgorICAgICAgICAoLVtBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc1Rl
c3Qgd2ViVmlldzpkaWRGaW5pc2hMb2FkRm9yRnJhbWU6XSk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKwogMjAxOS0wMi0wMSAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgW2V3cy1idWlsZF0gQWRkIHVuaXQgdGVzdCB0byB2ZXJpZnkgYnVp
bGRlciBrZXlzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk4YjA3NDQ5NmQxOWI2ZWY4NDFl
OTc0M2M1MzgyYWYwYjY1MWE4YjcuLmIxOTk3ODhlMDMxNzQ1NDNhMzgyNWRmMDhkZDhlYjAwMjVl
ZWNiNjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjMsNiArMjYzLDcgQEAKIAkJNTVB
ODE3RkMyMTgxMDBFMDAwMDRBMzlBIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVBODE3RkIy
MTgxMDBFMDAwMDRBMzlBIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tICovOyB9
OwogCQk1NUE4MTdGRjIxODEwMjFBMDAwNEEzOUEgLyogMTAweDEwMC1yZWQudGdhIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTgxN0ZFMjE4
MTAxREYwMDA0QTM5QSAvKiAxMDB4MTAwLXJlZC50Z2EgKi87IH07CiAJCTU1QTgxODAwMjE4MTAy
MjEwMDA0QTM5QSAvKiA0MDB4NDAwLWdyZWVuLnBuZyBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUE4MTdGRDIxODEwMURGMDAwNEEzOUEgLyog
NDAweDQwMC1ncmVlbi5wbmcgKi87IH07CisJCTU1RjlEMkU1MjIwNTAzMTgwMEE5QUIzOCAvKiBB
ZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1RjlEMkU0MjIwNTAzMTgwMEE5QUIzOCAvKiBBZGRpdGlv
bmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbSAqLzsgfTsKIAkJNTcxNEVDQjkxQ0E4QjVCMDAwMDUx
QUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxNEVDQjgxQ0E4QjU4ODAwMDUx
QUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMLmh0bWwgKi87IH07CiAJCTU3MTRFQ0JC
MUNBOEJGRTQwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcx
NEVDQkExQ0E4QkZEMTAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJhbWUu
aHRtbCAqLzsgfTsKIAkJNTcxNEVDQkQxQ0E4QzIyQTAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVz
dE9yaWdpbmFsVVJMMi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3MTRFQ0JDMUNBOEMyMTgwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVl
c3RPcmlnaW5hbFVSTDIuaHRtbCAqLzsgfTsKQEAgLTM0MCw2ICszNDEsOCBAQAogCQk2QjMwNjEw
NjIxOEEzNzI5MDBGNUE4MDIgLyogQ2xvc2luZ1dlYlZpZXcubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjMwNjEwNTIxOEEzNzI5MDBGNUE4MDIgLyog
Q2xvc2luZ1dlYlZpZXcubW0gKi87IH07CiAJCTZCOUFCRTEyMjA4Njk1MkYwMEQ3NURFNiAvKiBI
VFRQUGFyc2Vycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2QjlBQkUxMTIwODY5NTJGMDBENzVERTYgLyogSFRUUFBhcnNlcnMuY3BwICovOyB9Owog
CQk2QkZEMjk0QzFENUU2QzFEMDA4RUM5NjggLyogSGFzaENvdW50ZWRTZXQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0EzOEQ3RTUxQzc1MkQ1RjAw
NEYxNTdEIC8qIEhhc2hDb3VudGVkU2V0LmNwcCAqLzsgfTsKKwkJNzI1QzNFRUYyMjA1NzBCRTAw
N0MzNkZDIC8qIDEwMHgxMDAtcmVkLnRnYSBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjVDM0VFRTIyMDU3MDA1MDA3QzM2RkMgLyogMTAweDEw
MC1yZWQudGdhICovOyB9OworCQk3MjVDM0VGMzIyMDU4QTVCMDA3QzM2RkMgLyogQWRkaXRpb25h
bFN1cHBvcnRlZEltYWdlVHlwZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjVDM0VGMjIyMDU4NEJBMDA3QzM2RkMgLyogQWRkaXRp
b25hbFN1cHBvcnRlZEltYWdlVHlwZXMuaHRtbCAqLzsgfTsKIAkJNzUxQjA1RDYxRjhFQUM0MTAw
MjhBMDlFIC8qIERhdGFiYXNlVHJhY2tlclRlc3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTFCMDVENTFGOEVBQzFBMDAyOEEwOUUgLyogRGF0YWJh
c2VUcmFja2VyVGVzdC5tbSAqLzsgfTsKIAkJNzU0Q0VDODExRjY3MjJGMjAwRDAwMzlBIC8qIEF1
dG9GaWxsQXZhaWxhYmxlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzU0Q0VDODAxRjY3MjJEQzAwRDAwMzlBIC8qIEF1dG9GaWxsQXZhaWxhYmxlLm1t
ICovOyB9OwogCQk3NjczNDk5RDE5MzBDNUJCMDBFNDRERjkgLyogU3RvcExvYWRpbmdEdXJpbmdE
aWRGYWlsUHJvdmlzaW9uYWxMb2FkX2J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjczNDk5QTE5MzAxODJFMDBFNDRERjkgLyogU3RvcExv
YWRpbmdEdXJpbmdEaWRGYWlsUHJvdmlzaW9uYWxMb2FkX2J1bmRsZS5jcHAgKi87IH07CkBAIC05
OTMsMTAgKzk5NiwxMiBAQAogCQkJZHN0UGF0aCA9IFRlc3RXZWJLaXRBUEkucmVzb3VyY2VzOwog
CQkJZHN0U3ViZm9sZGVyU3BlYyA9IDc7CiAJCQlmaWxlcyA9ICgKKwkJCQk3MjVDM0VFRjIyMDU3
MEJFMDA3QzM2RkMgLyogMTAweDEwMC1yZWQudGdhIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJ
CTU1QTgxN0ZGMjE4MTAyMUEwMDA0QTM5QSAvKiAxMDB4MTAwLXJlZC50Z2EgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJMUE5RTUyQzkxM0U2NUVGNDAwNjkxN0Y1IC8qIDE4LWNoYXJhY3RlcnMu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NUE4MTgwMDIxODEwMjIxMDAwNEEzOUEg
LyogNDAweDQwMC1ncmVlbi5wbmcgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMzc5MDI4Qjkx
NEZBQzI0QzAwN0U2QjQzIC8qIGFjY2VwdHNGaXJzdE1vdXNlLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCisJCQkJNzI1QzNFRjMyMjA1OEE1QjAwN0MzNkZDIC8qIEFkZGl0aW9uYWxTdXBwb3J0
ZWRJbWFnZVR5cGVzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMUMyQjgxODcxQzg5
MjVBMDAwQTU1MjlGIC8qIEFoZW0udHRmIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTFBNjM0
NzlGMTgzRDcyQTQwMDVCMTcwNyAvKiBhbGwtY29udGVudC1pbi1vbmUtaWZyYW1lLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQzI1Q0NBMEQxRTUxNDE4NDAwMjZDQjhBIC8qIEFsbEFo
ZW0uc3ZnIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTYzNiw2ICsxNjQxLDcgQEAKIAkJNTVB
ODE3RkIyMTgxMDBFMDAwMDRBMzlBIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1QTgxN0ZEMjE4MTAxREYwMDA0QTM5QSAv
KiA0MDB4NDAwLWdyZWVuLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9ICI0MDB4NDAwLWdyZWVuLnBuZyI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1QTgxN0ZFMjE4MTAxREYwMDA0QTM5QSAvKiAxMDB4
MTAwLXJlZC50Z2EgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBmaWxlOyBwYXRoID0gIjEwMHgxMDAtcmVkLnRnYSI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTU1RjlEMkU0MjIwNTAzMTgwMEE5QUIzOCAvKiBBZGRpdGlvbmFsU3VwcG9ydGVk
SW1hZ2VUeXBlcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWRkaXRpb25hbFN1cHBvcnRlZElt
YWdlVHlwZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MTRFQ0I4MUNBOEI1
ODgwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTC5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwuaHRtbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcxNEVDQkExQ0E4QkZEMTAwMDUxQUM4IC8qIERvd25s
b2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9IERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRtbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTcxNEVDQkMxQ0E4QzIxODAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVz
dE9yaWdpbmFsVVJMMi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRG93bmxvYWRS
ZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NzEzLDYgKzE3MTksOCBAQAogCQk2QjBBMDdGNjIxRkE5QzJCMDBENTczOTEgLyogQWRDbGlja0F0
dHJpYnV0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCMzA2MTA1MjE4QTM3MjkwMEY1QTgwMiAv
KiBDbG9zaW5nV2ViVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENsb3NpbmdXZWJWaWV3
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjlBQkUxMTIwODY5NTJGMDBENzVE
RTYgLyogSFRUUFBhcnNlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRUUFBhcnNlcnMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjVDM0VFRTIyMDU3MDA1MDA3QzM2RkMg
LyogMTAweDEwMC1yZWQudGdhICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9ICIxMDB4MTAwLXJlZC50Z2EiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3MjVDM0VGMjIyMDU4NEJBMDA3QzM2RkMgLyogQWRkaXRpb25hbFN1
cHBvcnRlZEltYWdlVHlwZXMuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IEFkZGl0
aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTc1MUIwNUQ1MUY4RUFDMUEwMDI4QTA5RSAvKiBEYXRhYmFzZVRyYWNrZXJUZXN0Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YWJhc2VUcmFja2VyVGVzdC5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzU0Q0VDODAxRjY3MjJEQzAwRDAwMzlBIC8qIEF1dG9GaWxsQXZh
aWxhYmxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV0b0ZpbGxBdmFpbGFibGUubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NjA5MTc3MTkyNTlDNTkwMDlFRjA2RSAvKiBN
ZW1vcnlDYWNoZUFkZEltYWdlVG9DYWNoZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IE1lbW9yeUNhY2hlQWRkSW1hZ2VUb0NhY2hlSU9TLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjUxMyw3ICsyNTIxLDYgQEAKIAkJCQlBMTI1NDc4RDFE
QjE4Qjk0MDAzNTg1NjQgLyogTG9hZERhdGFXaXRoTmlsTUlNRVR5cGUubW0gKi8sCiAJCQkJNDYx
MkMyQjgyMTBBNkFCRjAwQjc4OEE2IC8qIExvYWRGaWxlVGhlblJlbG9hZC5tbSAqLywKIAkJCQk1
NzkwMUZBQzFDQUYxMkMyMDBFRDY0RjkgLyogTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tICovLAot
CQkJCTU3NzRBQTY3MjFGQkJGNzgwMEFGMkExQiAvKiBUZXN0TG9hZE9wdGltaXplci5tbSAqLywK
IAkJCQk1MUU2QTg5MjFEMkYxQkVDMDBDMDA0QjYgLyogTG9jYWxTdG9yYWdlQ2xlYXIubW0gKi8s
CiAJCQkJQ0EzODQ1OTUyMEFFMDEyRTAwOTkwRDNCIC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJh
Y2tlci5tbSAqLywKIAkJCQk0NkM1MTlEODFEMzU1QTczMDBEQUE1MUEgLyogTG9jYWxTdG9yYWdl
TnVsbEVudHJpZXMubW0gKi8sCkBAIC0yNTc0LDYgKzI1ODEsNyBAQAogCQkJCTUxNUJFMTcwMUQ0
MjhCRDEwMEREN0M2OCAvKiBTdG9yZUJsb2JUaGVuRGVsZXRlLm1tICovLAogCQkJCTFDNzM0QjUy
MjA3ODhDNDgwMEY0MzBFQSAvKiBTeXN0ZW1Db2xvcnMubW0gKi8sCiAJCQkJMkQ3MDA1OTUyMUVE
QTBDNjAwMzQ2M0NCIC8qIFRhYk91dE9mV2ViVmlldy5tbSAqLywKKwkJCQk1Nzc0QUE2NzIxRkJC
Rjc4MDBBRjJBMUIgLyogVGVzdExvYWRPcHRpbWl6ZXIubW0gKi8sCiAJCQkJRjRDRDc0QzcyMEZE
QjQ5NjAwREUzNzk0IC8qIFRlc3RVUkxTY2hlbWVIYW5kbGVyLmggKi8sCiAJCQkJRjRDRDc0Qzgy
MEZEQjQ5NjAwREUzNzk0IC8qIFRlc3RVUkxTY2hlbWVIYW5kbGVyLm1tICovLAogCQkJCTVDQjQw
QjREMUY0Qjk4QkUwMDdEQzdCOSAvKiBVSURlbGVnYXRlLm1tICovLApAQCAtMzQxMCw2ICszNDE4
LDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUMwN0U2Q0IwMTNGRDczN0MwMDM4QjIyQiAvKiBS
ZXNvdXJjZXMgKi8sCiAJCQkJMzc5MDI4QjUxNEZBQkQ5MjAwN0U2QjQzIC8qIEFjY2VwdHNGaXJz
dE1vdXNlLm1tICovLAorCQkJCTU1RjlEMkU0MjIwNTAzMTgwMEE5QUIzOCAvKiBBZGRpdGlvbmFs
U3VwcG9ydGVkSW1hZ2VUeXBlcy5tbSAqLywKIAkJCQlCNTVGMTE5RjE1MTY4MzRGMDA5MTU5MTYg
LyogQXR0cmlidXRlZFN0cmluZy5tbSAqLywKIAkJCQkwMENEOUY2MjE1QkUzMTJDMDAyREEyQ0Ug
LyogQmFja0ZvcndhcmRMaXN0Lm1tICovLAogCQkJCTFDN0ZFQjFGMjA3QzBGMkQwMEQyMzI3OCAv
KiBCYWNrZ3JvdW5kQ29sb3IubW0gKi8sCkBAIC0zNDg0LDcgKzM0OTMsOSBAQAogCQlDMDdFNkNC
MDEzRkQ3MzdDMDAzOEIyMkIgLyogUmVzb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk3MjVDM0VFRTIyMDU3MDA1MDA3QzM2RkMgLyogMTAweDEw
MC1yZWQudGdhICovLAogCQkJCTM3OTAyOEI4MTRGQUJFNDkwMDdFNkI0MyAvKiBhY2NlcHRzRmly
c3RNb3VzZS5odG1sICovLAorCQkJCTcyNUMzRUYyMjIwNTg0QkEwMDdDMzZGQyAvKiBBZGRpdGlv
bmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5odG1sICovLAogCQkJCUI1NUYxMUIwMTUxN0EyQzQwMDkx
NTkxNiAvKiBhdHRyaWJ1dGVkU3RyaW5nQ3VzdG9tRm9udC5odG1sICovLAogCQkJCTdDOUVEOThB
MTdBMTlEMDYwMEU0REMzMyAvKiBhdHRyaWJ1dGVkU3RyaW5nU3RyaWtldGhyb3VnaC5odG1sICov
LAogCQkJCTI2REY1QTYxMTVBMkEyMkIwMDM2ODlDMiAvKiBDYW5jZWxMb2FkRnJvbVJlc291cmNl
TG9hZERlbGVnYXRlLmh0bWwgKi8sCkBAIC0zOTA0LDYgKzM5MTUsNyBAQAogCQkJCTZCMEEwN0Y3
MjFGQTlDMkIwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMzdFN0RENjQxRUEwNkZGMjAwOUIzOTZEIC8qIEFkZGl0aW9uYWxSZWFkQWNjZXNzQWxs
b3dlZFVSTHMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1NUE4MTdGQzIxODEwMEUwMDAwNEEzOUEg
LyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gaW4gU291cmNlcyAqLywKKwkJCQk1
NUY5RDJFNTIyMDUwMzE4MDBBOUFCMzggLyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk3QTkwOUE3RDFEODc3NDgwMDA3RTEwRjggLyogQWZmaW5l
VHJhbnNmb3JtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExREY3NDMyMUM0MUI2NTgwMEEyRjRE
MCAvKiBBbHdheXNSZXZhbGlkYXRlZFVSTFNjaGVtZXMubW0gaW4gU291cmNlcyAqLywKIAkJCQky
REU3MUFGRTFENDlDMEJEMDA5MDQwOTQgLyogQW5pbWF0ZWRSZXNpemUubW0gaW4gU291cmNlcyAq
LywKQEAgLTQyNDEsNiArNDI1Myw3IEBACiAJCQkJRjRGNUJCNTIyMTY2N0JBQTAwMkQwNkI5IC8q
IFRlc3RGb250T3B0aW9ucy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUY0NUUxNTc2MjExMkNFNjIw
MDMwN0U4MiAvKiBUZXN0SW5wdXREZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUY0NUQz
ODkxMjE1QTdCNEIwMDJBMjk3OSAvKiBUZXN0SW5zcGVjdG9yQmFyLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJNTc3NEFBNjgyMUZCQkY3ODAwQUYyQTFCIC8qIFRlc3RMb2FkT3B0aW1pemVyLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkQxQzA0QTcxRDc2Mjk4QjAwMEE2ODE2IC8qIFRlc3ROYXZpZ2F0
aW9uRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTRGQzU5MDFCOEFFMzZGMDBEMTA3
RUIgLyogVGVzdFByb3RvY29sLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQUUxQTQxMUEz
NDAwNDQ3QzRDIC8qIFRlc3RzQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTQyNTks
NyArNDI3Miw2IEBACiAJCQkJN0NDRTdGMjcxQTQxMUFGNjAwNDQ3QzRDIC8qIFVzZXJDb250ZW50
Q29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjJEMUE0MTFCMTAwMDQ0N0M0
QyAvKiBVc2VyQ29udGVudFRlc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Qzg4MkUwQTFDODBD
NzY0MDA2QkY3MzEgLyogVXNlckNvbnRlbnRXb3JsZC5tbSBpbiBTb3VyY2VzICovLAotCQkJCTU3
NzRBQTY4MjFGQkJGNzgwMEFGMkExQiAvKiBUZXN0TG9hZE9wdGltaXplci5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDQ0I5OTIxMUQzQjQxRjYwMDM5MjJGNiAvKiBVc2VySW5pdGlhdGVkQWN0aW9u
SW5OYXZpZ2F0aW9uQWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMTcxQTQxMUFF
NjAwNDQ3QzRDIC8qIFVzZXJNZWRpYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk5QzM0OTFF
QkEyRDdCMDAzQjc1MzIgLyogVXNlck1lZGlhRGlzYWJsZWQubW0gaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjLzEwMHgxMDAtcmVkLnRnYSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjLzEwMHgxMDAtcmVkLnRnYQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wNjk1OGJhMGM0NDEwNjA1ODg4NGEzZjI0YTIzZWVkMTgyOGIxNzRiCkdJVCBiaW5hcnkgcGF0
Y2gKbGl0ZXJhbCA1MTgKY2NtWlF6OzlgSio2b3dRQTEmemxINEZDVSs1K2Y9TTBDe21DNGdkZkUK
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL0FkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLmh0bWwgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9BZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjVmZTBlZGU5YzM3MTdkMzA3MWUyYzUxMGMxMWZmNDlkYWViNDU0ZjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9BZGRpdGlvbmFsU3Vw
cG9ydGVkSW1hZ2VUeXBlcy5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8Ym9keT4KKyAgICA8aW1nIHNyYz0iMTAweDEwMC1yZWQudGdhIiBvbmVycm9yPSJp
bWdFcnJvcih0aGlzKTsiPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIGltZ0Vycm9y
KGltYWdlKSB7CisgICAgICAgICAgICBpbWFnZS5wYXJlbnROb2RlLiByZW1vdmVDaGlsZChpbWFn
ZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9BZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
Mjc3MGJhYWJiZjhiZWJmMDMzMDMwZmQ5YzE1ODFjMzZjYzU0ZTc1Ci0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQWRkaXRpb25hbFN1cHBvcnRlZEltYWdl
VHlwZXMubW0KQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlBsYXRmb3JtV2Vi
Vmlldy5oIgorCisjaW1wb3J0IDxXZWJLaXQvRE9NLmg+CisjaW1wb3J0IDxXZWJLaXQvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV2ViVmlld1ByaXZhdGUuaD4KKyNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JN
KENPQ09BKQorCitAaW50ZXJmYWNlIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzVGVzdCA6
IE5TT2JqZWN0IDxXZWJGcmFtZUxvYWREZWxlZ2F0ZT4geworfQorQGVuZAorCitzdGF0aWMgYm9v
bCBkaWRGaW5pc2hMb2FkOworCitAaW1wbGVtZW50YXRpb24gQWRkaXRpb25hbFN1cHBvcnRlZElt
YWdlVHlwZXNUZXN0CisKKy0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXNlbmRlciBkaWRGaW5p
c2hMb2FkRm9yRnJhbWU6KFdlYkZyYW1lICopZnJhbWUKK3sKKyAgICBkaWRGaW5pc2hMb2FkID0g
dHJ1ZTsKK30KK0BlbmQKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFdlYktp
dExlZ2FjeSwgQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMpCit7CisgICAgUmV0YWluUHRy
PFdlYlByZWZlcmVuY2VzPiBwcmVmZXJlbmNlcyA9IGFkb3B0TlMoW1tXZWJQcmVmZXJlbmNlcyBh
bGxvY10gaW5pdFdpdGhJZGVudGlmaWVyOm5pbF0pOworICAgIFtwcmVmZXJlbmNlcyBzZXRBZGRp
dGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlczpAW0AiY29tLnRydWV2aXNpb24udGdhLWltYWdlIl1d
OworCisgICAgUmV0YWluUHRyPFdlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDEyMCwgMjAwKSBmcmFtZU5hbWU6
bmlsIGdyb3VwTmFtZTpuaWxdKTsKKyAgICBbd2ViVmlldyBzZXRQcmVmZXJlbmNlczpwcmVmZXJl
bmNlcy5nZXQoKV07CisKKyAgICBSZXRhaW5QdHI8QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlw
ZXNUZXN0PiB0ZXN0Q29udHJvbGxlciA9IGFkb3B0TlMoW0FkZGl0aW9uYWxTdXBwb3J0ZWRJbWFn
ZVR5cGVzVGVzdCBuZXddKTsKKyAgICB3ZWJWaWV3LmdldCgpLmZyYW1lTG9hZERlbGVnYXRlID0g
dGVzdENvbnRyb2xsZXIuZ2V0KCk7CisKKyAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiQWRkaXRpb25hbFN1cHBvcnRl
ZEltYWdlVHlwZXMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2Vi
S2l0QVBJLnJlc291cmNlcyJdOworICAgIFtbd2ViVmlldy5nZXQoKSBtYWluRnJhbWVdIGxvYWRS
ZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOworCisg
ICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7
CisKKyAgICBET01Eb2N1bWVudCAqZG9jdW1lbnQgPSB3ZWJWaWV3LmdldCgpLm1haW5GcmFtZURv
Y3VtZW50OworICAgIERPTUVsZW1lbnQgKmRvY3VtZW50RWxlbWVudCA9IFtkb2N1bWVudCBkb2N1
bWVudEVsZW1lbnRdOworCisgICAgRE9NSFRNTEltYWdlRWxlbWVudCAqaW1hZ2UgPSAoRE9NSFRN
TEltYWdlRWxlbWVudCAqKVtkb2N1bWVudEVsZW1lbnQgcXVlcnlTZWxlY3RvcjpAImltZyJdOwor
ICAgIEVYUEVDVF9FUShbaW1hZ2Ugd2lkdGhdLCAxMDApOworfQorCit9CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361087</attachid>
            <date>2019-02-04 12:56:56 -0800</date>
            <delta_ts>2019-02-04 15:43:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194190-20190204125656.patch</filename>
            <type>text/plain</type>
            <size>28538</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM0NDI0ODJkYjMwYjRl
NTIxNGE2ZDk2ZTVlOTYyY2E4NmM3NjEwMy4uOTZlMzQzMDUyMDBlMDRmZWE0YThlY2NhZWMyNjY1
ZTc0MDkyZGMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTAyLTA0ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtDR10gRW5hYmxlIHNl
dEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIGZvciBXSzEKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDE5MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGZ1bmN0aW9uIHdlYkNvcmVT
dHJpbmdWZWN0b3JGcm9tTlNTdHJpbmdBcnJheSBmcm9tIFdlYktpdCB0bworICAgICAgICBXZWJD
b3JlIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IGJvdGggV2ViS2l0IGFuZCBXZWJLaXRMZWdhY3kuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYkNvcmU6OndlYkNvcmVT
dHJpbmdWZWN0b3JGcm9tTlNTdHJpbmdBcnJheSk6CisKIDIwMTktMDItMDEgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRoZSB1bnVzZWQg
bGF5ZXJGb3JTY3JvbGxpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5NzM5NzExMWQ0ZTMxZjIyNjdhYzJjOThk
M2E1NTM5Mzk1ZjAwOWY0Li43MmJhZTIzZTIwYjg3MGJjY2FkYTNkZjQzYjA2ZWIzOThlYTY4YWM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTAyLTA0ICBTYWlkIEFib3UtSGFsbGF3
YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtDR10gRW5hYmxlIHNldEFkZGl0aW9uYWxT
dXBwb3J0ZWRJbWFnZVR5cGVzIGZvciBXSzEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5NDE5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGZ1bmN0aW9uIHdlYkNvcmVTdHJpbmdWZWN0b3JG
cm9tTlNTdHJpbmdBcnJheSBmcm9tIFdlYktpdCB0bworICAgICAgICBXZWJDb3JlIHNvIGl0IGNh
biBiZSB1c2VkIGJ5IGJvdGggV2ViS2l0IGFuZCBXZWJLaXRMZWdhY3kuCisKKyAgICAgICAgKiBQ
bGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLmg6CisgICAgICAgICogUGxhdGZvcm0vbWFjL1N0
cmluZ1V0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktpdDo6d2ViQ29yZVN0cmluZ1ZlY3RvckZy
b21OU1N0cmluZ0FycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9pbml0aWFsaXplV2l0aENvbmZp
Z3VyYXRpb246XSk6CisKIDIwMTktMDItMDEgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxl
LmNvbT4KIAogICAgICAgICBNb3ZlIHNvZnQtbGlua2luZyBvZiBUZWxlcGhvbnlVdGlsaXRpZXMu
ZnJhbWV3b3JrIG91dCBvZiBUVUNhbGxTUEkuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IGEyMjE2NGE5YzdmY2IyYWIzZmVmMGUzYjIwODE0YThkYjI4NTkwY2UuLmVjMWQxZjkwYzIy
MzNhZTU3ZTg3ZWY4ZWMxMWUxN2JiZTgxZWEwMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOS0wMi0wNCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlk
QGFwcGxlLmNvbT4KKworICAgICAgICBbQ0ddIEVuYWJsZSBzZXRBZGRpdGlvbmFsU3VwcG9ydGVk
SW1hZ2VUeXBlcyBmb3IgV0sxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTQxOTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAxLiBEZWZpbmUgdGhlIHByZWZlcmVuY2VzIGtleSBBZGRpdGlvbmFsU3VwcG9y
dGVkSW1hZ2VUeXBlcy4KKyAgICAgICAgMi4gQWRkIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5
cGVzIGFzIGEgcHJpdmF0ZSBwcmVmZXJlbmNlIHByb3BlcnR5LgorICAgICAgICAzLiBEZWZpbmUg
dGhlIHNldHRlciBhbmQgdGhlIGdldHRlciBvZiB0aGUgcHJvcGVydHkuCisgICAgICAgIDQuIEFk
ZCBmdW5jdGlvbiB0byBjb252ZXJ0IGZyb20gYW4gaWQgdG8gYW4gYXJyYXkgb2Ygc3RyaW5ncy4K
KyAgICAgICAgNS4gQ2FsbCBXZWJDb3JlOjpzZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBl
cyB3aGVuIHByZWZlcmVuY2VzIGNoYW5nZS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVy
ZW5jZUtleXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToK
KyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgX3N0cmluZ0FycmF5VmFsdWVGb3JLZXk6XSk6Cisg
ICAgICAgICgtW1dlYlByZWZlcmVuY2VzIF9zZXRTdHJpbmdBcnJheVZhbHVlRm9yS2V5OmZvcktl
eTpdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0QWRkaXRpb25hbFN1cHBvcnRlZElt
YWdlVHlwZXM6XSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIGFkZGl0aW9uYWxTdXBwb3J0
ZWRJbWFnZVR5cGVzXSk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUu
aDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3By
ZWZlcmVuY2VzQ2hhbmdlZDpdKToKKwogMjAxOS0wMS0zMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmVydCByMjM4ODE5IHdoaWNoIGlz
IHVubmVlZGVkIGFuZCBjYXVzZWQgYSBwZXJmb3JtYW5jZSByZWdyZXNzaW9uLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5oCmluZGV4IDAwMTFiZmM1NDkw
NjE1NThlYTZlZTY1ZjE5YWVmZGFhMGNlZDk5ZDUuLmFiZjJiZjEzMDhhZmRjZWRlZGI1M2E1MTE5
MWNlZmM0MTFjZWJiYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
dHJpbmdVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5n
VXRpbGl0aWVzLmgKQEAgLTI5LDUgKzI5LDExIEBACiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CisKIFdFQkNPUkVfRVhQT1JUIGJvb2wgc3RyaW5nTWF0Y2hl
c1dpbGRjYXJkU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nVG9CZU1hdGNoZWQsIGNvbnN0IFN0
cmluZyYgd2lsZGNhcmRTdHJpbmcpOworCisjaWZkZWYgX19PQkpDX18KK1dFQkNPUkVfRVhQT1JU
IFZlY3RvcjxTdHJpbmc+IHdlYkNvcmVTdHJpbmdWZWN0b3JGcm9tTlNTdHJpbmdBcnJheShOU0Fy
cmF5PE5TU3RyaW5nICo+ICopOworI2VuZGlmIC8vIGRlZmluZWQoX19PQkpDX18pCisKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tCmluZGV4IDdj
ZDFiZDgwYWU5ZTMzZTc1NmY2NTkxMjI0MGY3ZWQ2Y2MzM2M1YjUuLmYxZjU2YjMwODdkMGUwOTEx
ZjE4MGU1NTMyMDY2ZmIwZGExZTZhOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1N0cmluZ1V0aWxpdGllcy5tbQpAQCAtNTksNCArNTksMTUgQEAgYm9vbCBzdHJpbmdNYXRj
aGVzV2lsZGNhcmRTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFN0cmluZyYgd2ls
ZGNhcmRTdHIKICAgICByZXR1cm4gSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbih3aWxkY2Fy
ZFJlZ2V4UGF0dGVyblN0cmluZyh3aWxkY2FyZFN0cmluZyksIEpTQzo6WWFycjo6VGV4dENhc2VJ
bnNlbnNpdGl2ZSkubWF0Y2goc3RyaW5nKSAhPSAtMTsKIH0KIAorVmVjdG9yPFN0cmluZz4gd2Vi
Q29yZVN0cmluZ1ZlY3RvckZyb21OU1N0cmluZ0FycmF5KE5TQXJyYXk8TlNTdHJpbmcgKj4gKm5z
U3RyaW5nQXJyYXkpCit7CisgICAgVmVjdG9yPFN0cmluZz4gc3RyaW5nVmVjdG9yOworICAgIHN0
cmluZ1ZlY3Rvci5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KFtuc1N0cmluZ0FycmF5IGNvdW50XSk7
CisKKyAgICBmb3IgKE5TU3RyaW5nICpuc1N0cmluZyBpbiBuc1N0cmluZ0FycmF5KQorICAgICAg
ICBzdHJpbmdWZWN0b3IudW5jaGVja2VkQXBwZW5kKG5zU3RyaW5nKTsKKworICAgIHJldHVybiBz
dHJpbmdWZWN0b3I7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
bWFjL1N0cmluZ1V0aWxpdGllcy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9tYWMvU3RyaW5n
VXRpbGl0aWVzLmgKaW5kZXggNDI1N2M4Y2ZhOWU0YWJhMTQyYWFkZTgxOTFlOWY5OWZiMjlkODIz
OS4uMjlhNzZjZDc1MzhjNWRmYzhlMWE4ZDI4OWVjYzllOGI2YzgwNWRmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLmgKKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLmgKQEAgLTM3LDggKzM3LDYgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiBOU1N0cmluZyAqbnNTdHJpbmdGcm9tV2ViQ29yZVN0cmluZyhj
b25zdCBTdHJpbmcmKTsKIE5TU3RyaW5nICpmb3JtYXR0ZWRQaG9uZU51bWJlclN0cmluZyhOU1N0
cmluZyAqb3JpZ2luYWxQaG9uZU51bWJlcik7CiAKLVZlY3RvcjxTdHJpbmc+IHdlYkNvcmVTdHJp
bmdWZWN0b3JGcm9tTlNTdHJpbmdBcnJheShOU0FycmF5PE5TU3RyaW5nICo+ICopOwotCiAjZW5k
aWYgLy8gZGVmaW5lZChfX09CSkNfXykKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9t
YWMvU3RyaW5nVXRpbGl0aWVzLm1tCmluZGV4IGJjZDJmYjY1NWE1MjRjYzA0MWI5MWE5ZTdmYzI3
OTNhZDhmNzdlZjguLmVjYmI3OTc3NzZjMmI4Zjk3MTY1YzMzOWVmMDRmZmJmNDk0YTY4ZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0KQEAgLTgy
LDE1ICs4Miw0IEBAIE5TU3RyaW5nICpmb3JtYXR0ZWRQaG9uZU51bWJlclN0cmluZyhOU1N0cmlu
ZyAqKQogCiAjZW5kaWYgLy8gRU5BQkxFKFRFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAmJiBQ
TEFURk9STShNQUMpCiAKLVZlY3RvcjxTdHJpbmc+IHdlYkNvcmVTdHJpbmdWZWN0b3JGcm9tTlNT
dHJpbmdBcnJheShOU0FycmF5PE5TU3RyaW5nICo+ICpuc1N0cmluZ0FycmF5KQotewotICAgIFZl
Y3RvcjxTdHJpbmc+IHN0cmluZ1ZlY3RvcjsKLSAgICBzdHJpbmdWZWN0b3IucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShbbnNTdHJpbmdBcnJheSBjb3VudF0pOwotCi0gICAgZm9yIChOU1N0cmluZyAq
bnNTdHJpbmcgaW4gbnNTdHJpbmdBcnJheSkKLSAgICAgICAgc3RyaW5nVmVjdG9yLnVuY2hlY2tl
ZEFwcGVuZChuc1N0cmluZyk7Ci0KLSAgICByZXR1cm4gc3RyaW5nVmVjdG9yOwotfQotCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA5
YTczYTM2YzRmZWY5NzdlODlhY2MyNWRmZmNkM2ExYzc0MWQ4YWFkLi43NTdjOTU4YmYwYThlNWJk
OGYzMzQ5NjM2YWFiNDRkNjdmYmZkNGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTUxLDcgKzUxLDYgQEAKICNpbXBvcnQgIlJlbW90
ZU9iamVjdFJlZ2lzdHJ5LmgiCiAjaW1wb3J0ICJSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2Vz
LmgiCiAjaW1wb3J0ICJTYWZlQnJvd3NpbmdXYXJuaW5nLmgiCi0jaW1wb3J0ICJTdHJpbmdVdGls
aXRpZXMuaCIKICNpbXBvcnQgIlVJRGVsZWdhdGUuaCIKICNpbXBvcnQgIlVzZXJNZWRpYVByb2Nl
c3NNYW5hZ2VyLmgiCiAjaW1wb3J0ICJWZXJzaW9uQ2hlY2tzLmgiCkBAIC0xMTIsNiArMTExLDcg
QEAKICNpbXBvcnQgPFdlYkNvcmUvU2NoZW1lUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNvcmUv
U2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL1N0cmluZ1V0aWxpdGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9WYWxpZGF0aW9uQnVi
YmxlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1dyaXRpbmdNb2RlLmg+CkBAIC01ODMsNyArNTgzLDcgQEAgc3RhdGljIHZvaWQgdmFs
aWRhdGUoV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbikKICAgICAgICAgICAg
IHBhZ2VDb25maWd1cmF0aW9uLT5zZXRQYWdlR3JvdXAoV2ViS2l0OjpXZWJQYWdlR3JvdXA6OmNy
ZWF0ZShjb25maWd1cmF0aW9uLl9ncm91cElkZW50aWZpZXIpLnB0cigpKTsKICAgICB9CiAKLSAg
ICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMoV2Vi
S2l0Ojp3ZWJDb3JlU3RyaW5nVmVjdG9yRnJvbU5TU3RyaW5nQXJyYXkoW19jb25maWd1cmF0aW9u
IF9hZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc10pKTsKKyAgICBwYWdlQ29uZmlndXJhdGlv
bi0+c2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMoV2ViQ29yZTo6d2ViQ29yZVN0cmlu
Z1ZlY3RvckZyb21OU1N0cmluZ0FycmF5KFtfY29uZmlndXJhdGlvbiBfYWRkaXRpb25hbFN1cHBv
cnRlZEltYWdlVHlwZXNdKSk7CiAKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZVZh
bHVlcygpLnNldChXZWJLaXQ6OldlYlByZWZlcmVuY2VzS2V5OjpzdXBwcmVzc2VzSW5jcmVtZW50
YWxSZW5kZXJpbmdLZXkoKSwgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlOjpWYWx1ZSghIVtf
Y29uZmlndXJhdGlvbiBzdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmddKSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oCmluZGV4IDQ5ZDM0MmZmMmUyNzQwNGFlOGMyNjllMmI1YTk2MGEyNmRmM2I5
ODAuLmRhNGQ2MjdjZTgyMzMxNjU0NzE3MTQwNmMzNzRjYjlmOWEwNzg0MzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaApAQCAtNjYsNiArNjYsNyBAQAogI2RlZmluZSBXZWJLaXRBbGxvd0FuaW1hdGVk
SW1hZ2VzUHJlZmVyZW5jZUtleSBAIldlYktpdEFsbG93QW5pbWF0ZWRJbWFnZXNQcmVmZXJlbmNl
S2V5IgogI2RlZmluZSBXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VMb29waW5nUHJlZmVyZW5jZUtl
eSBAIldlYktpdEFsbG93QW5pbWF0ZWRJbWFnZUxvb3BpbmdQcmVmZXJlbmNlS2V5IgogI2RlZmlu
ZSBXZWJLaXREaXNwbGF5SW1hZ2VzS2V5IEAiV2ViS2l0RGlzcGxheUltYWdlc0tleSIKKyNkZWZp
bmUgV2ViS2l0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXNLZXkgIEAiV2ViS2l0QWRkaXRp
b25hbFN1cHBvcnRlZEltYWdlVHlwZXNLZXkiCiAjZGVmaW5lIFdlYktpdExvYWRTaXRlSWNvbnNL
ZXkgQCJXZWJLaXRMb2FkU2l0ZUljb25zS2V5IgogI2RlZmluZSBXZWJLaXRCYWNrRm9yd2FyZENh
Y2hlRXhwaXJhdGlvbkludGVydmFsS2V5IEAiV2ViS2l0QmFja0ZvcndhcmRDYWNoZUV4cGlyYXRp
b25JbnRlcnZhbEtleSIKICNpZiAhVEFSR0VUX09TX0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggZTgwMmMwYTQ4Y2Rh
Y2Y4ZmMxOTNkZjY2ZjcxN2NhMDMxYzJlNjY2NC4uMjk2NjNmMWM3ZDc0MTlkY2YzYmYyOGYzODdm
ODU0ODcxY2QzNjgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCkBAIC03NTcsNiArNzU3LDM2IEBAIHB1YmxpYzoKICAgICBbc2Vs
ZiBfcG9zdFByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbl07CiB9CiAKKy0gKE5TQXJyYXk8
TlNTdHJpbmcgKj4gKilfc3RyaW5nQXJyYXlWYWx1ZUZvcktleTooTlNTdHJpbmcgKilrZXkKK3sK
KyAgICBpZCB2YWx1ZSA9IFtzZWxmIF92YWx1ZUZvcktleTprZXldOworICAgIGlmICghW3ZhbHVl
IGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKwor
ICAgIE5TQXJyYXkgKmFycmF5ID0gKE5TQXJyYXkgKil2YWx1ZTsKKyAgICBmb3IgKGlkIG9iamVj
dCBpbiBhcnJheSkgeworICAgICAgICBpZiAoIVtvYmplY3QgaXNLaW5kT2ZDbGFzczpbTlNTdHJp
bmcgY2xhc3NdXSkKKyAgICAgICAgICAgIHJldHVybiBuaWw7CisgICAgfQorCisgICAgcmV0dXJu
IChOU0FycmF5PE5TU3RyaW5nICo+ICopYXJyYXk7Cit9CisKKy0gKHZvaWQpX3NldFN0cmluZ0Fy
cmF5VmFsdWVGb3JLZXk6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKil2YWx1ZSBmb3JLZXk6KE5TU3Ry
aW5nICopa2V5Cit7CisgICAgTlNTdHJpbmcgKl9rZXkgPSBLRVkoa2V5KTsKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorICAgIGRpc3BhdGNoX2JhcnJpZXJfc3luYyhfcHJpdmF0ZS0+cmVhZFdy
aXRlUXVldWUsIF57CisjZW5kaWYKKyAgICAgICAgW19wcml2YXRlLT52YWx1ZXMuZ2V0KCkgc2V0
T2JqZWN0OnZhbHVlIGZvcktleTpfa2V5XTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IH0pOworI2VuZGlmCisgICAgaWYgKF9wcml2YXRlLT5hdXRvc2F2ZXMpCisgICAgICAgIFtbTlNV
c2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldE9iamVjdDp2YWx1ZSBmb3JLZXk6
X2tleV07CisgICAgW3NlbGYgX3Bvc3RQcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb25dOwor
fQorCiAtIChpbnQpX2ludGVnZXJWYWx1ZUZvcktleTooTlNTdHJpbmcgKilrZXkKIHsKICAgICBp
ZCBvID0gW3NlbGYgX3ZhbHVlRm9yS2V5OmtleV07CkBAIC0xMTU5LDYgKzExODksMTYgQEAgcHVi
bGljOgogICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OiBXZWJLaXREaXNwbGF5SW1h
Z2VzS2V5XTsKIH0KIAorLSAodm9pZClzZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlczog
KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilpbWFnZVR5cGVzCit7CisgICAgW3NlbGYgX3NldFN0cmlu
Z0FycmF5VmFsdWVGb3JLZXk6aW1hZ2VUeXBlcyBmb3JLZXk6V2ViS2l0QWRkaXRpb25hbFN1cHBv
cnRlZEltYWdlVHlwZXNLZXldOworfQorCistIChOU0FycmF5PE5TU3RyaW5nICo+ICopYWRkaXRp
b25hbFN1cHBvcnRlZEltYWdlVHlwZXMKK3sKKyAgICByZXR1cm4gW3NlbGYgX3N0cmluZ0FycmF5
VmFsdWVGb3JLZXk6V2ViS2l0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXNLZXldOworfQor
CiAtICh2b2lkKXNldEF1dG9zYXZlczooQk9PTClmbGFnCiB7CiAgICAgX3ByaXZhdGUtPmF1dG9z
YXZlcyA9IGZsYWc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA4ODIwZGIyNzAzZjdhYjg1OTcyNmU1YWM3
MWFkMWQ1OTVmMzhjMjgzLi5jOTk3ZTcwMTg3MTBjNzRjYjVmMDQwMGRkNzc1ODYzMjA3NDQ4MTVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmgKQEAgLTYyNiw0ICs2MjYsNyBAQCBleHRlcm4gTlNTdHJpbmcgKldl
YlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRf
REVQUgogCiBAcHJvcGVydHkgKG5vbmF0b21pYykgTlNTdHJpbmcgKm1lZGlhQ29udGVudFR5cGVz
UmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OwogCisvLyBUaGUgaW5wdXQgb2YgdGhpcyBTUEkgaXMg
YW4gYXJyYXkgb2YgaW1hZ2UgVVRJIChVbmlmb3JtIFR5cGUgSWRlbnRpZmllcikuCitAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmV0YWluKSBOU0FycmF5PE5TU3RyaW5nICo+ICphZGRpdGlvbmFsU3Vw
cG9ydGVkSW1hZ2VUeXBlczsKKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCmluZGV4IDY2MzA5MzQzOTE2MWQyODQ4ZTVkMjllNmZkOTU2ODkxOGU4ZDg1
MmQuLjBiNzZiYTYwMGY2ODI3MDhlNzZmMGM4NjUzYzZjZTk1MmU1Y2ZlZTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTIwNCw5ICsyMDQsMTEgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NvY2tldFByb3ZpZGVyLmg+
CisjaW1wb3J0IDxXZWJDb3JlL1N0cmluZ1V0aWxpdGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9T
dHlsZVByb3BlcnRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dFJlc291cmNlRGVjb2Rlci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9UaHJlYWRDaGVjay5oPgorI2ltcG9ydCA8V2ViQ29yZS9VVElS
ZWdpc3RyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Vc2VyQWdlbnQuaD4KICNpbXBvcnQgPFdlYkNv
cmUvVXNlckNvbnRlbnRDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VzZXJHZXN0dXJl
SW5kaWNhdG9yLmg+CkBAIC0yODY1LDYgKzI4NjcsOSBAQCBzdGF0aWMgYm9vbCBuZWVkc1NlbGZS
ZXRhaW5XaGlsZUxvYWRpbmdRdWlyaygpCiAgICAgc2V0dGluZ3Muc2V0U3RhbmRhcmRGb250RmFt
aWx5KFtwcmVmZXJlbmNlcyBzdGFuZGFyZEZvbnRGYW1pbHldKTsKICAgICBzZXR0aW5ncy5zZXRM
b2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoW3ByZWZlcmVuY2VzIGxvYWRzSW1hZ2VzQXV0b21hdGlj
YWxseV0pOwogICAgIHNldHRpbmdzLnNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRp
bmdTZXR0aW5nKFtwcmVmZXJlbmNlcyBsb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5n
UHJlZmVyZW5jZV0pOworCisgICAgV2ViQ29yZTo6c2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdl
VHlwZXMoV2ViQ29yZTo6d2ViQ29yZVN0cmluZ1ZlY3RvckZyb21OU1N0cmluZ0FycmF5KFtwcmVm
ZXJlbmNlcyBhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc10pKTsKKwogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAgICAgc2V0dGluZ3Muc2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyh0cnVl
KTsKICNlbHNlCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggOGQ2M2Y2MjkyZmViMmM0NTdkYjZjYTg1NDM1ZTM3OWY2M2IyYjA1Zi4uZmZkNzFmNmI2
N2I1YzhiMDVmNjhhYWZiYjU2ZjI0MmU1M2Q0YTMyYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTAyLTA0ICBT
YWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtDR10gRW5hYmxl
IHNldEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIGZvciBXSzEKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDE5MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3Qgc2ltaWxhciB0byB0
aGUgb25lIHVuZGVyIFdlYktpdCBDb2NvYSBidXQgbWFrZSBpdCBjcmVhdGUgYQorICAgICAgICBX
ZWJWaWV3IGluc3RlYWQgb2YgYSBXS1dlYlZpZXcuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy8xMDB4MTAwLXJlZC50Z2E6IEFkZGVkLgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL0FkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0FkZGl0aW9uYWxTdXBw
b3J0ZWRJbWFnZVR5cGVzLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bQWRkaXRpb25hbFN1cHBvcnRl
ZEltYWdlVHlwZXNUZXN0IHdlYlZpZXc6ZGlkRmluaXNoTG9hZEZvckZyYW1lOl0pOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6cnVuVGVzdCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKwogMjAxOS0wMi0wMSAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW2V3cy1idWlsZF0gQWRkIHVuaXQgdGVzdCB0byB2ZXJpZnkgYnVpbGRlciBrZXlz
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk4YjA3NDQ5NmQxOWI2ZWY4NDFlOTc0M2M1Mzgy
YWYwYjY1MWE4YjcuLmIxOTk3ODhlMDMxNzQ1NDNhMzgyNWRmMDhkZDhlYjAwMjVlZWNiNjUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjMsNiArMjYzLDcgQEAKIAkJNTVBODE3RkMyMTgx
MDBFMDAwMDRBMzlBIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVBODE3RkIyMTgxMDBFMDAw
MDRBMzlBIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tICovOyB9OwogCQk1NUE4
MTdGRjIxODEwMjFBMDAwNEEzOUEgLyogMTAweDEwMC1yZWQudGdhIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTgxN0ZFMjE4MTAxREYwMDA0
QTM5QSAvKiAxMDB4MTAwLXJlZC50Z2EgKi87IH07CiAJCTU1QTgxODAwMjE4MTAyMjEwMDA0QTM5
QSAvKiA0MDB4NDAwLWdyZWVuLnBuZyBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NUE4MTdGRDIxODEwMURGMDAwNEEzOUEgLyogNDAweDQwMC1n
cmVlbi5wbmcgKi87IH07CisJCTU1RjlEMkU1MjIwNTAzMTgwMEE5QUIzOCAvKiBBZGRpdGlvbmFs
U3VwcG9ydGVkSW1hZ2VUeXBlcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU1RjlEMkU0MjIwNTAzMTgwMEE5QUIzOCAvKiBBZGRpdGlvbmFsU3VwcG9y
dGVkSW1hZ2VUeXBlcy5tbSAqLzsgfTsKIAkJNTcxNEVDQjkxQ0E4QjVCMDAwMDUxQUM4IC8qIERv
d25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxNEVDQjgxQ0E4QjU4ODAwMDUxQUM4IC8qIERv
d25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMLmh0bWwgKi87IH07CiAJCTU3MTRFQ0JCMUNBOEJGRTQw
MDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxNEVDQkExQ0E4
QkZEMTAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRtbCAqLzsg
fTsKIAkJNTcxNEVDQkQxQ0E4QzIyQTAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFs
VVJMMi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3MTRFQ0JDMUNBOEMyMTgwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5h
bFVSTDIuaHRtbCAqLzsgfTsKQEAgLTM0MCw2ICszNDEsOCBAQAogCQk2QjMwNjEwNjIxOEEzNzI5
MDBGNUE4MDIgLyogQ2xvc2luZ1dlYlZpZXcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2QjMwNjEwNTIxOEEzNzI5MDBGNUE4MDIgLyogQ2xvc2luZ1dl
YlZpZXcubW0gKi87IH07CiAJCTZCOUFCRTEyMjA4Njk1MkYwMEQ3NURFNiAvKiBIVFRQUGFyc2Vy
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjlB
QkUxMTIwODY5NTJGMDBENzVERTYgLyogSFRUUFBhcnNlcnMuY3BwICovOyB9OwogCQk2QkZEMjk0
QzFENUU2QzFEMDA4RUM5NjggLyogSGFzaENvdW50ZWRTZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0EzOEQ3RTUxQzc1MkQ1RjAwNEYxNTdEIC8q
IEhhc2hDb3VudGVkU2V0LmNwcCAqLzsgfTsKKwkJNzI1QzNFRUYyMjA1NzBCRTAwN0MzNkZDIC8q
IDEwMHgxMDAtcmVkLnRnYSBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MjVDM0VFRTIyMDU3MDA1MDA3QzM2RkMgLyogMTAweDEwMC1yZWQudGdh
ICovOyB9OworCQk3MjVDM0VGMzIyMDU4QTVCMDA3QzM2RkMgLyogQWRkaXRpb25hbFN1cHBvcnRl
ZEltYWdlVHlwZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MjVDM0VGMjIyMDU4NEJBMDA3QzM2RkMgLyogQWRkaXRpb25hbFN1cHBv
cnRlZEltYWdlVHlwZXMuaHRtbCAqLzsgfTsKIAkJNzUxQjA1RDYxRjhFQUM0MTAwMjhBMDlFIC8q
IERhdGFiYXNlVHJhY2tlclRlc3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NTFCMDVENTFGOEVBQzFBMDAyOEEwOUUgLyogRGF0YWJhc2VUcmFja2Vy
VGVzdC5tbSAqLzsgfTsKIAkJNzU0Q0VDODExRjY3MjJGMjAwRDAwMzlBIC8qIEF1dG9GaWxsQXZh
aWxhYmxlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzU0Q0VDODAxRjY3MjJEQzAwRDAwMzlBIC8qIEF1dG9GaWxsQXZhaWxhYmxlLm1tICovOyB9Owog
CQk3NjczNDk5RDE5MzBDNUJCMDBFNDRERjkgLyogU3RvcExvYWRpbmdEdXJpbmdEaWRGYWlsUHJv
dmlzaW9uYWxMb2FkX2J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NjczNDk5QTE5MzAxODJFMDBFNDRERjkgLyogU3RvcExvYWRpbmdEdXJp
bmdEaWRGYWlsUHJvdmlzaW9uYWxMb2FkX2J1bmRsZS5jcHAgKi87IH07CkBAIC05OTMsMTAgKzk5
NiwxMiBAQAogCQkJZHN0UGF0aCA9IFRlc3RXZWJLaXRBUEkucmVzb3VyY2VzOwogCQkJZHN0U3Vi
Zm9sZGVyU3BlYyA9IDc7CiAJCQlmaWxlcyA9ICgKKwkJCQk3MjVDM0VFRjIyMDU3MEJFMDA3QzM2
RkMgLyogMTAweDEwMC1yZWQudGdhIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU1QTgxN0ZG
MjE4MTAyMUEwMDA0QTM5QSAvKiAxMDB4MTAwLXJlZC50Z2EgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJMUE5RTUyQzkxM0U2NUVGNDAwNjkxN0Y1IC8qIDE4LWNoYXJhY3RlcnMuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQk1NUE4MTgwMDIxODEwMjIxMDAwNEEzOUEgLyogNDAweDQw
MC1ncmVlbi5wbmcgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMzc5MDI4QjkxNEZBQzI0QzAw
N0U2QjQzIC8qIGFjY2VwdHNGaXJzdE1vdXNlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJ
CQkJNzI1QzNFRjMyMjA1OEE1QjAwN0MzNkZDIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5
cGVzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMUMyQjgxODcxQzg5MjVBMDAwQTU1
MjlGIC8qIEFoZW0udHRmIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTFBNjM0NzlGMTgzRDcy
QTQwMDVCMTcwNyAvKiBhbGwtY29udGVudC1pbi1vbmUtaWZyYW1lLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJQzI1Q0NBMEQxRTUxNDE4NDAwMjZDQjhBIC8qIEFsbEFoZW0uc3ZnIGlu
IENvcHkgUmVzb3VyY2VzICovLApAQCAtMTYzNiw2ICsxNjQxLDcgQEAKIAkJNTVBODE3RkIyMTgx
MDBFMDAwMDRBMzlBIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1QTgxN0ZEMjE4MTAxREYwMDA0QTM5QSAvKiA0MDB4NDAw
LWdyZWVuLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IGltYWdlLnBuZzsgcGF0aCA9ICI0MDB4NDAwLWdyZWVuLnBuZyI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTU1QTgxN0ZFMjE4MTAxREYwMDA0QTM5QSAvKiAxMDB4MTAwLXJlZC50
Z2EgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxl
OyBwYXRoID0gIjEwMHgxMDAtcmVkLnRnYSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTU1RjlEMkU0MjIwNTAzMTgwMEE5QUIzOCAvKiBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBl
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MTRFQ0I4MUNBOEI1ODgwMDA1MUFD
OCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1s
OyBwYXRoID0gRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwuaHRtbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTcxNEVDQkExQ0E4QkZEMTAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVz
dE9yaWdpbmFsVVJMRnJhbWUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IERvd25s
b2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTcxNEVDQkMxQ0E4QzIxODAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFs
VVJMMi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRG93bmxvYWRSZXF1ZXN0T3Jp
Z2luYWxVUkwyLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzEzLDYgKzE3
MTksOCBAQAogCQk2QjBBMDdGNjIxRkE5QzJCMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCMzA2MTA1MjE4QTM3MjkwMEY1QTgwMiAvKiBDbG9zaW5n
V2ViVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENsb3NpbmdXZWJWaWV3Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjlBQkUxMTIwODY5NTJGMDBENzVERTYgLyogSFRU
UFBhcnNlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRUUFBhcnNlcnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3MjVDM0VFRTIyMDU3MDA1MDA3QzM2RkMgLyogMTAweDEw
MC1yZWQudGdhICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gZmlsZTsgcGF0aCA9ICIxMDB4MTAwLXJlZC50Z2EiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3MjVDM0VGMjIyMDU4NEJBMDA3QzM2RkMgLyogQWRkaXRpb25hbFN1cHBvcnRlZElt
YWdlVHlwZXMuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IEFkZGl0aW9uYWxTdXBw
b3J0ZWRJbWFnZVR5cGVzLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1MUIw
NUQ1MUY4RUFDMUEwMDI4QTA5RSAvKiBEYXRhYmFzZVRyYWNrZXJUZXN0Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gRGF0YWJhc2VUcmFja2VyVGVzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzU0Q0VDODAxRjY3MjJEQzAwRDAwMzlBIC8qIEF1dG9GaWxsQXZhaWxhYmxlLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV0b0ZpbGxBdmFpbGFibGUubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTc1NjA5MTc3MTkyNTlDNTkwMDlFRjA2RSAvKiBNZW1vcnlDYWNo
ZUFkZEltYWdlVG9DYWNoZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IE1lbW9yeUNhY2hlQWRkSW1hZ2VUb0NhY2hlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjUxMyw3ICsyNTIxLDYgQEAKIAkJCQlBMTI1NDc4RDFEQjE4Qjk0MDAz
NTg1NjQgLyogTG9hZERhdGFXaXRoTmlsTUlNRVR5cGUubW0gKi8sCiAJCQkJNDYxMkMyQjgyMTBB
NkFCRjAwQjc4OEE2IC8qIExvYWRGaWxlVGhlblJlbG9hZC5tbSAqLywKIAkJCQk1NzkwMUZBQzFD
QUYxMkMyMDBFRDY0RjkgLyogTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tICovLAotCQkJCTU3NzRB
QTY3MjFGQkJGNzgwMEFGMkExQiAvKiBUZXN0TG9hZE9wdGltaXplci5tbSAqLywKIAkJCQk1MUU2
QTg5MjFEMkYxQkVDMDBDMDA0QjYgLyogTG9jYWxTdG9yYWdlQ2xlYXIubW0gKi8sCiAJCQkJQ0Ez
ODQ1OTUyMEFFMDEyRTAwOTkwRDNCIC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5tbSAq
LywKIAkJCQk0NkM1MTlEODFEMzU1QTczMDBEQUE1MUEgLyogTG9jYWxTdG9yYWdlTnVsbEVudHJp
ZXMubW0gKi8sCkBAIC0yNTc0LDYgKzI1ODEsNyBAQAogCQkJCTUxNUJFMTcwMUQ0MjhCRDEwMERE
N0M2OCAvKiBTdG9yZUJsb2JUaGVuRGVsZXRlLm1tICovLAogCQkJCTFDNzM0QjUyMjA3ODhDNDgw
MEY0MzBFQSAvKiBTeXN0ZW1Db2xvcnMubW0gKi8sCiAJCQkJMkQ3MDA1OTUyMUVEQTBDNjAwMzQ2
M0NCIC8qIFRhYk91dE9mV2ViVmlldy5tbSAqLywKKwkJCQk1Nzc0QUE2NzIxRkJCRjc4MDBBRjJB
MUIgLyogVGVzdExvYWRPcHRpbWl6ZXIubW0gKi8sCiAJCQkJRjRDRDc0QzcyMEZEQjQ5NjAwREUz
Nzk0IC8qIFRlc3RVUkxTY2hlbWVIYW5kbGVyLmggKi8sCiAJCQkJRjRDRDc0QzgyMEZEQjQ5NjAw
REUzNzk0IC8qIFRlc3RVUkxTY2hlbWVIYW5kbGVyLm1tICovLAogCQkJCTVDQjQwQjREMUY0Qjk4
QkUwMDdEQzdCOSAvKiBVSURlbGVnYXRlLm1tICovLApAQCAtMzQxMCw2ICszNDE4LDcgQEAKIAkJ
CWNoaWxkcmVuID0gKAogCQkJCUMwN0U2Q0IwMTNGRDczN0MwMDM4QjIyQiAvKiBSZXNvdXJjZXMg
Ki8sCiAJCQkJMzc5MDI4QjUxNEZBQkQ5MjAwN0U2QjQzIC8qIEFjY2VwdHNGaXJzdE1vdXNlLm1t
ICovLAorCQkJCTU1RjlEMkU0MjIwNTAzMTgwMEE5QUIzOCAvKiBBZGRpdGlvbmFsU3VwcG9ydGVk
SW1hZ2VUeXBlcy5tbSAqLywKIAkJCQlCNTVGMTE5RjE1MTY4MzRGMDA5MTU5MTYgLyogQXR0cmli
dXRlZFN0cmluZy5tbSAqLywKIAkJCQkwMENEOUY2MjE1QkUzMTJDMDAyREEyQ0UgLyogQmFja0Zv
cndhcmRMaXN0Lm1tICovLAogCQkJCTFDN0ZFQjFGMjA3QzBGMkQwMEQyMzI3OCAvKiBCYWNrZ3Jv
dW5kQ29sb3IubW0gKi8sCkBAIC0zNDg0LDcgKzM0OTMsOSBAQAogCQlDMDdFNkNCMDEzRkQ3MzdD
MDAzOEIyMkIgLyogUmVzb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKKwkJCQk3MjVDM0VFRTIyMDU3MDA1MDA3QzM2RkMgLyogMTAweDEwMC1yZWQudGdh
ICovLAogCQkJCTM3OTAyOEI4MTRGQUJFNDkwMDdFNkI0MyAvKiBhY2NlcHRzRmlyc3RNb3VzZS5o
dG1sICovLAorCQkJCTcyNUMzRUYyMjIwNTg0QkEwMDdDMzZGQyAvKiBBZGRpdGlvbmFsU3VwcG9y
dGVkSW1hZ2VUeXBlcy5odG1sICovLAogCQkJCUI1NUYxMUIwMTUxN0EyQzQwMDkxNTkxNiAvKiBh
dHRyaWJ1dGVkU3RyaW5nQ3VzdG9tRm9udC5odG1sICovLAogCQkJCTdDOUVEOThBMTdBMTlEMDYw
MEU0REMzMyAvKiBhdHRyaWJ1dGVkU3RyaW5nU3RyaWtldGhyb3VnaC5odG1sICovLAogCQkJCTI2
REY1QTYxMTVBMkEyMkIwMDM2ODlDMiAvKiBDYW5jZWxMb2FkRnJvbVJlc291cmNlTG9hZERlbGVn
YXRlLmh0bWwgKi8sCkBAIC0zOTA0LDYgKzM5MTUsNyBAQAogCQkJCTZCMEEwN0Y3MjFGQTlDMkIw
MEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdF
N0RENjQxRUEwNkZGMjAwOUIzOTZEIC8qIEFkZGl0aW9uYWxSZWFkQWNjZXNzQWxsb3dlZFVSTHMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk1NUE4MTdGQzIxODEwMEUwMDAwNEEzOUEgLyogQWRkaXRp
b25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gaW4gU291cmNlcyAqLywKKwkJCQk1NUY5RDJFNTIy
MDUwMzE4MDBBOUFCMzggLyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gaW4gU291
cmNlcyAqLywKIAkJCQk3QTkwOUE3RDFEODc3NDgwMDA3RTEwRjggLyogQWZmaW5lVHJhbnNmb3Jt
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExREY3NDMyMUM0MUI2NTgwMEEyRjREMCAvKiBBbHdh
eXNSZXZhbGlkYXRlZFVSTFNjaGVtZXMubW0gaW4gU291cmNlcyAqLywKIAkJCQkyREU3MUFGRTFE
NDlDMEJEMDA5MDQwOTQgLyogQW5pbWF0ZWRSZXNpemUubW0gaW4gU291cmNlcyAqLywKQEAgLTQy
NDEsNiArNDI1Myw3IEBACiAJCQkJRjRGNUJCNTIyMTY2N0JBQTAwMkQwNkI5IC8qIFRlc3RGb250
T3B0aW9ucy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUY0NUUxNTc2MjExMkNFNjIwMDMwN0U4MiAv
KiBUZXN0SW5wdXREZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUY0NUQzODkxMjE1QTdC
NEIwMDJBMjk3OSAvKiBUZXN0SW5zcGVjdG9yQmFyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTc3
NEFBNjgyMUZCQkY3ODAwQUYyQTFCIC8qIFRlc3RMb2FkT3B0aW1pemVyLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMkQxQzA0QTcxRDc2Mjk4QjAwMEE2ODE2IC8qIFRlc3ROYXZpZ2F0aW9uRGVsZWdh
dGUubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTRGQzU5MDFCOEFFMzZGMDBEMTA3RUIgLyogVGVz
dFByb3RvY29sLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQUUxQTQxMUEzNDAwNDQ3QzRD
IC8qIFRlc3RzQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTQyNTksNyArNDI3Miw2
IEBACiAJCQkJN0NDRTdGMjcxQTQxMUFGNjAwNDQ3QzRDIC8qIFVzZXJDb250ZW50Q29udHJvbGxl
ci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjJEMUE0MTFCMTAwMDQ0N0M0QyAvKiBVc2Vy
Q29udGVudFRlc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Qzg4MkUwQTFDODBDNzY0MDA2QkY3
MzEgLyogVXNlckNvbnRlbnRXb3JsZC5tbSBpbiBTb3VyY2VzICovLAotCQkJCTU3NzRBQTY4MjFG
QkJGNzgwMEFGMkExQiAvKiBUZXN0TG9hZE9wdGltaXplci5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTdDQ0I5OTIxMUQzQjQxRjYwMDM5MjJGNiAvKiBVc2VySW5pdGlhdGVkQWN0aW9uSW5OYXZpZ2F0
aW9uQWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMTcxQTQxMUFFNjAwNDQ3QzRD
IC8qIFVzZXJNZWRpYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk5QzM0OTFFQkEyRDdCMDAz
Qjc1MzIgLyogVXNlck1lZGlhRGlzYWJsZWQubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjLzEwMHgxMDAtcmVkLnRnYSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjLzEwMHgxMDAtcmVkLnRnYQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjk1OGJh
MGM0NDEwNjA1ODg4NGEzZjI0YTIzZWVkMTgyOGIxNzRiCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJh
bCA1MTgKY2NtWlF6OzlgSio2b3dRQTEmemxINEZDVSs1K2Y9TTBDe21DNGdkZkUKCmxpdGVyYWwg
MApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0FkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9BZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVmZTBlZGU5YzM3MTdkMzA3MWUyYzUxMGMxMWZmNDlkYWViNDU0ZjMKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9BZGRpdGlvbmFsU3VwcG9ydGVkSW1h
Z2VUeXBlcy5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKyAgICA8aW1nIHNyYz0iMTAweDEwMC1yZWQudGdhIiBvbmVycm9yPSJpbWdFcnJvcih0
aGlzKTsiPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIGltZ0Vycm9yKGltYWdlKSB7
CisgICAgICAgICAgICBpbWFnZS5wYXJlbnROb2RlLiByZW1vdmVDaGlsZChpbWFnZSk7CisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQWRkaXRp
b25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9BZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjdkN2NmYTEy
YjM3ODEwODk2OGZjMDVjNzg2NWI5M2IzYWIwMGE5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0K
QEAgLTAsMCArMSwxMDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
bXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVdlYlZpZXcuaCIK
KworI2ltcG9ydCA8V2ViS2l0L0RPTS5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYlByZWZlcmVuY2Vz
UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShDT0NPQSkK
KworQGludGVyZmFjZSBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc1Rlc3QgOiBOU09iamVj
dCA8V2ViRnJhbWVMb2FkRGVsZWdhdGU+IHsKK30KK0BlbmQKKworc3RhdGljIGJvb2wgZGlkRmlu
aXNoTG9hZDsKKworQGltcGxlbWVudGF0aW9uIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVz
VGVzdAorCistICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgZGlkRmluaXNoTG9hZEZv
ckZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCit7CisgICAgZGlkRmluaXNoTG9hZCA9IHRydWU7Cit9
CitAZW5kCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworc3RhdGljIHZvaWQgcnVuVGVz
dChOU0FycmF5ICphZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcywgQm9vbGVhbiBleHBlY3Rl
ZFRvTG9hZCkKK3sKKyAgICBSZXRhaW5QdHI8V2ViUHJlZmVyZW5jZXM+IHByZWZlcmVuY2VzID0g
YWRvcHROUyhbW1dlYlByZWZlcmVuY2VzIGFsbG9jXSBpbml0V2l0aElkZW50aWZpZXI6bmlsXSk7
CisgICAgW3ByZWZlcmVuY2VzIHNldEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzOmFkZGl0
aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzXTsKKworICAgIFJldGFpblB0cjxXZWJWaWV3PiB3ZWJW
aWV3ID0gYWRvcHROUyhbW1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCAxMjAsIDIwMCkgZnJhbWVOYW1lOm5pbCBncm91cE5hbWU6bmlsXSk7CisgICAgW3dlYlZp
ZXcgc2V0UHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAgUmV0YWluUHRyPEFk
ZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzVGVzdD4gdGVzdENvbnRyb2xsZXIgPSBhZG9wdE5T
KFtBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc1Rlc3QgbmV3XSk7CisgICAgd2ViVmlldy5n
ZXQoKS5mcmFtZUxvYWREZWxlZ2F0ZSA9IHRlc3RDb250cm9sbGVyLmdldCgpOworCisgICAgUmV0
YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNv
dXJjZTpAIkFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIiB3aXRoRXh0ZW5zaW9uOkAiaHRt
bCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKyAgICBbW3dlYlZp
ZXcuZ2V0KCkgbWFpbkZyYW1lXSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRo
VVJMOnRlc3RVUkwuZ2V0KCldXTsKKworICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7Cisg
ICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOworCisgICAgRE9NRG9jdW1lbnQgKmRvY3VtZW50ID0g
d2ViVmlldy5nZXQoKS5tYWluRnJhbWVEb2N1bWVudDsKKyAgICBET01FbGVtZW50ICpkb2N1bWVu
dEVsZW1lbnQgPSBbZG9jdW1lbnQgZG9jdW1lbnRFbGVtZW50XTsKKworICAgIERPTUhUTUxJbWFn
ZUVsZW1lbnQgKmltYWdlID0gKERPTUhUTUxJbWFnZUVsZW1lbnQgKilbZG9jdW1lbnRFbGVtZW50
IHF1ZXJ5U2VsZWN0b3I6QCJpbWciXTsKKyAgICBFWFBFQ1RfRVEoaW1hZ2UgIT0gbnVsbHB0ciwg
ZXhwZWN0ZWRUb0xvYWQpOworICAgIGlmIChpbWFnZSkKKyAgICAgICAgRVhQRUNUX0VRKFtpbWFn
ZSB3aWR0aF0sIDEwMCk7Cit9CisKK1RFU1QoV2ViS2l0TGVnYWN5LCBBZGRpdGlvbmFsU3VwcG9y
dGVkU3RyaW5nSW1hZ2VUeXBlKQoreworICAgIHJ1blRlc3QoQFtAImNvbS50cnVldmlzaW9uLnRn
YS1pbWFnZSJdLCB0cnVlKTsKK30KKworVEVTVChXZWJLaXRMZWdhY3ksIEFkZGl0aW9uYWxCb2d1
c1N0cmluZ0ltYWdlVHlwZSkKK3sKKyAgICBydW5UZXN0KEBbQCJwdWJsaWMuYm9ndXMiXSwgZmFs
c2UpOworfQorCitURVNUKFdlYktpdExlZ2FjeSwgQWRkaXRpb25hbEVtcHR5QXJyYXlJbWFnZVR5
cGUpCit7CisgICAgcnVuVGVzdChAW10sIGZhbHNlKTsKK30KKworVEVTVChXZWJLaXRMZWdhY3ks
IEFkZGl0aW9uYWxBcnJ5T2ZOdWxsSW1hZ2VUeXBlKQoreworICAgIHJ1blRlc3QoQFtbTlNOdWxs
IG51bGxdXSwgZmFsc2UpOworfQorCitURVNUKFdlYktpdExlZ2FjeSwgQWRkaXRpb25hbEFycmF5
T2ZBcnJheUltYWdlVHlwZSkKK3sKKyAgICBydW5UZXN0KEBbQFtAImNvbS50cnVldmlzaW9uLnRn
YS1pbWFnZSJdXSwgZmFsc2UpOworfQorCit9CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361114</attachid>
            <date>2019-02-04 15:43:20 -0800</date>
            <delta_ts>2019-02-04 15:51:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194190-20190204154319.patch</filename>
            <type>text/plain</type>
            <size>28466</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MDk0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE5LTAyLTA0ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtDR10gRW5hYmxlIHNldEFk
ZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIGZvciBXSzEKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDE5MAorCisgICAgICAgIFJldmlld2VkIGJ5
IFRpbSBIb3J0b24uCisKKyAgICAgICAgTW92ZSB0aGUgZnVuY3Rpb24gd2ViQ29yZVN0cmluZ1Zl
Y3RvckZyb21OU1N0cmluZ0FycmF5IGZyb20gV2ViS2l0IHRvCisgICAgICAgIFdlYkNvcmUgc28g
aXQgY2FuIGJlIHVzZWQgYnkgYm90aCBXZWJLaXQgYW5kIFdlYktpdExlZ2FjeS4KKworICAgICAg
ICAqIHBsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvU3RyaW5nVXRpbGl0aWVzLm1tOgorICAgICAgICAoV2ViQ29yZTo6d2ViQ29yZVN0cmluZ1Zl
Y3RvckZyb21OU1N0cmluZ0FycmF5KToKKwogMjAxOS0wMi0wNCAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBc3luYyBvdmVyZmxvdyBzY3JvbGwgd2l0
aCBib3JkZXItcmFkaXVzIHJlbmRlcnMgaW5jb3JyZWN0bHkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLmgJKHJldmlzaW9uIDI0MDk0MSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtMjksNSArMjksMTEgQEAKICNpbXBvcnQgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKKwogV0VCQ09SRV9FWFBPUlQgYm9vbCBzdHJpbmdNYXRjaGVzV2lsZGNh
cmRTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmdUb0JlTWF0Y2hlZCwgY29uc3QgU3RyaW5nJiB3
aWxkY2FyZFN0cmluZyk7CisKKyNpZmRlZiBfX09CSkNfXworV0VCQ09SRV9FWFBPUlQgVmVjdG9y
PFN0cmluZz4gd2ViQ29yZVN0cmluZ1ZlY3RvckZyb21OU1N0cmluZ0FycmF5KE5TQXJyYXk8TlNT
dHJpbmcgKj4gKik7CisjZW5kaWYgLy8gZGVmaW5lZChfX09CSkNfXykKKwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tCShyZXZpc2lv
biAyNDA5NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVz
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC01OSw0ICs1OSwxNSBAQCBib29sIHN0cmluZ01hdGNoZXNX
aWxkY2FyZFN0cmluZyhjb25zdCBTCiAgICAgcmV0dXJuIEpTQzo6WWFycjo6UmVndWxhckV4cHJl
c3Npb24od2lsZGNhcmRSZWdleFBhdHRlcm5TdHJpbmcod2lsZGNhcmRTdHJpbmcpLCBKU0M6Ollh
cnI6OlRleHRDYXNlSW5zZW5zaXRpdmUpLm1hdGNoKHN0cmluZykgIT0gLTE7CiB9CiAKK1ZlY3Rv
cjxTdHJpbmc+IHdlYkNvcmVTdHJpbmdWZWN0b3JGcm9tTlNTdHJpbmdBcnJheShOU0FycmF5PE5T
U3RyaW5nICo+ICpuc1N0cmluZ0FycmF5KQoreworICAgIFZlY3RvcjxTdHJpbmc+IHN0cmluZ1Zl
Y3RvcjsKKyAgICBzdHJpbmdWZWN0b3IucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShbbnNTdHJpbmdB
cnJheSBjb3VudF0pOworCisgICAgZm9yIChOU1N0cmluZyAqbnNTdHJpbmcgaW4gbnNTdHJpbmdB
cnJheSkKKyAgICAgICAgc3RyaW5nVmVjdG9yLnVuY2hlY2tlZEFwcGVuZChuc1N0cmluZyk7CisK
KyAgICByZXR1cm4gc3RyaW5nVmVjdG9yOworfQorCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24g
MjQwOTQxKQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxOSBAQAorMjAxOS0wMi0wNCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNv
bT4KKworICAgICAgICBbQ0ddIEVuYWJsZSBzZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBl
cyBmb3IgV0sxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTQxOTAKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIE1v
dmUgdGhlIGZ1bmN0aW9uIHdlYkNvcmVTdHJpbmdWZWN0b3JGcm9tTlNTdHJpbmdBcnJheSBmcm9t
IFdlYktpdCB0bworICAgICAgICBXZWJDb3JlIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IGJvdGggV2Vi
S2l0IGFuZCBXZWJLaXRMZWdhY3kuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9tYWMvU3RyaW5nVXRp
bGl0aWVzLmg6CisgICAgICAgICogUGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbToKKyAg
ICAgICAgKFdlYktpdDo6d2ViQ29yZVN0cmluZ1ZlY3RvckZyb21OU1N0cmluZ0FycmF5KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246XSk6CisKIDIwMTkt
MDItMDQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAg
UGFnZU92ZXJsYXlDb250cm9sbGVyJ3MgbGF5ZXJzIHNob3VsZCBiZSBjcmVhdGVkIGxhemlseQpJ
bmRleDogU291cmNlL1dlYktpdC9QbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLmgJKHJl
dmlzaW9uIDI0MDk0MSkKKysrIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxp
dGllcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw4ICszNyw2IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogTlNTdHJpbmcgKm5zU3RyaW5nRnJvbVdlYkNvcmVTdHJpbmcoY29uc3QgU3RyaW5nJik7CiBO
U1N0cmluZyAqZm9ybWF0dGVkUGhvbmVOdW1iZXJTdHJpbmcoTlNTdHJpbmcgKm9yaWdpbmFsUGhv
bmVOdW1iZXIpOwogCi1WZWN0b3I8U3RyaW5nPiB3ZWJDb3JlU3RyaW5nVmVjdG9yRnJvbU5TU3Ry
aW5nQXJyYXkoTlNBcnJheTxOU1N0cmluZyAqPiAqKTsKLQogI2VuZGlmIC8vIGRlZmluZWQoX19P
QkpDX18pCiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxp
dGllcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL21hYy9TdHJpbmdV
dGlsaXRpZXMubW0JKHJldmlzaW9uIDI0MDk0MSkKKysrIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
bWFjL1N0cmluZ1V0aWxpdGllcy5tbQkod29ya2luZyBjb3B5KQpAQCAtODIsMTUgKzgyLDQgQEAg
TlNTdHJpbmcgKmZvcm1hdHRlZFBob25lTnVtYmVyU3RyaW5nKE5TUwogCiAjZW5kaWYgLy8gRU5B
QkxFKFRFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAmJiBQTEFURk9STShNQUMpCiAKLVZlY3Rv
cjxTdHJpbmc+IHdlYkNvcmVTdHJpbmdWZWN0b3JGcm9tTlNTdHJpbmdBcnJheShOU0FycmF5PE5T
U3RyaW5nICo+ICpuc1N0cmluZ0FycmF5KQotewotICAgIFZlY3RvcjxTdHJpbmc+IHN0cmluZ1Zl
Y3RvcjsKLSAgICBzdHJpbmdWZWN0b3IucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShbbnNTdHJpbmdB
cnJheSBjb3VudF0pOwotCi0gICAgZm9yIChOU1N0cmluZyAqbnNTdHJpbmcgaW4gbnNTdHJpbmdB
cnJheSkKLSAgICAgICAgc3RyaW5nVmVjdG9yLnVuY2hlY2tlZEFwcGVuZChuc1N0cmluZyk7Ci0K
LSAgICByZXR1cm4gc3RyaW5nVmVjdG9yOwotfQotCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHJldmlzaW9uIDI0MDk0MSkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTUxLDcgKzUxLDYgQEAKICNpbXBvcnQgIlJlbW90ZU9iamVjdFJlZ2lzdHJ5Lmgi
CiAjaW1wb3J0ICJSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJTYWZl
QnJvd3NpbmdXYXJuaW5nLmgiCi0jaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKICNpbXBvcnQg
IlVJRGVsZWdhdGUuaCIKICNpbXBvcnQgIlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmgiCiAjaW1w
b3J0ICJWZXJzaW9uQ2hlY2tzLmgiCkBAIC0xMTIsNiArMTExLDcgQEAKICNpbXBvcnQgPFdlYkNv
cmUvU2NoZW1lUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBv
cnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL1N0cmluZ1V0aWxp
dGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9WYWxpZGF0aW9uQnViYmxlLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dyaXRpbmdNb2Rl
Lmg+CkBAIC01ODMsNyArNTgzLDcgQEAgLSAodm9pZClfaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0
aW9uOihXSwogICAgICAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFBhZ2VHcm91cChXZWJL
aXQ6OldlYlBhZ2VHcm91cDo6Y3JlYXRlKGNvbmZpZ3VyYXRpb24uX2dyb3VwSWRlbnRpZmllciku
cHRyKCkpOwogICAgIH0KIAotICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRBZGRpdGlvbmFsU3Vw
cG9ydGVkSW1hZ2VUeXBlcyhXZWJLaXQ6OndlYkNvcmVTdHJpbmdWZWN0b3JGcm9tTlNTdHJpbmdB
cnJheShbX2NvbmZpZ3VyYXRpb24gX2FkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzXSkpOwor
ICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyhX
ZWJDb3JlOjp3ZWJDb3JlU3RyaW5nVmVjdG9yRnJvbU5TU3RyaW5nQXJyYXkoW19jb25maWd1cmF0
aW9uIF9hZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc10pKTsKIAogICAgIHBhZ2VDb25maWd1
cmF0aW9uLT5wcmVmZXJlbmNlVmFsdWVzKCkuc2V0KFdlYktpdDo6V2ViUHJlZmVyZW5jZXNLZXk6
OnN1cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZ0tleSgpLCBXZWJLaXQ6OldlYlByZWZlcmVu
Y2VzU3RvcmU6OlZhbHVlKCEhW19jb25maWd1cmF0aW9uIHN1cHByZXNzZXNJbmNyZW1lbnRhbFJl
bmRlcmluZ10pKTsKIApJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24g
MjQwOTQxKQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTktMDItMDQgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fp
ZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NHXSBFbmFibGUgc2V0QWRkaXRpb25hbFN1cHBvcnRl
ZEltYWdlVHlwZXMgZm9yIFdLMQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk0MTkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKwor
ICAgICAgICAxLiBEZWZpbmUgdGhlIHByZWZlcmVuY2VzIGtleSBBZGRpdGlvbmFsU3VwcG9ydGVk
SW1hZ2VUeXBlcy4KKyAgICAgICAgMi4gQWRkIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVz
IGFzIGEgcHJpdmF0ZSBwcmVmZXJlbmNlIHByb3BlcnR5LgorICAgICAgICAzLiBEZWZpbmUgdGhl
IHNldHRlciBhbmQgdGhlIGdldHRlciBvZiB0aGUgcHJvcGVydHkuCisgICAgICAgIDQuIEFkZCBm
dW5jdGlvbiB0byBjb252ZXJ0IGZyb20gYW4gaWQgdG8gYW4gYXJyYXkgb2Ygc3RyaW5ncy4KKyAg
ICAgICAgNS4gQ2FsbCBXZWJDb3JlOjpzZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyB3
aGVuIHByZWZlcmVuY2VzIGNoYW5nZS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5j
ZUtleXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAg
ICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgX3N0cmluZ0FycmF5VmFsdWVGb3JLZXk6XSk6CisgICAg
ICAgICgtW1dlYlByZWZlcmVuY2VzIF9zZXRTdHJpbmdBcnJheVZhbHVlRm9yS2V5OmZvcktleTpd
KToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdl
VHlwZXM6XSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIGFkZGl0aW9uYWxTdXBwb3J0ZWRJ
bWFnZVR5cGVzXSk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZl
cmVuY2VzQ2hhbmdlZDpdKToKKwogMjAxOS0wMi0wNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBQYWdlT3ZlcmxheUNvbnRyb2xsZXIncyBsYXllcnMg
c2hvdWxkIGJlIGNyZWF0ZWQgbGF6aWx5CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgJKHJldmlz
aW9uIDI0MDk0MSkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZUtleXNQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY2LDYgKzY2LDcgQEAKICNkZWZp
bmUgV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlc1ByZWZlcmVuY2VLZXkgQCJXZWJLaXRBbGxvd0Fu
aW1hdGVkSW1hZ2VzUHJlZmVyZW5jZUtleSIKICNkZWZpbmUgV2ViS2l0QWxsb3dBbmltYXRlZElt
YWdlTG9vcGluZ1ByZWZlcmVuY2VLZXkgQCJXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VMb29waW5n
UHJlZmVyZW5jZUtleSIKICNkZWZpbmUgV2ViS2l0RGlzcGxheUltYWdlc0tleSBAIldlYktpdERp
c3BsYXlJbWFnZXNLZXkiCisjZGVmaW5lIFdlYktpdEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5
cGVzS2V5ICBAIldlYktpdEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzS2V5IgogI2RlZmlu
ZSBXZWJLaXRMb2FkU2l0ZUljb25zS2V5IEAiV2ViS2l0TG9hZFNpdGVJY29uc0tleSIKICNkZWZp
bmUgV2ViS2l0QmFja0ZvcndhcmRDYWNoZUV4cGlyYXRpb25JbnRlcnZhbEtleSBAIldlYktpdEJh
Y2tGb3J3YXJkQ2FjaGVFeHBpcmF0aW9uSW50ZXJ2YWxLZXkiCiAjaWYgIVRBUkdFVF9PU19JUEhP
TkUKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlcy5tbQkocmV2aXNpb24gMjQwOTQxKQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzU3LDYgKzc1Nywz
NiBAQCAtICh2b2lkKV9zZXRTdHJpbmdWYWx1ZTooTlNTdHJpbmcgKil2YWx1CiAgICAgW3NlbGYg
X3Bvc3RQcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb25dOwogfQogCistIChOU0FycmF5PE5T
U3RyaW5nICo+ICopX3N0cmluZ0FycmF5VmFsdWVGb3JLZXk6KE5TU3RyaW5nICopa2V5Cit7Cisg
ICAgaWQgdmFsdWUgPSBbc2VsZiBfdmFsdWVGb3JLZXk6a2V5XTsKKyAgICBpZiAoIVt2YWx1ZSBp
c0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCisgICAgICAgIHJldHVybiBuaWw7CisKKyAg
ICBOU0FycmF5ICphcnJheSA9IChOU0FycmF5ICopdmFsdWU7CisgICAgZm9yIChpZCBvYmplY3Qg
aW4gYXJyYXkpIHsKKyAgICAgICAgaWYgKCFbb2JqZWN0IGlzS2luZE9mQ2xhc3M6W05TU3RyaW5n
IGNsYXNzXV0pCisgICAgICAgICAgICByZXR1cm4gbmlsOworICAgIH0KKworICAgIHJldHVybiAo
TlNBcnJheTxOU1N0cmluZyAqPiAqKWFycmF5OworfQorCistICh2b2lkKV9zZXRTdHJpbmdBcnJh
eVZhbHVlRm9yS2V5OihOU0FycmF5PE5TU3RyaW5nICo+ICopdmFsdWUgZm9yS2V5OihOU1N0cmlu
ZyAqKWtleQoreworICAgIE5TU3RyaW5nICpfa2V5ID0gS0VZKGtleSk7CisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyAgICBkaXNwYXRjaF9iYXJyaWVyX3N5bmMoX3ByaXZhdGUtPnJlYWRXcml0
ZVF1ZXVlLCBeeworI2VuZGlmCisgICAgICAgIFtfcHJpdmF0ZS0+dmFsdWVzLmdldCgpIHNldE9i
amVjdDp2YWx1ZSBmb3JLZXk6X2tleV07CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB9
KTsKKyNlbmRpZgorICAgIGlmIChfcHJpdmF0ZS0+YXV0b3NhdmVzKQorICAgICAgICBbW05TVXNl
ckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRPYmplY3Q6dmFsdWUgZm9yS2V5Ol9r
ZXldOworICAgIFtzZWxmIF9wb3N0UHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uXTsKK30K
KwogLSAoaW50KV9pbnRlZ2VyVmFsdWVGb3JLZXk6KE5TU3RyaW5nICopa2V5CiB7CiAgICAgaWQg
byA9IFtzZWxmIF92YWx1ZUZvcktleTprZXldOwpAQCAtMTE1OSw2ICsxMTg5LDE2IEBAIC0gKEJP
T0wpbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVG
b3JLZXk6IFdlYktpdERpc3BsYXlJbWFnZXNLZXldOwogfQogCistICh2b2lkKXNldEFkZGl0aW9u
YWxTdXBwb3J0ZWRJbWFnZVR5cGVzOihOU0FycmF5PE5TU3RyaW5nKj4gKilpbWFnZVR5cGVzCit7
CisgICAgW3NlbGYgX3NldFN0cmluZ0FycmF5VmFsdWVGb3JLZXk6aW1hZ2VUeXBlcyBmb3JLZXk6
V2ViS2l0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXNLZXldOworfQorCistIChOU0FycmF5
PE5TU3RyaW5nICo+ICopYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMKK3sKKyAgICByZXR1
cm4gW3NlbGYgX3N0cmluZ0FycmF5VmFsdWVGb3JLZXk6V2ViS2l0QWRkaXRpb25hbFN1cHBvcnRl
ZEltYWdlVHlwZXNLZXldOworfQorCiAtICh2b2lkKXNldEF1dG9zYXZlczooQk9PTClmbGFnCiB7
CiAgICAgX3ByaXZhdGUtPmF1dG9zYXZlcyA9IGZsYWc7CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgJKHJl
dmlzaW9uIDI0MDk0MSkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTYyNiw0ICs2MjYsNyBAQCBAaW50
ZXJmYWNlIFdlYlByZWZlcmVuY2VzIChXZWJQcml2YXRlKQogCiBAcHJvcGVydHkgKG5vbmF0b21p
YykgTlNTdHJpbmcgKm1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0Owog
CisvLyBhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyBpcyBhbiBhcnJheSBvZiBpbWFnZSBV
VElzLgorQHByb3BlcnR5IChub25hdG9taWMsIHJldGFpbikgTlNBcnJheTxOU1N0cmluZyAqPiAq
YWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXM7CisKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHJldmlzaW9uIDI0MDk0MSkKKysrIFNv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpA
QCAtMjA0LDkgKzIwNCwxMSBAQAogI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9TaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaD4KICNpbXBvcnQgPFdlYkNv
cmUvU29ja2V0UHJvdmlkZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU3RyaW5nVXRpbGl0aWVzLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1N0eWxlUHJvcGVydGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9U
ZXh0UmVzb3VyY2VEZWNvZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL1VUSVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VzZXJBZ2Vu
dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Vc2VyQ29udGVudENvbnRyb2xsZXIuaD4KICNpbXBvcnQg
PFdlYkNvcmUvVXNlckdlc3R1cmVJbmRpY2F0b3IuaD4KQEAgLTI4NjUsNiArMjg2Nyw5IEBAIC0g
KHZvaWQpX3ByZWZlcmVuY2VzQ2hhbmdlZDooV2ViUHJlZmVyZW4KICAgICBzZXR0aW5ncy5zZXRT
dGFuZGFyZEZvbnRGYW1pbHkoW3ByZWZlcmVuY2VzIHN0YW5kYXJkRm9udEZhbWlseV0pOwogICAg
IHNldHRpbmdzLnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShbcHJlZmVyZW5jZXMgbG9hZHNJ
bWFnZXNBdXRvbWF0aWNhbGx5XSk7CiAgICAgc2V0dGluZ3Muc2V0TG9hZHNTaXRlSWNvbnNJZ25v
cmluZ0ltYWdlTG9hZGluZ1NldHRpbmcoW3ByZWZlcmVuY2VzIGxvYWRzU2l0ZUljb25zSWdub3Jp
bmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlXSk7CisKKyAgICBXZWJDb3JlOjpzZXRBZGRpdGlvbmFs
U3VwcG9ydGVkSW1hZ2VUeXBlcyhXZWJDb3JlOjp3ZWJDb3JlU3RyaW5nVmVjdG9yRnJvbU5TU3Ry
aW5nQXJyYXkoW3ByZWZlcmVuY2VzIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzXSkpOwor
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBzZXR0aW5ncy5zZXRTaG91bGRQcmludEJh
Y2tncm91bmRzKHRydWUpOwogI2Vsc2UKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MDk0MSkKKysrIFRvb2xzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE5LTAyLTA0ICBTYWlkIEFib3Ut
SGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtDR10gRW5hYmxlIHNldEFkZGl0
aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIGZvciBXSzEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDE5MAorCisgICAgICAgIFJldmlld2VkIGJ5IFRp
bSBIb3J0b24uCisKKyAgICAgICAgQWRkIGEgdGVzdCBzaW1pbGFyIHRvIHRoZSBvbmUgdW5kZXIg
V2ViS2l0IENvY29hIGJ1dCBtYWtlIGl0IGNyZWF0ZSBhCisgICAgICAgIFdlYlZpZXcgaW5zdGVh
ZCBvZiBhIFdLV2ViVmlldy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjLzEwMHgxMDAtcmVkLnRnYTogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlw
ZXMubW06IEFkZGVkLgorICAgICAgICAoLVtBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc1Rl
c3Qgd2ViVmlldzpkaWRGaW5pc2hMb2FkRm9yRnJhbWU6XSk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpydW5UZXN0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE5LTAy
LTA0ICBEZWFuIEpvaG5zb24gIDxkZWFuX2pvaG5zb25AYXBwbGUuY29tPgogCiAgICAgICAgIFJF
R1JFU1NJT04gKHIyMzcyNjkpOiB3ZWJraXQtcGF0Y2ggd2hhdC1icm9rZSBpcyBicm9rZW4gCklu
ZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjQwOTQxKQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTI2Myw2ICsyNjMsNyBAQAogCQk1NUE4MTdGQzIxODEwMEUwMDAwNEEzOUEg
LyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUE4MTdGQjIxODEwMEUwMDAwNEEzOUEgLyogQWRk
aXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gKi87IH07CiAJCTU1QTgxN0ZGMjE4MTAyMUEw
MDA0QTM5QSAvKiAxMDB4MTAwLXJlZC50Z2EgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVBODE3RkUyMTgxMDFERjAwMDRBMzlBIC8qIDEwMHgx
MDAtcmVkLnRnYSAqLzsgfTsKIAkJNTVBODE4MDAyMTgxMDIyMTAwMDRBMzlBIC8qIDQwMHg0MDAt
Z3JlZW4ucG5nIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU1QTgxN0ZEMjE4MTAxREYwMDA0QTM5QSAvKiA0MDB4NDAwLWdyZWVuLnBuZyAqLzsg
fTsKKwkJNTVGOUQyRTUyMjA1MDMxODAwQTlBQjM4IC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFn
ZVR5cGVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTVGOUQyRTQyMjA1MDMxODAwQTlBQjM4IC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVz
Lm1tICovOyB9OwogCQk1NzE0RUNCOTFDQThCNUIwMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0
T3JpZ2luYWxVUkwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NzE0RUNCODFDQThCNTg4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0
T3JpZ2luYWxVUkwuaHRtbCAqLzsgfTsKIAkJNTcxNEVDQkIxQ0E4QkZFNDAwMDUxQUM4IC8qIERv
d25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzE0RUNCQTFDQThCRkQxMDAwNTFBQzgg
LyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sICovOyB9OwogCQk1NzE0RUNC
RDFDQThDMjJBMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxNEVD
QkMxQ0E4QzIxODAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMMi5odG1sICov
OyB9OwpAQCAtMzQwLDYgKzM0MSw4IEBACiAJCTZCMzA2MTA2MjE4QTM3MjkwMEY1QTgwMiAvKiBD
bG9zaW5nV2ViVmlldy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZCMzA2MTA1MjE4QTM3MjkwMEY1QTgwMiAvKiBDbG9zaW5nV2ViVmlldy5tbSAqLzsg
fTsKIAkJNkI5QUJFMTIyMDg2OTUyRjAwRDc1REU2IC8qIEhUVFBQYXJzZXJzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCOUFCRTExMjA4Njk1MkYw
MEQ3NURFNiAvKiBIVFRQUGFyc2Vycy5jcHAgKi87IH07CiAJCTZCRkQyOTRDMUQ1RTZDMUQwMDhF
Qzk2OCAvKiBIYXNoQ291bnRlZFNldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QTM4RDdFNTFDNzUyRDVGMDA0RjE1N0QgLyogSGFzaENvdW50ZWRT
ZXQuY3BwICovOyB9OworCQk3MjVDM0VFRjIyMDU3MEJFMDA3QzM2RkMgLyogMTAweDEwMC1yZWQu
dGdhIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcyNUMzRUVFMjIwNTcwMDUwMDdDMzZGQyAvKiAxMDB4MTAwLXJlZC50Z2EgKi87IH07CisJCTcy
NUMzRUYzMjIwNThBNUIwMDdDMzZGQyAvKiBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcyNUMzRUYyMjIwNTg0QkEwMDdDMzZGQyAvKiBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBl
cy5odG1sICovOyB9OwogCQk3NTFCMDVENjFGOEVBQzQxMDAyOEEwOUUgLyogRGF0YWJhc2VUcmFj
a2VyVGVzdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc1MUIwNUQ1MUY4RUFDMUEwMDI4QTA5RSAvKiBEYXRhYmFzZVRyYWNrZXJUZXN0Lm1tICovOyB9
OwogCQk3NTRDRUM4MTFGNjcyMkYyMDBEMDAzOUEgLyogQXV0b0ZpbGxBdmFpbGFibGUubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTRDRUM4MDFGNjcy
MkRDMDBEMDAzOUEgLyogQXV0b0ZpbGxBdmFpbGFibGUubW0gKi87IH07CiAJCTc2NzM0OTlEMTkz
MEM1QkIwMEU0NERGOSAvKiBTdG9wTG9hZGluZ0R1cmluZ0RpZEZhaWxQcm92aXNpb25hbExvYWRf
YnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc2NzM0OTlBMTkzMDE4MkUwMEU0NERGOSAvKiBTdG9wTG9hZGluZ0R1cmluZ0RpZEZhaWxQcm92
aXNpb25hbExvYWRfYnVuZGxlLmNwcCAqLzsgfTsKQEAgLTk5MywxMCArOTk2LDEyIEBACiAJCQlk
c3RQYXRoID0gVGVzdFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0g
NzsKIAkJCWZpbGVzID0gKAorCQkJCTcyNUMzRUVGMjIwNTcwQkUwMDdDMzZGQyAvKiAxMDB4MTAw
LXJlZC50Z2EgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTVBODE3RkYyMTgxMDIxQTAwMDRB
MzlBIC8qIDEwMHgxMDAtcmVkLnRnYSBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkxQTlFNTJD
OTEzRTY1RUY0MDA2OTE3RjUgLyogMTgtY2hhcmFjdGVycy5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTU1QTgxODAwMjE4MTAyMjEwMDA0QTM5QSAvKiA0MDB4NDAwLWdyZWVuLnBuZyBp
biBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkzNzkwMjhCOTE0RkFDMjRDMDA3RTZCNDMgLyogYWNj
ZXB0c0ZpcnN0TW91c2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk3MjVDM0VGMzIy
MDU4QTVCMDA3QzM2RkMgLyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQkxQzJCODE4NzFDODkyNUEwMDBBNTUyOUYgLyogQWhlbS50
dGYgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMUE2MzQ3OUYxODNENzJBNDAwNUIxNzA3IC8q
IGFsbC1jb250ZW50LWluLW9uZS1pZnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJ
CQlDMjVDQ0EwRDFFNTE0MTg0MDAyNkNCOEEgLyogQWxsQWhlbS5zdmcgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCkBAIC0xNjM2LDYgKzE2NDEsNyBAQAogCQk1NUE4MTdGQjIxODEwMEUwMDAwNEEzOUEg
LyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTVBODE3RkQyMTgxMDFERjAwMDRBMzlBIC8qIDQwMHg0MDAtZ3JlZW4ucG5nICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5n
OyBwYXRoID0gIjQwMHg0MDAtZ3JlZW4ucG5nIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTVBODE3RkUyMTgxMDFERjAwMDRBMzlBIC8qIDEwMHgxMDAtcmVkLnRnYSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiMTAw
eDEwMC1yZWQudGdhIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTVGOUQyRTQyMjA1
MDMxODAwQTlBQjM4IC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcxNEVDQjgxQ0E4QjU4ODAwMDUxQUM4IC8qIERvd25sb2Fk
UmVxdWVzdE9yaWdpbmFsVVJMLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBEb3du
bG9hZFJlcXVlc3RPcmlnaW5hbFVSTC5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1NzE0RUNCQTFDQThCRkQxMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxG
cmFtZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRG93bmxvYWRSZXF1ZXN0T3Jp
Z2luYWxVUkxGcmFtZS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzE0RUNC
QzFDQThDMjE4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTDIuaHRt
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MTMsNiArMTcxOSw4IEBACiAJCTZC
MEEwN0Y2MjFGQTlDMkIwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQWRDbGlja0F0dHJpYnV0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNkIzMDYxMDUyMThBMzcyOTAwRjVBODAyIC8qIENsb3NpbmdXZWJWaWV3Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQ2xvc2luZ1dlYlZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZCOUFCRTExMjA4Njk1MkYwMEQ3NURFNiAvKiBIVFRQUGFyc2Vycy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBIVFRQUGFyc2Vycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTcyNUMzRUVFMjIwNTcwMDUwMDdDMzZGQyAvKiAxMDB4MTAwLXJlZC50Z2EgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRo
ID0gIjEwMHgxMDAtcmVkLnRnYSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyNUMz
RUYyMjIwNTg0QkEwMDdDMzZGQyAvKiBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlw
ZXMuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzUxQjA1RDUxRjhFQUMxQTAw
MjhBMDlFIC8qIERhdGFiYXNlVHJhY2tlclRlc3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBE
YXRhYmFzZVRyYWNrZXJUZXN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTRD
RUM4MDFGNjcyMkRDMDBEMDAzOUEgLyogQXV0b0ZpbGxBdmFpbGFibGUubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBBdXRvRmlsbEF2YWlsYWJsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzU2MDkxNzcxOTI1OUM1OTAwOUVGMDZFIC8qIE1lbW9yeUNhY2hlQWRkSW1hZ2VUb0Nh
Y2hlSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVtb3J5
Q2FjaGVBZGRJbWFnZVRvQ2FjaGVJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yNTEzLDcgKzI1MjEsNiBAQAogCQkJCUExMjU0NzhEMURCMThCOTQwMDM1ODU2NCAvKiBMb2Fk
RGF0YVdpdGhOaWxNSU1FVHlwZS5tbSAqLywKIAkJCQk0NjEyQzJCODIxMEE2QUJGMDBCNzg4QTYg
LyogTG9hZEZpbGVUaGVuUmVsb2FkLm1tICovLAogCQkJCTU3OTAxRkFDMUNBRjEyQzIwMEVENjRG
OSAvKiBMb2FkSW52YWxpZFVSTFJlcXVlc3QubW0gKi8sCi0JCQkJNTc3NEFBNjcyMUZCQkY3ODAw
QUYyQTFCIC8qIFRlc3RMb2FkT3B0aW1pemVyLm1tICovLAogCQkJCTUxRTZBODkyMUQyRjFCRUMw
MEMwMDRCNiAvKiBMb2NhbFN0b3JhZ2VDbGVhci5tbSAqLywKIAkJCQlDQTM4NDU5NTIwQUUwMTJF
MDA5OTBEM0IgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLm1tICovLAogCQkJCTQ2QzUx
OUQ4MUQzNTVBNzMwMERBQTUxQSAvKiBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5tbSAqLywKQEAg
LTI1NzQsNiArMjU4MSw3IEBACiAJCQkJNTE1QkUxNzAxRDQyOEJEMTAwREQ3QzY4IC8qIFN0b3Jl
QmxvYlRoZW5EZWxldGUubW0gKi8sCiAJCQkJMUM3MzRCNTIyMDc4OEM0ODAwRjQzMEVBIC8qIFN5
c3RlbUNvbG9ycy5tbSAqLywKIAkJCQkyRDcwMDU5NTIxRURBMEM2MDAzNDYzQ0IgLyogVGFiT3V0
T2ZXZWJWaWV3Lm1tICovLAorCQkJCTU3NzRBQTY3MjFGQkJGNzgwMEFGMkExQiAvKiBUZXN0TG9h
ZE9wdGltaXplci5tbSAqLywKIAkJCQlGNENENzRDNzIwRkRCNDk2MDBERTM3OTQgLyogVGVzdFVS
TFNjaGVtZUhhbmRsZXIuaCAqLywKIAkJCQlGNENENzRDODIwRkRCNDk2MDBERTM3OTQgLyogVGVz
dFVSTFNjaGVtZUhhbmRsZXIubW0gKi8sCiAJCQkJNUNCNDBCNEQxRjRCOThCRTAwN0RDN0I5IC8q
IFVJRGVsZWdhdGUubW0gKi8sCkBAIC0zNDEwLDYgKzM0MTgsNyBAQAogCQkJY2hpbGRyZW4gPSAo
CiAJCQkJQzA3RTZDQjAxM0ZENzM3QzAwMzhCMjJCIC8qIFJlc291cmNlcyAqLywKIAkJCQkzNzkw
MjhCNTE0RkFCRDkyMDA3RTZCNDMgLyogQWNjZXB0c0ZpcnN0TW91c2UubW0gKi8sCisJCQkJNTVG
OUQyRTQyMjA1MDMxODAwQTlBQjM4IC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1t
ICovLAogCQkJCUI1NUYxMTlGMTUxNjgzNEYwMDkxNTkxNiAvKiBBdHRyaWJ1dGVkU3RyaW5nLm1t
ICovLAogCQkJCTAwQ0Q5RjYyMTVCRTMxMkMwMDJEQTJDRSAvKiBCYWNrRm9yd2FyZExpc3QubW0g
Ki8sCiAJCQkJMUM3RkVCMUYyMDdDMEYyRDAwRDIzMjc4IC8qIEJhY2tncm91bmRDb2xvci5tbSAq
LywKQEAgLTM0ODQsNyArMzQ5Myw5IEBACiAJCUMwN0U2Q0IwMTNGRDczN0MwMDM4QjIyQiAvKiBS
ZXNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJ
CTcyNUMzRUVFMjIwNTcwMDUwMDdDMzZGQyAvKiAxMDB4MTAwLXJlZC50Z2EgKi8sCiAJCQkJMzc5
MDI4QjgxNEZBQkU0OTAwN0U2QjQzIC8qIGFjY2VwdHNGaXJzdE1vdXNlLmh0bWwgKi8sCisJCQkJ
NzI1QzNFRjIyMjA1ODRCQTAwN0MzNkZDIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVz
Lmh0bWwgKi8sCiAJCQkJQjU1RjExQjAxNTE3QTJDNDAwOTE1OTE2IC8qIGF0dHJpYnV0ZWRTdHJp
bmdDdXN0b21Gb250Lmh0bWwgKi8sCiAJCQkJN0M5RUQ5OEExN0ExOUQwNjAwRTREQzMzIC8qIGF0
dHJpYnV0ZWRTdHJpbmdTdHJpa2V0aHJvdWdoLmh0bWwgKi8sCiAJCQkJMjZERjVBNjExNUEyQTIy
QjAwMzY4OUMyIC8qIENhbmNlbExvYWRGcm9tUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCAqLywK
QEAgLTM5MDQsNiArMzkxNSw3IEBACiAJCQkJNkIwQTA3RjcyMUZBOUMyQjAwRDU3MzkxIC8qIEFk
Q2xpY2tBdHRyaWJ1dGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzN0U3REQ2NDFFQTA2RkYy
MDA5QjM5NkQgLyogQWRkaXRpb25hbFJlYWRBY2Nlc3NBbGxvd2VkVVJMcy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTU1QTgxN0ZDMjE4MTAwRTAwMDA0QTM5QSAvKiBBZGRpdGlvbmFsU3VwcG9ydGVk
SW1hZ2VUeXBlcy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTU1RjlEMkU1MjIwNTAzMTgwMEE5QUIz
OCAvKiBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTdBOTA5QTdEMUQ4Nzc0ODAwMDdFMTBGOCAvKiBBZmZpbmVUcmFuc2Zvcm0uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTFERjc0MzIxQzQxQjY1ODAwQTJGNEQwIC8qIEFsd2F5c1JldmFsaWRhdGVk
VVJMU2NoZW1lcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJERTcxQUZFMUQ0OUMwQkQwMDkwNDA5
NCAvKiBBbmltYXRlZFJlc2l6ZS5tbSBpbiBTb3VyY2VzICovLApAQCAtNDI0MSw2ICs0MjUzLDcg
QEAKIAkJCQlGNEY1QkI1MjIxNjY3QkFBMDAyRDA2QjkgLyogVGVzdEZvbnRPcHRpb25zLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRjQ1RTE1NzYyMTEyQ0U2MjAwMzA3RTgyIC8qIFRlc3RJbnB1dERl
bGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ1RDM4OTEyMTVBN0I0QjAwMkEyOTc5IC8q
IFRlc3RJbnNwZWN0b3JCYXIubW0gaW4gU291cmNlcyAqLywKKwkJCQk1Nzc0QUE2ODIxRkJCRjc4
MDBBRjJBMUIgLyogVGVzdExvYWRPcHRpbWl6ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDFD
MDRBNzFENzYyOThCMDAwQTY4MTYgLyogVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUExNEZDNTkwMUI4QUUzNkYwMEQxMDdFQiAvKiBUZXN0UHJvdG9jb2wubW0g
aW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VBRTFBNDExQTM0MDA0NDdDNEMgLyogVGVzdHNDb250
cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNDI1OSw3ICs0MjcyLDYgQEAKIAkJCQk3Q0NF
N0YyNzFBNDExQUY2MDA0NDdDNEMgLyogVXNlckNvbnRlbnRDb250cm9sbGVyLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0NDRTdGMkQxQTQxMUIxMDAwNDQ3QzRDIC8qIFVzZXJDb250ZW50VGVzdC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTdDODgyRTBBMUM4MEM3NjQwMDZCRjczMSAvKiBVc2VyQ29u
dGVudFdvcmxkLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTc3NEFBNjgyMUZCQkY3ODAwQUYyQTFC
IC8qIFRlc3RMb2FkT3B0aW1pemVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDQjk5MjExRDNC
NDFGNjAwMzkyMkY2IC8qIFVzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW0g
aW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YxNzFBNDExQUU2MDA0NDdDNEMgLyogVXNlck1lZGlh
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTlDMzQ5MUVCQTJEN0IwMDNCNzUzMiAvKiBVc2Vy
TWVkaWFEaXNhYmxlZC5tbSBpbiBTb3VyY2VzICovLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9BZGRpdGlvbmFsU3VwcG9ydGVkSW1h
Z2VUeXBlcy5odG1sCShub25leGlzdGVudCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL0FkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorICAgIDxpbWcg
c3JjPSIxMDB4MTAwLXJlZC50Z2EiIG9uZXJyb3I9ImltZ0Vycm9yKHRoaXMpOyI+CisgICAgPHNj
cmlwdD4KKyAgICAgICAgZnVuY3Rpb24gaW1nRXJyb3IoaW1hZ2UpIHsKKyAgICAgICAgICAgIGlt
YWdlLnBhcmVudE5vZGUuIHJlbW92ZUNoaWxkKGltYWdlKTsKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9BZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBl
cy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9BZGRpdGlv
bmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9BZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlBsYXRmb3JtV2Vi
Vmlldy5oIgorCisjaW1wb3J0IDxXZWJLaXQvRE9NLmg+CisjaW1wb3J0IDxXZWJLaXQvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV2ViVmlld1ByaXZhdGUuaD4KKyNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworQGludGVyZmFjZSBBZGRpdGlvbmFsU3VwcG9ydGVk
SW1hZ2VUeXBlc1Rlc3QgOiBOU09iamVjdCA8V2ViRnJhbWVMb2FkRGVsZWdhdGU+IHsKK30KK0Bl
bmQKKworc3RhdGljIGJvb2wgZGlkRmluaXNoTG9hZDsKKworQGltcGxlbWVudGF0aW9uIEFkZGl0
aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzVGVzdAorCistICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcg
KilzZW5kZXIgZGlkRmluaXNoTG9hZEZvckZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCit7CisgICAg
ZGlkRmluaXNoTG9hZCA9IHRydWU7Cit9CitAZW5kCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
IHsKKworc3RhdGljIHZvaWQgcnVuVGVzdChOU0FycmF5ICphZGRpdGlvbmFsU3VwcG9ydGVkSW1h
Z2VUeXBlcywgQm9vbGVhbiBleHBlY3RlZFRvTG9hZCkKK3sKKyAgICBSZXRhaW5QdHI8V2ViUHJl
ZmVyZW5jZXM+IHByZWZlcmVuY2VzID0gYWRvcHROUyhbW1dlYlByZWZlcmVuY2VzIGFsbG9jXSBp
bml0V2l0aElkZW50aWZpZXI6bmlsXSk7CisgICAgW3ByZWZlcmVuY2VzIHNldEFkZGl0aW9uYWxT
dXBwb3J0ZWRJbWFnZVR5cGVzOmFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzXTsKKworICAg
IFJldGFpblB0cjxXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAxMjAsIDIwMCkgZnJhbWVOYW1lOm5pbCBncm91
cE5hbWU6bmlsXSk7CisgICAgW3dlYlZpZXcgc2V0UHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0
KCldOworCisgICAgUmV0YWluUHRyPEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzVGVzdD4g
dGVzdENvbnRyb2xsZXIgPSBhZG9wdE5TKFtBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc1Rl
c3QgbmV3XSk7CisgICAgd2ViVmlldy5nZXQoKS5mcmFtZUxvYWREZWxlZ2F0ZSA9IHRlc3RDb250
cm9sbGVyLmdldCgpOworCisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5
cGVzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXTsKKyAgICBbW3dlYlZpZXcuZ2V0KCkgbWFpbkZyYW1lXSBsb2FkUmVxdWVzdDpb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKworICAgIFV0aWw6
OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOworCisgICAg
RE9NRG9jdW1lbnQgKmRvY3VtZW50ID0gd2ViVmlldy5nZXQoKS5tYWluRnJhbWVEb2N1bWVudDsK
KyAgICBET01FbGVtZW50ICpkb2N1bWVudEVsZW1lbnQgPSBbZG9jdW1lbnQgZG9jdW1lbnRFbGVt
ZW50XTsKKworICAgIERPTUhUTUxJbWFnZUVsZW1lbnQgKmltYWdlID0gKERPTUhUTUxJbWFnZUVs
ZW1lbnQgKilbZG9jdW1lbnRFbGVtZW50IHF1ZXJ5U2VsZWN0b3I6QCJpbWciXTsKKyAgICBFWFBF
Q1RfRVEoaW1hZ2UgIT0gbnVsbHB0ciwgZXhwZWN0ZWRUb0xvYWQpOworICAgIGlmIChpbWFnZSkK
KyAgICAgICAgRVhQRUNUX0VRKFtpbWFnZSB3aWR0aF0sIDEwMCk7Cit9CisKK1RFU1QoV2ViS2l0
TGVnYWN5LCBBZGRpdGlvbmFsU3VwcG9ydGVkU3RyaW5nSW1hZ2VUeXBlKQoreworICAgIHJ1blRl
c3QoQFtAImNvbS50cnVldmlzaW9uLnRnYS1pbWFnZSJdLCB0cnVlKTsKK30KKworVEVTVChXZWJL
aXRMZWdhY3ksIEFkZGl0aW9uYWxCb2d1c1N0cmluZ0ltYWdlVHlwZSkKK3sKKyAgICBydW5UZXN0
KEBbQCJwdWJsaWMuYm9ndXMiXSwgZmFsc2UpOworfQorCitURVNUKFdlYktpdExlZ2FjeSwgQWRk
aXRpb25hbEVtcHR5QXJyYXlJbWFnZVR5cGUpCit7CisgICAgcnVuVGVzdChAW10sIGZhbHNlKTsK
K30KKworVEVTVChXZWJLaXRMZWdhY3ksIEFkZGl0aW9uYWxBcnJ5T2ZOdWxsSW1hZ2VUeXBlKQor
eworICAgIHJ1blRlc3QoQFtbTlNOdWxsIG51bGxdXSwgZmFsc2UpOworfQorCitURVNUKFdlYktp
dExlZ2FjeSwgQWRkaXRpb25hbEFycmF5T2ZBcnJheUltYWdlVHlwZSkKK3sKKyAgICBydW5UZXN0
KEBbQFtAImNvbS50cnVldmlzaW9uLnRnYS1pbWFnZSJdXSwgZmFsc2UpOworfQorCit9IC8vIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy8xMDB4MTAwLXJlZC50Z2EKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQg
YXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVh
bQoKUHJvcGVydHkgY2hhbmdlcyBvbjogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvMTAw
eDEwMC1yZWQudGdhCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTAsMCArMSAj
IworYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVy
dHkKCkFBQUtBQUFBQUFBQUFBQUFaQUJrQUNBbzR3QUEvLy9qQUFELy8rTUFBUC8vNHdBQS8vL2pB
QUQvLytNQUFQLy80d0FBLy8vakFBRC8KLytNQUFQLy80d0FBLy8vakFBRC8vK01BQVAvLzR3QUEv
Ly9qQUFELy8rTUFBUC8vNHdBQS8vL2pBQUQvLytNQUFQLy80d0FBLy8vagpBQUQvLytNQUFQLy80
d0FBLy8vakFBRC8vK01BQVAvLzR3QUEvLy9qQUFELy8rTUFBUC8vNHdBQS8vL2pBQUQvLytNQUFQ
Ly80d0FBCi8vL2pBQUQvLytNQUFQLy80d0FBLy8vakFBRC8vK01BQVAvLzR3QUEvLy9qQUFELy8r
TUFBUC8vNHdBQS8vL2pBQUQvLytNQUFQLy8KNHdBQS8vL2pBQUQvLytNQUFQLy80d0FBLy8vakFB
RC8vK01BQVAvLzR3QUEvLy9qQUFELy8rTUFBUC8vNHdBQS8vL2pBQUQvLytNQQpBUC8vNHdBQS8v
L2pBQUQvLytNQUFQLy80d0FBLy8vakFBRC8vK01BQVAvLzR3QUEvLy9qQUFELy8rTUFBUC8vNHdB
QS8vL2pBQUQvCi8rTUFBUC8vNHdBQS8vL2pBQUQvLytNQUFQLy80d0FBLy8vakFBRC8vK01BQVAv
LzR3QUEvLy9qQUFELy8rTUFBUC8vNHdBQS8vL2oKQUFELy8rTUFBUC8vNHdBQS8vL2pBQUQvLytN
QUFQLy80d0FBLy8vakFBRC8vK01BQVAvLzR3QUEvLy9qQUFELy8rTUFBUC8vNHdBQQovLy9qQUFE
Ly8rTUFBUC8vNHdBQS8vL2pBQUQvLytNQUFQLy80d0FBLy8vakFBRC8vK01BQVAvLzR3QUEvLy9q
QUFELy8rTUFBUC8vCjR3QUEvLzg9Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361115</attachid>
            <date>2019-02-04 15:51:52 -0800</date>
            <delta_ts>2019-02-04 16:47:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194190-20190204155152.patch</filename>
            <type>text/plain</type>
            <size>26621</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MDk0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE5LTAyLTA0ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtDR10gRW5hYmxlIHNldEFk
ZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIGZvciBXSzEKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDE5MAorCisgICAgICAgIFJldmlld2VkIGJ5
IFRpbSBIb3J0b24uCisKKyAgICAgICAgTW92ZSB0aGUgZnVuY3Rpb24gd2ViQ29yZVN0cmluZ1Zl
Y3RvckZyb21OU1N0cmluZ0FycmF5IGZyb20gV2ViS2l0IHRvCisgICAgICAgIFdlYkNvcmUgc28g
aXQgY2FuIGJlIHVzZWQgYnkgYm90aCBXZWJLaXQgYW5kIFdlYktpdExlZ2FjeS4KKworICAgICAg
ICAqIHBsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvU3RyaW5nVXRpbGl0aWVzLm1tOgorICAgICAgICAoV2ViQ29yZTo6d2ViQ29yZVN0cmluZ1Zl
Y3RvckZyb21OU1N0cmluZ0FycmF5KToKKwogMjAxOS0wMi0wNCAgSnVzdGluIEZhbiAgPGp1c3Rp
bl9mYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgR1BVXSBDb2RlIGNsZWFuLXVwIGZvciBS
ZW5kZXJQaXBlbGluZSBiYWNrZW5kCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U3RyaW5nVXRpbGl0aWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1N0cmluZ1V0aWxpdGllcy5oCShyZXZpc2lvbiAyNDA5NDcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDUg
KzI5LDExIEBACiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CisKIFdFQkNPUkVfRVhQT1JUIGJvb2wgc3RyaW5nTWF0Y2hlc1dpbGRjYXJkU3RyaW5nKGNvbnN0
IFN0cmluZyYgc3RyaW5nVG9CZU1hdGNoZWQsIGNvbnN0IFN0cmluZyYgd2lsZGNhcmRTdHJpbmcp
OworCisjaWZkZWYgX19PQkpDX18KK1dFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IHdlYkNv
cmVTdHJpbmdWZWN0b3JGcm9tTlNTdHJpbmdBcnJheShOU0FycmF5PE5TU3RyaW5nICo+ICopOwor
I2VuZGlmIC8vIGRlZmluZWQoX19PQkpDX18pCisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQkocmV2aXNpb24gMjQwOTQ3KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQkod29ya2luZyBj
b3B5KQpAQCAtNTksNCArNTksMTUgQEAgYm9vbCBzdHJpbmdNYXRjaGVzV2lsZGNhcmRTdHJpbmco
Y29uc3QgUwogICAgIHJldHVybiBKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uKHdpbGRjYXJk
UmVnZXhQYXR0ZXJuU3RyaW5nKHdpbGRjYXJkU3RyaW5nKSwgSlNDOjpZYXJyOjpUZXh0Q2FzZUlu
c2Vuc2l0aXZlKS5tYXRjaChzdHJpbmcpICE9IC0xOwogfQogCitWZWN0b3I8U3RyaW5nPiB3ZWJD
b3JlU3RyaW5nVmVjdG9yRnJvbU5TU3RyaW5nQXJyYXkoTlNBcnJheTxOU1N0cmluZyAqPiAqbnNT
dHJpbmdBcnJheSkKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiBzdHJpbmdWZWN0b3I7CisgICAgc3Ry
aW5nVmVjdG9yLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoW25zU3RyaW5nQXJyYXkgY291bnRdKTsK
KworICAgIGZvciAoTlNTdHJpbmcgKm5zU3RyaW5nIGluIG5zU3RyaW5nQXJyYXkpCisgICAgICAg
IHN0cmluZ1ZlY3Rvci51bmNoZWNrZWRBcHBlbmQobnNTdHJpbmcpOworCisgICAgcmV0dXJuIHN0
cmluZ1ZlY3RvcjsKK30KKwogfQpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MDk0NykKKysrIFNv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MTktMDItMDQgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAg
W0NHXSBFbmFibGUgc2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMgZm9yIFdLMQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MTkwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBNb3ZlIHRoZSBmdW5jdGlv
biB3ZWJDb3JlU3RyaW5nVmVjdG9yRnJvbU5TU3RyaW5nQXJyYXkgZnJvbSBXZWJLaXQgdG8KKyAg
ICAgICAgV2ViQ29yZSBzbyBpdCBjYW4gYmUgdXNlZCBieSBib3RoIFdlYktpdCBhbmQgV2ViS2l0
TGVnYWN5LgorCisgICAgICAgICogUGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5oOgorICAg
ICAgICAqIFBsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW06CisgICAgICAgIChXZWJLaXQ6
OndlYkNvcmVTdHJpbmdWZWN0b3JGcm9tTlNTdHJpbmdBcnJheSk6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmll
dyBfaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uOl0pOgorCiAyMDE5LTAyLTA0ICBCZW5qYW1p
biBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgZGVmZXJyYWJs
ZSB0aW1lciB0byByZXN0YXJ0IHRoZSBSZXNwb25zaXZlbmVzcyBUaW1lciBvbiBlYWNoIHdoZWVs
IGV2ZW50CkluZGV4OiBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRp
ZXMuaAkocmV2aXNpb24gMjQwOTQ3KQorKysgU291cmNlL1dlYktpdC9QbGF0Zm9ybS9tYWMvU3Ry
aW5nVXRpbGl0aWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDggKzM3LDYgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiBOU1N0cmluZyAqbnNTdHJpbmdGcm9tV2ViQ29yZVN0cmluZyhjb25zdCBTdHJp
bmcmKTsKIE5TU3RyaW5nICpmb3JtYXR0ZWRQaG9uZU51bWJlclN0cmluZyhOU1N0cmluZyAqb3Jp
Z2luYWxQaG9uZU51bWJlcik7CiAKLVZlY3RvcjxTdHJpbmc+IHdlYkNvcmVTdHJpbmdWZWN0b3JG
cm9tTlNTdHJpbmdBcnJheShOU0FycmF5PE5TU3RyaW5nICo+ICopOwotCiAjZW5kaWYgLy8gZGVm
aW5lZChfX09CSkNfXykKIAogfQpJbmRleDogU291cmNlL1dlYktpdC9QbGF0Zm9ybS9tYWMvU3Ry
aW5nVXRpbGl0aWVzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vbWFj
L1N0cmluZ1V0aWxpdGllcy5tbQkocmV2aXNpb24gMjQwOTQ3KQorKysgU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04MiwxNSAr
ODIsNCBAQCBOU1N0cmluZyAqZm9ybWF0dGVkUGhvbmVOdW1iZXJTdHJpbmcoTlNTCiAKICNlbmRp
ZiAvLyBFTkFCTEUoVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICYmIFBMQVRGT1JNKE1BQykK
IAotVmVjdG9yPFN0cmluZz4gd2ViQ29yZVN0cmluZ1ZlY3RvckZyb21OU1N0cmluZ0FycmF5KE5T
QXJyYXk8TlNTdHJpbmcgKj4gKm5zU3RyaW5nQXJyYXkpCi17Ci0gICAgVmVjdG9yPFN0cmluZz4g
c3RyaW5nVmVjdG9yOwotICAgIHN0cmluZ1ZlY3Rvci5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KFtu
c1N0cmluZ0FycmF5IGNvdW50XSk7Ci0KLSAgICBmb3IgKE5TU3RyaW5nICpuc1N0cmluZyBpbiBu
c1N0cmluZ0FycmF5KQotICAgICAgICBzdHJpbmdWZWN0b3IudW5jaGVja2VkQXBwZW5kKG5zU3Ry
aW5nKTsKLQotICAgIHJldHVybiBzdHJpbmdWZWN0b3I7Ci19Ci0KIH0KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkocmV2aXNpb24gMjQw
OTQ3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQko
d29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNiBAQAogI2ltcG9ydCAiUmVtb3RlT2JqZWN0UmVn
aXN0cnkuaCIKICNpbXBvcnQgIlJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaCIKICNpbXBv
cnQgIlNhZmVCcm93c2luZ1dhcm5pbmcuaCIKLSNpbXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgog
I2ltcG9ydCAiVUlEZWxlZ2F0ZS5oIgogI2ltcG9ydCAiVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIu
aCIKICNpbXBvcnQgIlZlcnNpb25DaGVja3MuaCIKQEAgLTExMiw2ICsxMTEsNyBAQAogI2ltcG9y
dCA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU3Ry
aW5nVXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ZhbGlkYXRpb25CdWJibGUuaD4KICNp
bXBvcnQgPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV3Jp
dGluZ01vZGUuaD4KQEAgLTU4Myw3ICs1ODMsNyBAQCAtICh2b2lkKV9pbml0aWFsaXplV2l0aENv
bmZpZ3VyYXRpb246KFdLCiAgICAgICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0UGFnZUdy
b3VwKFdlYktpdDo6V2ViUGFnZUdyb3VwOjpjcmVhdGUoY29uZmlndXJhdGlvbi5fZ3JvdXBJZGVu
dGlmaWVyKS5wdHIoKSk7CiAgICAgfQogCi0gICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldEFkZGl0
aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKFdlYktpdDo6d2ViQ29yZVN0cmluZ1ZlY3RvckZyb21O
U1N0cmluZ0FycmF5KFtfY29uZmlndXJhdGlvbiBfYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlw
ZXNdKSk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFn
ZVR5cGVzKFdlYkNvcmU6OndlYkNvcmVTdHJpbmdWZWN0b3JGcm9tTlNTdHJpbmdBcnJheShbX2Nv
bmZpZ3VyYXRpb24gX2FkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzXSkpOwogCiAgICAgcGFn
ZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VWYWx1ZXMoKS5zZXQoV2ViS2l0OjpXZWJQcmVmZXJl
bmNlc0tleTo6c3VwcHJlc3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nS2V5KCksIFdlYktpdDo6V2Vi
UHJlZmVyZW5jZXNTdG9yZTo6VmFsdWUoISFbX2NvbmZpZ3VyYXRpb24gc3VwcHJlc3Nlc0luY3Jl
bWVudGFsUmVuZGVyaW5nXSkpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyNDA5NDcpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwyNiBAQAorMjAxOS0wMi0wNCAgU2FpZCBBYm91LUhhbGxh
d2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbQ0ddIEVuYWJsZSBzZXRBZGRpdGlvbmFs
U3VwcG9ydGVkSW1hZ2VUeXBlcyBmb3IgV0sxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQxOTAKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9y
dG9uLgorCisgICAgICAgIDEuIERlZmluZSB0aGUgcHJlZmVyZW5jZXMga2V5IEFkZGl0aW9uYWxT
dXBwb3J0ZWRJbWFnZVR5cGVzLgorICAgICAgICAyLiBBZGQgYWRkaXRpb25hbFN1cHBvcnRlZElt
YWdlVHlwZXMgYXMgYSBwcml2YXRlIHByZWZlcmVuY2UgcHJvcGVydHkuCisgICAgICAgIDMuIERl
ZmluZSB0aGUgc2V0dGVyIGFuZCB0aGUgZ2V0dGVyIG9mIHRoZSBwcm9wZXJ0eS4KKyAgICAgICAg
NC4gQWRkIGZ1bmN0aW9uIHRvIGNvbnZlcnQgZnJvbSBhbiBpZCB0byBhbiBhcnJheSBvZiBzdHJp
bmdzLgorICAgICAgICA1LiBDYWxsIFdlYkNvcmU6OnNldEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFn
ZVR5cGVzIHdoZW4gcHJlZmVyZW5jZXMgY2hhbmdlLgorCisgICAgICAgICogV2ViVmlldy9XZWJQ
cmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2Vz
Lm1tOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBfc3RyaW5nQXJyYXlWYWx1ZUZvcktleTpd
KToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgX3NldFN0cmluZ0FycmF5VmFsdWVGb3JLZXk6
Zm9yS2V5Ol0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRBZGRpdGlvbmFsU3VwcG9y
dGVkSW1hZ2VUeXBlczpdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgYWRkaXRpb25hbFN1
cHBvcnRlZEltYWdlVHlwZXNdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJp
dmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmll
dyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgorCiAyMDE5LTAyLTA0ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFBhZ2VPdmVybGF5Q29udHJvbGxlcidz
IGxheWVycyBzaG91bGQgYmUgY3JlYXRlZCBsYXppbHkKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUu
aAkocmV2aXNpb24gMjQwOTQ3KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYsNyBA
QAogI2RlZmluZSBXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VzUHJlZmVyZW5jZUtleSBAIldlYktp
dEFsbG93QW5pbWF0ZWRJbWFnZXNQcmVmZXJlbmNlS2V5IgogI2RlZmluZSBXZWJLaXRBbGxvd0Fu
aW1hdGVkSW1hZ2VMb29waW5nUHJlZmVyZW5jZUtleSBAIldlYktpdEFsbG93QW5pbWF0ZWRJbWFn
ZUxvb3BpbmdQcmVmZXJlbmNlS2V5IgogI2RlZmluZSBXZWJLaXREaXNwbGF5SW1hZ2VzS2V5IEAi
V2ViS2l0RGlzcGxheUltYWdlc0tleSIKKyNkZWZpbmUgV2ViS2l0QWRkaXRpb25hbFN1cHBvcnRl
ZEltYWdlVHlwZXNLZXkgIEAiV2ViS2l0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXNLZXki
CiAjZGVmaW5lIFdlYktpdExvYWRTaXRlSWNvbnNLZXkgQCJXZWJLaXRMb2FkU2l0ZUljb25zS2V5
IgogI2RlZmluZSBXZWJLaXRCYWNrRm9yd2FyZENhY2hlRXhwaXJhdGlvbkludGVydmFsS2V5IEAi
V2ViS2l0QmFja0ZvcndhcmRDYWNoZUV4cGlyYXRpb25JbnRlcnZhbEtleSIKICNpZiAhVEFSR0VU
X09TX0lQSE9ORQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCShyZXZpc2lvbiAyNDA5NDcpCisrKyBTb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03NTcs
NiArNzU3LDM2IEBAIC0gKHZvaWQpX3NldFN0cmluZ1ZhbHVlOihOU1N0cmluZyAqKXZhbHUKICAg
ICBbc2VsZiBfcG9zdFByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbl07CiB9CiAKKy0gKE5T
QXJyYXk8TlNTdHJpbmcgKj4gKilfc3RyaW5nQXJyYXlWYWx1ZUZvcktleTooTlNTdHJpbmcgKilr
ZXkKK3sKKyAgICBpZCB2YWx1ZSA9IFtzZWxmIF92YWx1ZUZvcktleTprZXldOworICAgIGlmICgh
W3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKKyAgICAgICAgcmV0dXJuIG5p
bDsKKworICAgIE5TQXJyYXkgKmFycmF5ID0gKE5TQXJyYXkgKil2YWx1ZTsKKyAgICBmb3IgKGlk
IG9iamVjdCBpbiBhcnJheSkgeworICAgICAgICBpZiAoIVtvYmplY3QgaXNLaW5kT2ZDbGFzczpb
TlNTdHJpbmcgY2xhc3NdXSkKKyAgICAgICAgICAgIHJldHVybiBuaWw7CisgICAgfQorCisgICAg
cmV0dXJuIChOU0FycmF5PE5TU3RyaW5nICo+ICopYXJyYXk7Cit9CisKKy0gKHZvaWQpX3NldFN0
cmluZ0FycmF5VmFsdWVGb3JLZXk6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKil2YWx1ZSBmb3JLZXk6
KE5TU3RyaW5nICopa2V5Cit7CisgICAgTlNTdHJpbmcgKl9rZXkgPSBLRVkoa2V5KTsKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIGRpc3BhdGNoX2JhcnJpZXJfc3luYyhfcHJpdmF0ZS0+
cmVhZFdyaXRlUXVldWUsIF57CisjZW5kaWYKKyAgICAgICAgW19wcml2YXRlLT52YWx1ZXMuZ2V0
KCkgc2V0T2JqZWN0OnZhbHVlIGZvcktleTpfa2V5XTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgIH0pOworI2VuZGlmCisgICAgaWYgKF9wcml2YXRlLT5hdXRvc2F2ZXMpCisgICAgICAg
IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldE9iamVjdDp2YWx1ZSBm
b3JLZXk6X2tleV07CisgICAgW3NlbGYgX3Bvc3RQcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRp
b25dOworfQorCiAtIChpbnQpX2ludGVnZXJWYWx1ZUZvcktleTooTlNTdHJpbmcgKilrZXkKIHsK
ICAgICBpZCBvID0gW3NlbGYgX3ZhbHVlRm9yS2V5OmtleV07CkBAIC0xMTU5LDYgKzExODksMTYg
QEAgLSAoQk9PTClsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkKICAgICByZXR1cm4gW3NlbGYgX2Jv
b2xWYWx1ZUZvcktleTogV2ViS2l0RGlzcGxheUltYWdlc0tleV07CiB9CiAKKy0gKHZvaWQpc2V0
QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXM6KE5TQXJyYXk8TlNTdHJpbmcqPiAqKWltYWdl
VHlwZXMKK3sKKyAgICBbc2VsZiBfc2V0U3RyaW5nQXJyYXlWYWx1ZUZvcktleTppbWFnZVR5cGVz
IGZvcktleTpXZWJLaXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc0tleV07Cit9CisKKy0g
KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcworewor
ICAgIHJldHVybiBbc2VsZiBfc3RyaW5nQXJyYXlWYWx1ZUZvcktleTpXZWJLaXRBZGRpdGlvbmFs
U3VwcG9ydGVkSW1hZ2VUeXBlc0tleV07Cit9CisKIC0gKHZvaWQpc2V0QXV0b3NhdmVzOihCT09M
KWZsYWcKIHsKICAgICBfcHJpdmF0ZS0+YXV0b3NhdmVzID0gZmxhZzsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZh
dGUuaAkocmV2aXNpb24gMjQwOTQ3KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjI2LDQgKzYyNiw3
IEBAIEBpbnRlcmZhY2UgV2ViUHJlZmVyZW5jZXMgKFdlYlByaXZhdGUpCiAKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljKSBOU1N0cmluZyAqbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1
cHBvcnQ7CiAKKy8vIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIGlzIGFuIGFycmF5IG9m
IGltYWdlIFVUSXMuCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmV0YWluKSBOU0FycmF5PE5TU3Ry
aW5nICo+ICphZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlczsKKwogQGVuZApJbmRleDogU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkocmV2aXNpb24gMjQwOTQ3
KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0yMDQsOSArMjA0LDExIEBACiAjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Tb2NrZXRQcm92aWRlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9TdHJpbmdVdGls
aXRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3R5bGVQcm9wZXJ0aWVzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1RleHRSZXNvdXJjZURlY29kZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hl
Y2suaD4KKyNpbXBvcnQgPFdlYkNvcmUvVVRJUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNvcmUv
VXNlckFnZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VzZXJDb250ZW50Q29udHJvbGxlci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9Vc2VyR2VzdHVyZUluZGljYXRvci5oPgpAQCAtMjg2NSw2ICsyODY3
LDkgQEAgLSAodm9pZClfcHJlZmVyZW5jZXNDaGFuZ2VkOihXZWJQcmVmZXJlbgogICAgIHNldHRp
bmdzLnNldFN0YW5kYXJkRm9udEZhbWlseShbcHJlZmVyZW5jZXMgc3RhbmRhcmRGb250RmFtaWx5
XSk7CiAgICAgc2V0dGluZ3Muc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KFtwcmVmZXJlbmNl
cyBsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHldKTsKICAgICBzZXR0aW5ncy5zZXRMb2Fkc1NpdGVJ
Y29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyhbcHJlZmVyZW5jZXMgbG9hZHNTaXRlSWNv
bnNJZ25vcmluZ0ltYWdlTG9hZGluZ1ByZWZlcmVuY2VdKTsKKworICAgIFdlYkNvcmU6OnNldEFk
ZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKFdlYkNvcmU6OndlYkNvcmVTdHJpbmdWZWN0b3JG
cm9tTlNTdHJpbmdBcnJheShbcHJlZmVyZW5jZXMgYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlw
ZXNdKSk7CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHNldHRpbmdzLnNldFNob3Vs
ZFByaW50QmFja2dyb3VuZHModHJ1ZSk7CiAjZWxzZQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjQwOTQ3KQorKysgVG9vbHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMDItMDQgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NHXSBFbmFibGUg
c2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMgZm9yIFdLMQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MTkwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBBZGQgYSB0ZXN0IHNpbWlsYXIgdG8gdGhlIG9u
ZSB1bmRlciBXZWJLaXQgQ29jb2EgYnV0IG1ha2UgaXQgY3JlYXRlIGEKKyAgICAgICAgV2ViVmll
dyBpbnN0ZWFkIG9mIGEgV0tXZWJWaWV3LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvMTAweDEwMC1yZWQudGdhOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9BZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9BZGRpdGlvbmFsU3VwcG9ydGVk
SW1hZ2VUeXBlcy5tbTogQWRkZWQuCisgICAgICAgICgtW0FkZGl0aW9uYWxTdXBwb3J0ZWRJbWFn
ZVR5cGVzVGVzdCB3ZWJWaWV3OmRpZEZpbmlzaExvYWRGb3JGcmFtZTpdKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OnJ1blRlc3QpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisK
IDIwMTktMDItMDQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBb
Rmlyc3QgcGFpbnRdIEFkanVzdCAiZmluaXNoZWRQYXJzaW5nTWFpbkRvY3VtZW50IiBmbGFnIGJ5
IHRha2luZyBkZWZlcnJlZCBhbmQgYXN5bmMgc2NyaXB0cyBpbnRvIGFjY291bnQuCkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjQwOTQ3KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTI2Niw2ICsyNjYsNyBAQAogCQk1NUE4MTdGQzIxODEwMEUwMDAwNEEzOUEgLyogQWRk
aXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NUE4MTdGQjIxODEwMEUwMDAwNEEzOUEgLyogQWRkaXRpb25h
bFN1cHBvcnRlZEltYWdlVHlwZXMubW0gKi87IH07CiAJCTU1QTgxN0ZGMjE4MTAyMUEwMDA0QTM5
QSAvKiAxMDB4MTAwLXJlZC50Z2EgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTVBODE3RkUyMTgxMDFERjAwMDRBMzlBIC8qIDEwMHgxMDAtcmVk
LnRnYSAqLzsgfTsKIAkJNTVBODE4MDAyMTgxMDIyMTAwMDRBMzlBIC8qIDQwMHg0MDAtZ3JlZW4u
cG5nIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU1QTgxN0ZEMjE4MTAxREYwMDA0QTM5QSAvKiA0MDB4NDAwLWdyZWVuLnBuZyAqLzsgfTsKKwkJ
NTVGOUQyRTUyMjA1MDMxODAwQTlBQjM4IC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVz
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVGOUQy
RTQyMjA1MDMxODAwQTlBQjM4IC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tICov
OyB9OwogCQk1NzE0RUNCOTFDQThCNUIwMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2lu
YWxVUkwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzE0RUNCODFDQThCNTg4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2lu
YWxVUkwuaHRtbCAqLzsgfTsKIAkJNTcxNEVDQkIxQ0E4QkZFNDAwMDUxQUM4IC8qIERvd25sb2Fk
UmVxdWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzE0RUNCQTFDQThCRkQxMDAwNTFBQzggLyogRG93
bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sICovOyB9OwogCQk1NzE0RUNCRDFDQThD
MjJBMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxNEVDQkMxQ0E4
QzIxODAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMMi5odG1sICovOyB9OwpA
QCAtMzQzLDYgKzM0NCw4IEBACiAJCTZCMzA2MTA2MjE4QTM3MjkwMEY1QTgwMiAvKiBDbG9zaW5n
V2ViVmlldy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDZCMzA2MTA1MjE4QTM3MjkwMEY1QTgwMiAvKiBDbG9zaW5nV2ViVmlldy5tbSAqLzsgfTsKIAkJ
NkI5QUJFMTIyMDg2OTUyRjAwRDc1REU2IC8qIEhUVFBQYXJzZXJzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCOUFCRTExMjA4Njk1MkYwMEQ3NURF
NiAvKiBIVFRQUGFyc2Vycy5jcHAgKi87IH07CiAJCTZCRkQyOTRDMUQ1RTZDMUQwMDhFQzk2OCAv
KiBIYXNoQ291bnRlZFNldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QTM4RDdFNTFDNzUyRDVGMDA0RjE1N0QgLyogSGFzaENvdW50ZWRTZXQuY3Bw
ICovOyB9OworCQk3MjVDM0VFRjIyMDU3MEJFMDA3QzM2RkMgLyogMTAweDEwMC1yZWQudGdhIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNUMz
RUVFMjIwNTcwMDUwMDdDMzZGQyAvKiAxMDB4MTAwLXJlZC50Z2EgKi87IH07CisJCTcyNUMzRUYz
MjIwNThBNUIwMDdDMzZGQyAvKiBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNUMz
RUYyMjIwNTg0QkEwMDdDMzZGQyAvKiBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5odG1s
ICovOyB9OwogCQk3NTFCMDVENjFGOEVBQzQxMDAyOEEwOUUgLyogRGF0YWJhc2VUcmFja2VyVGVz
dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1MUIw
NUQ1MUY4RUFDMUEwMDI4QTA5RSAvKiBEYXRhYmFzZVRyYWNrZXJUZXN0Lm1tICovOyB9OwogCQk3
NTRDRUM4MTFGNjcyMkYyMDBEMDAzOUEgLyogQXV0b0ZpbGxBdmFpbGFibGUubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTRDRUM4MDFGNjcyMkRDMDBE
MDAzOUEgLyogQXV0b0ZpbGxBdmFpbGFibGUubW0gKi87IH07CiAJCTc2NzM0OTlEMTkzMEM1QkIw
MEU0NERGOSAvKiBTdG9wTG9hZGluZ0R1cmluZ0RpZEZhaWxQcm92aXNpb25hbExvYWRfYnVuZGxl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2NzM0
OTlBMTkzMDE4MkUwMEU0NERGOSAvKiBTdG9wTG9hZGluZ0R1cmluZ0RpZEZhaWxQcm92aXNpb25h
bExvYWRfYnVuZGxlLmNwcCAqLzsgfTsKQEAgLTk5NiwxMCArOTk5LDEyIEBACiAJCQlkc3RQYXRo
ID0gVGVzdFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gNzsKIAkJ
CWZpbGVzID0gKAorCQkJCTcyNUMzRUVGMjIwNTcwQkUwMDdDMzZGQyAvKiAxMDB4MTAwLXJlZC50
Z2EgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTVBODE3RkYyMTgxMDIxQTAwMDRBMzlBIC8q
IDEwMHgxMDAtcmVkLnRnYSBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkxQTlFNTJDOTEzRTY1
RUY0MDA2OTE3RjUgLyogMTgtY2hhcmFjdGVycy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCTU1QTgxODAwMjE4MTAyMjEwMDA0QTM5QSAvKiA0MDB4NDAwLWdyZWVuLnBuZyBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQkzNzkwMjhCOTE0RkFDMjRDMDA3RTZCNDMgLyogYWNjZXB0c0Zp
cnN0TW91c2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk3MjVDM0VGMzIyMDU4QTVC
MDA3QzM2RkMgLyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQkxQzJCODE4NzFDODkyNUEwMDBBNTUyOUYgLyogQWhlbS50dGYgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMUE2MzQ3OUYxODNENzJBNDAwNUIxNzA3IC8qIGFsbC1j
b250ZW50LWluLW9uZS1pZnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDMjVD
Q0EwRDFFNTE0MTg0MDAyNkNCOEEgLyogQWxsQWhlbS5zdmcgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CkBAIC0xNjQ0LDYgKzE2NDksNyBAQAogCQk1NUE4MTdGQjIxODEwMEUwMDAwNEEzOUEgLyogQWRk
aXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBZGRp
dGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTVBODE3RkQyMTgxMDFERjAwMDRBMzlBIC8qIDQwMHg0MDAtZ3JlZW4ucG5nICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRo
ID0gIjQwMHg0MDAtZ3JlZW4ucG5nIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVB
ODE3RkUyMTgxMDFERjAwMDRBMzlBIC8qIDEwMHgxMDAtcmVkLnRnYSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiMTAweDEwMC1y
ZWQudGdhIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTVGOUQyRTQyMjA1MDMxODAw
QTlBQjM4IC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTcxNEVDQjgxQ0E4QjU4ODAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVz
dE9yaWdpbmFsVVJMLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBEb3dubG9hZFJl
cXVlc3RPcmlnaW5hbFVSTC5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzE0
RUNCQTFDQThCRkQxMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxV
UkxGcmFtZS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzE0RUNCQzFDQThD
MjE4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTDIuaHRtbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MjEsNiArMTcyNyw4IEBACiAJCTZCMEEwN0Y2
MjFGQTlDMkIwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQWRDbGlja0F0dHJpYnV0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNkIzMDYxMDUyMThBMzcyOTAwRjVBODAyIC8qIENsb3NpbmdXZWJWaWV3Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gQ2xvc2luZ1dlYlZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZCOUFCRTExMjA4Njk1MkYwMEQ3NURFNiAvKiBIVFRQUGFyc2Vycy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBIVFRQUGFyc2Vycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTcyNUMzRUVFMjIwNTcwMDUwMDdDMzZGQyAvKiAxMDB4MTAwLXJlZC50Z2EgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gIjEw
MHgxMDAtcmVkLnRnYSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyNUMzRUYyMjIw
NTg0QkEwMDdDMzZGQyAvKiBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5odG1sICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5odG1sOyBwYXRoID0gQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMuaHRt
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzUxQjA1RDUxRjhFQUMxQTAwMjhBMDlF
IC8qIERhdGFiYXNlVHJhY2tlclRlc3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEYXRhYmFz
ZVRyYWNrZXJUZXN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTRDRUM4MDFG
NjcyMkRDMDBEMDAzOUEgLyogQXV0b0ZpbGxBdmFpbGFibGUubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBBdXRvRmlsbEF2YWlsYWJsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzU2MDkxNzcxOTI1OUM1OTAwOUVGMDZFIC8qIE1lbW9yeUNhY2hlQWRkSW1hZ2VUb0NhY2hlSU9T
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVtb3J5Q2FjaGVB
ZGRJbWFnZVRvQ2FjaGVJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDIx
LDYgKzM0MjksNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQzA3RTZDQjAxM0ZENzM3QzAwMzhC
MjJCIC8qIFJlc291cmNlcyAqLywKIAkJCQkzNzkwMjhCNTE0RkFCRDkyMDA3RTZCNDMgLyogQWNj
ZXB0c0ZpcnN0TW91c2UubW0gKi8sCisJCQkJNTVGOUQyRTQyMjA1MDMxODAwQTlBQjM4IC8qIEFk
ZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tICovLAogCQkJCUI1NUYxMTlGMTUxNjgzNEYw
MDkxNTkxNiAvKiBBdHRyaWJ1dGVkU3RyaW5nLm1tICovLAogCQkJCTAwQ0Q5RjYyMTVCRTMxMkMw
MDJEQTJDRSAvKiBCYWNrRm9yd2FyZExpc3QubW0gKi8sCiAJCQkJMUM3RkVCMUYyMDdDMEYyRDAw
RDIzMjc4IC8qIEJhY2tncm91bmRDb2xvci5tbSAqLywKQEAgLTM0OTUsNyArMzUwNCw5IEBACiAJ
CUMwN0U2Q0IwMTNGRDczN0MwMDM4QjIyQiAvKiBSZXNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTcyNUMzRUVFMjIwNTcwMDUwMDdDMzZGQyAv
KiAxMDB4MTAwLXJlZC50Z2EgKi8sCiAJCQkJMzc5MDI4QjgxNEZBQkU0OTAwN0U2QjQzIC8qIGFj
Y2VwdHNGaXJzdE1vdXNlLmh0bWwgKi8sCisJCQkJNzI1QzNFRjIyMjA1ODRCQTAwN0MzNkZDIC8q
IEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLmh0bWwgKi8sCiAJCQkJQjU1RjExQjAxNTE3
QTJDNDAwOTE1OTE2IC8qIGF0dHJpYnV0ZWRTdHJpbmdDdXN0b21Gb250Lmh0bWwgKi8sCiAJCQkJ
N0M5RUQ5OEExN0ExOUQwNjAwRTREQzMzIC8qIGF0dHJpYnV0ZWRTdHJpbmdTdHJpa2V0aHJvdWdo
Lmh0bWwgKi8sCiAJCQkJMjZERjVBNjExNUEyQTIyQjAwMzY4OUMyIC8qIENhbmNlbExvYWRGcm9t
UmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCAqLywKQEAgLTM5MTUsNiArMzkyNiw3IEBACiAJCQkJ
NkIwQTA3RjcyMUZBOUMyQjAwRDU3MzkxIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkzN0U3REQ2NDFFQTA2RkYyMDA5QjM5NkQgLyogQWRkaXRpb25hbFJlYWRB
Y2Nlc3NBbGxvd2VkVVJMcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU1QTgxN0ZDMjE4MTAwRTAw
MDA0QTM5QSAvKiBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbSBpbiBTb3VyY2VzICov
LAorCQkJCTU1RjlEMkU1MjIwNTAzMTgwMEE5QUIzOCAvKiBBZGRpdGlvbmFsU3VwcG9ydGVkSW1h
Z2VUeXBlcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdBOTA5QTdEMUQ4Nzc0ODAwMDdFMTBGOCAv
KiBBZmZpbmVUcmFuc2Zvcm0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFERjc0MzIxQzQxQjY1
ODAwQTJGNEQwIC8qIEFsd2F5c1JldmFsaWRhdGVkVVJMU2NoZW1lcy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTJERTcxQUZFMUQ0OUMwQkQwMDkwNDA5NCAvKiBBbmltYXRlZFJlc2l6ZS5tbSBpbiBT
b3VyY2VzICovLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQWRkaXRpb25h
bFN1cHBvcnRlZEltYWdlVHlwZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9BZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5odG1sCShub25leGlz
dGVudCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0FkZGl0aW9uYWxTdXBwb3J0
ZWRJbWFnZVR5cGVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorICAgIDxpbWcgc3JjPSIxMDB4MTAwLXJlZC50Z2Ei
IG9uZXJyb3I9ImltZ0Vycm9yKHRoaXMpOyI+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rp
b24gaW1nRXJyb3IoaW1hZ2UpIHsKKyAgICAgICAgICAgIGltYWdlLnBhcmVudE5vZGUuIHJlbW92
ZUNoaWxkKGltYWdlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9BZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9BZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBl
cy5tbQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9BZGRp
dGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEw
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2ltcG9ydCAiUGxhdGZv
cm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlBsYXRmb3JtV2ViVmlldy5oIgorCisjaW1wb3J0IDxX
ZWJLaXQvRE9NLmg+CisjaW1wb3J0IDxXZWJLaXQvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg+Cisj
aW1wb3J0IDxXZWJLaXQvV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KKworQGludGVyZmFjZSBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc1Rlc3QgOiBOU09i
amVjdCA8V2ViRnJhbWVMb2FkRGVsZWdhdGU+IHsKK30KK0BlbmQKKworc3RhdGljIGJvb2wgZGlk
RmluaXNoTG9hZDsKKworQGltcGxlbWVudGF0aW9uIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5
cGVzVGVzdAorCistICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgZGlkRmluaXNoTG9h
ZEZvckZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCit7CisgICAgZGlkRmluaXNoTG9hZCA9IHRydWU7
Cit9CitAZW5kCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworc3RhdGljIHZvaWQgcnVu
VGVzdChOU0FycmF5ICphZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcywgQm9vbGVhbiBleHBl
Y3RlZFRvTG9hZCkKK3sKKyAgICBSZXRhaW5QdHI8V2ViUHJlZmVyZW5jZXM+IHByZWZlcmVuY2Vz
ID0gYWRvcHROUyhbW1dlYlByZWZlcmVuY2VzIGFsbG9jXSBpbml0V2l0aElkZW50aWZpZXI6bmls
XSk7CisgICAgW3ByZWZlcmVuY2VzIHNldEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzOmFk
ZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzXTsKKworICAgIFJldGFpblB0cjxXZWJWaWV3PiB3
ZWJWaWV3ID0gYWRvcHROUyhbW1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVj
dCgwLCAwLCAxMjAsIDIwMCkgZnJhbWVOYW1lOm5pbCBncm91cE5hbWU6bmlsXSk7CisgICAgW3dl
YlZpZXcgc2V0UHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAgUmV0YWluUHRy
PEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzVGVzdD4gdGVzdENvbnRyb2xsZXIgPSBhZG9w
dE5TKFtBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc1Rlc3QgbmV3XSk7CisgICAgd2ViVmll
dy5nZXQoKS5mcmFtZUxvYWREZWxlZ2F0ZSA9IHRlc3RDb250cm9sbGVyLmdldCgpOworCisgICAg
UmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAIkFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIiB3aXRoRXh0ZW5zaW9uOkAi
aHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKyAgICBbW3dl
YlZpZXcuZ2V0KCkgbWFpbkZyYW1lXSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKworICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7
CisgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOworCisgICAgRE9NRG9jdW1lbnQgKmRvY3VtZW50
ID0gd2ViVmlldy5nZXQoKS5tYWluRnJhbWVEb2N1bWVudDsKKyAgICBET01FbGVtZW50ICpkb2N1
bWVudEVsZW1lbnQgPSBbZG9jdW1lbnQgZG9jdW1lbnRFbGVtZW50XTsKKworICAgIERPTUhUTUxJ
bWFnZUVsZW1lbnQgKmltYWdlID0gKERPTUhUTUxJbWFnZUVsZW1lbnQgKilbZG9jdW1lbnRFbGVt
ZW50IHF1ZXJ5U2VsZWN0b3I6QCJpbWciXTsKKyAgICBFWFBFQ1RfRVEoaW1hZ2UgIT0gbnVsbHB0
ciwgZXhwZWN0ZWRUb0xvYWQpOworICAgIGlmIChpbWFnZSkKKyAgICAgICAgRVhQRUNUX0VRKFtp
bWFnZSB3aWR0aF0sIDEwMCk7Cit9CisKK1RFU1QoV2ViS2l0TGVnYWN5LCBBZGRpdGlvbmFsU3Vw
cG9ydGVkU3RyaW5nSW1hZ2VUeXBlKQoreworICAgIHJ1blRlc3QoQFtAImNvbS50cnVldmlzaW9u
LnRnYS1pbWFnZSJdLCB0cnVlKTsKK30KKworVEVTVChXZWJLaXRMZWdhY3ksIEFkZGl0aW9uYWxC
b2d1c1N0cmluZ0ltYWdlVHlwZSkKK3sKKyAgICBydW5UZXN0KEBbQCJwdWJsaWMuYm9ndXMiXSwg
ZmFsc2UpOworfQorCitURVNUKFdlYktpdExlZ2FjeSwgQWRkaXRpb25hbEVtcHR5QXJyYXlJbWFn
ZVR5cGUpCit7CisgICAgcnVuVGVzdChAW10sIGZhbHNlKTsKK30KKworVEVTVChXZWJLaXRMZWdh
Y3ksIEFkZGl0aW9uYWxBcnJ5T2ZOdWxsSW1hZ2VUeXBlKQoreworICAgIHJ1blRlc3QoQFtbTlNO
dWxsIG51bGxdXSwgZmFsc2UpOworfQorCitURVNUKFdlYktpdExlZ2FjeSwgQWRkaXRpb25hbEFy
cmF5T2ZBcnJheUltYWdlVHlwZSkKK3sKKyAgICBydW5UZXN0KEBbQFtAImNvbS50cnVldmlzaW9u
LnRnYS1pbWFnZSJdXSwgZmFsc2UpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy8xMDB4MTAwLXJlZC50Z2EKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3Zu
Om1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBv
bjogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvMTAweDEwMC1yZWQudGdhCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTAsMCArMSAjIworYXBwbGljYXRpb24vb2N0ZXQt
c3RyZWFtClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKCkFBQUtBQUFBQUFBQUFBQUFa
QUJrQUNBbzR3QUEvLy9qQUFELy8rTUFBUC8vNHdBQS8vL2pBQUQvLytNQUFQLy80d0FBLy8vakFB
RC8KLytNQUFQLy80d0FBLy8vakFBRC8vK01BQVAvLzR3QUEvLy9qQUFELy8rTUFBUC8vNHdBQS8v
L2pBQUQvLytNQUFQLy80d0FBLy8vagpBQUQvLytNQUFQLy80d0FBLy8vakFBRC8vK01BQVAvLzR3
QUEvLy9qQUFELy8rTUFBUC8vNHdBQS8vL2pBQUQvLytNQUFQLy80d0FBCi8vL2pBQUQvLytNQUFQ
Ly80d0FBLy8vakFBRC8vK01BQVAvLzR3QUEvLy9qQUFELy8rTUFBUC8vNHdBQS8vL2pBQUQvLytN
QUFQLy8KNHdBQS8vL2pBQUQvLytNQUFQLy80d0FBLy8vakFBRC8vK01BQVAvLzR3QUEvLy9qQUFE
Ly8rTUFBUC8vNHdBQS8vL2pBQUQvLytNQQpBUC8vNHdBQS8vL2pBQUQvLytNQUFQLy80d0FBLy8v
akFBRC8vK01BQVAvLzR3QUEvLy9qQUFELy8rTUFBUC8vNHdBQS8vL2pBQUQvCi8rTUFBUC8vNHdB
QS8vL2pBQUQvLytNQUFQLy80d0FBLy8vakFBRC8vK01BQVAvLzR3QUEvLy9qQUFELy8rTUFBUC8v
NHdBQS8vL2oKQUFELy8rTUFBUC8vNHdBQS8vL2pBQUQvLytNQUFQLy80d0FBLy8vakFBRC8vK01B
QVAvLzR3QUEvLy9qQUFELy8rTUFBUC8vNHdBQQovLy9qQUFELy8rTUFBUC8vNHdBQS8vL2pBQUQv
LytNQUFQLy80d0FBLy8vakFBRC8vK01BQVAvLzR3QUEvLy9qQUFELy8rTUFBUC8vCjR3QUEvLzg9
Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>