<?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>132963</bug_id>
          
          <creation_ts>2014-05-15 11:49:44 -0700</creation_ts>
          <short_desc>[iOS] Enable sandboxing for the database process</short_desc>
          <delta_ts>2014-05-21 13:52:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1009589</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-05-15 11:49:44 -0700</bug_when>
    <thetext>Enable sandboxing for the database process on ios</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009598</commentid>
    <comment_count>1</comment_count>
      <attachid>231530</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-05-15 12:12:43 -0700</bug_when>
    <thetext>Created attachment 231530
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009602</commentid>
    <comment_count>2</comment_count>
      <attachid>231530</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-05-15 12:18:36 -0700</bug_when>
    <thetext>Comment on attachment 231530
Patch

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

&gt; Source/WebKit2/DatabaseProcess/ios/DatabaseProcessIOS.mm:34
&gt;  #import &lt;WebCore/LocalizedStrings.h&gt;
&gt; +#import &lt;WebCore/FileSystem.h&gt;

sorting

&gt; Source/WebKit2/DatabaseProcess/ios/DatabaseProcessIOS.mm:54
&gt; +    NSBundle *webkit2Bundle = [NSBundle bundleForClass:NSClassFromString(@&quot;WKView&quot;)];

WKView is not long for this world, doesn’t seem like a great choice.

&gt; Source/WebKit2/DatabaseProcess/ios/com.apple.WebKit.DatabasesIOS.sb.in:28
&gt; +(allow file-read* file-write* (extension âcom.apple.YourProject.database_container_dirâ))

smart quotes? YourProject?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009604</commentid>
    <comment_count>3</comment_count>
      <attachid>231530</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-05-15 12:25:57 -0700</bug_when>
    <thetext>Comment on attachment 231530
Patch

Hmmm, messed up merge/refactoring to tidy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009605</commentid>
    <comment_count>4</comment_count>
      <attachid>231530</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-05-15 12:42:04 -0700</bug_when>
    <thetext>Comment on attachment 231530
Patch

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

r- because of hardcoded directory path, and because it doesn&apos;t look like this code is suitable in production builds.

I expected that you will need to modify WebKit.xcconfig to omit the profile from other platforms (and to fix my mistake with &quot;com.apple.WebKit.DatabaseProcess.sb&quot;).

&gt; Source/WebKit2/DatabaseProcess/ios/DatabaseProcessIOS.mm:58
&gt; +    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
&gt; +    NSString *libraryDirectory = [paths objectAtIndex:0];
&gt; +    String databasePath = [libraryDirectory stringByAppendingPathComponent:@&quot;WebKit/Databases&quot;];

The database directory is not hardcoded to be this one - there is even a user default.

There is already code in WebContext::ensureDatabaseProcess() that creates an extension for this directory, which simply needs to be consumed when initialization message is received. The only change may be that we need to change extension class for iOS.

&gt; Source/WebKit2/DatabaseProcess/ios/com.apple.WebKit.DatabasesIOS.sb.in:26
&gt; +(deny default (with partial-symbolication))
&gt; +(allow system-audit file-read-metadata)

You didn&apos;t include common.sb or removed-dev-nodes.sb, how did you determine that they are not needed?

&gt; Source/WebKit2/Shared/ios/ChildProcessIOS.mm:35
&gt; +#import &lt;WebCore/SystemVersionMac.h&gt;

Is this used in the iOS implementation?

&gt; Source/WebKit2/Shared/ios/ChildProcessIOS.mm:55
&gt; +extern &quot;C&quot; OSStatus SetApplicationIsDaemon(Boolean isDaemon);

This is not used on iOS (likely doesn&apos;t exist either).

&gt; Source/WebKit2/Shared/ios/ChildProcessIOS.mm:70
&gt; +void ChildProcess::initializeSandbox(const ChildProcessInitializationParameters&amp; parameters, SandboxInitializationParameters&amp; sandboxParameters)

I don&apos;t see how code in this function is necessary, given that launchd will initialize sandbox for us. This is only for local testing, isn&apos;t it?

&gt; Source/WebKit2/Shared/ios/ChildProcessIOS.mm:72
&gt; +    NSBundle *webkit2Bundle = [NSBundle bundleForClass:NSClassFromString(@&quot;WKView&quot;)];

What Tim said.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010317</commentid>
    <comment_count>5</comment_count>
      <attachid>231727</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-05-19 15:45:36 -0700</bug_when>
    <thetext>Created attachment 231727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010616</commentid>
    <comment_count>6</comment_count>
      <attachid>231790</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-05-20 13:37:38 -0700</bug_when>
    <thetext>Created attachment 231790
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010643</commentid>
    <comment_count>7</comment_count>
      <attachid>231790</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-05-20 15:46:46 -0700</bug_when>
    <thetext>Comment on attachment 231790
Patch

Patch didn’t include the new file, ChildProcessIOS.mm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010673</commentid>
    <comment_count>8</comment_count>
      <attachid>231805</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-05-20 18:38:50 -0700</bug_when>
    <thetext>Created attachment 231805
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010690</commentid>
    <comment_count>9</comment_count>
      <attachid>231805</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-05-20 20:47:56 -0700</bug_when>
    <thetext>Comment on attachment 231805
Patch

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

&gt; Source/WebKit2/DatabaseProcess/com.apple.WebKit.Databases.sb.in:25
&gt; +#include &quot;ios/com.apple.WebKit.DatabasesIOS.sb.in&quot;

I think that the database process profile needs to go directly to where we want it to be on iOS, which is a different place than on OS X. So, merging them like this will be problematic.

&gt; Source/WebKit2/DatabaseProcess/ios/DatabaseProcessIOS.mm:54
&gt; +    // Need to overide the default, because service has a different bundle ID.
&gt; +    NSBundle *webkit2Bundle = [NSBundle bundleForClass:NSClassFromString(@&quot;WKView&quot;)];
&gt; +    sandboxParameters.setOverrideSandboxProfilePath([webkit2Bundle pathForResource:@&quot;com.apple.WebKit.Databases&quot; ofType:@&quot;sb&quot;]);

I still don&apos;t understand why this is needed, I thought we agreed that we didn&apos;t need any code to enter the sandbox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010694</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-05-20 21:03:02 -0700</bug_when>
    <thetext>DerivedSources.make has a rule to process the three profiles for Mac from .sb.in. We can put iOS versions in a directory(directories?) that is not in VPATH, if there is a name conflict - there is no need to preprocess them, as they won&apos;t need any ifdefs.

Then we need to install the profiles into /usr/local/share/sandbox/embedded/profiles/builtin (will need to discuss whether we need a build alias as suggested). I don&apos;t know how that&apos;s done, but Xcode must have a  way.

For local testing, the profiles can be put in another special place, and edited even without rebuilding or installing roots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010808</commentid>
    <comment_count>11</comment_count>
      <attachid>231835</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-05-21 12:25:25 -0700</bug_when>
    <thetext>Created attachment 231835
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010816</commentid>
    <comment_count>12</comment_count>
      <attachid>231835</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-05-21 12:55:21 -0700</bug_when>
    <thetext>Comment on attachment 231835
Patch

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

&gt; Source/WebKit2/Shared/ios/ChildProcessIOS.mm:43
&gt; +#define ENABLE_MANUAL_SANDBOXING 0

Can any of the above includes be under this ifdef?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010832</commentid>
    <comment_count>13</comment_count>
      <attachid>231835</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-21 13:52:54 -0700</bug_when>
    <thetext>Comment on attachment 231835
Patch

Clearing flags on attachment: 231835

Committed r169176: &lt;http://trac.webkit.org/changeset/169176&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010833</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-21 13:52:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231530</attachid>
            <date>2014-05-15 12:12:43 -0700</date>
            <delta_ts>2014-05-19 15:45:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132963-20140515121219.patch</filename>
            <type>text/plain</type>
            <size>19149</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4OTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYmYwMjRmNTVlZjFmNGQ0
ODg1YjZjOTU4OTQ4YThiMDFiNTIwNGM1ZC4uNmYyZDgzMDhlYWVkYjM0YjVmYWNlNWMxYTcwZTBj
NWYyNDk1ZmU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTA1LTE1ICBPbGl2
ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIHNhbmRib3hpbmcg
Zm9yIHRoZSBkYXRhYmFzZSBwcm9jZXNzIG9uIGlvcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyOTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU2ltcGx5IGVuc3VyZSB0aGF0IHRoZSBkYXRhYmFzZSBw
cm9jZXNzIGlzIHJ1bm5pbmcgaW4gYSB0aWdodAorICAgICAgICBzYW5kYm94LiAgQXMgcGFydCBv
ZiB0aGlzIGkndmUgc2VwYXJhdGVkIG91dCBDaGlsZFByb2Nlc3NJT1MKKyAgICAgICAgYW5kIGVu
c3VyZXMgdGhhdCB0aGUgZGF0YWJhc2UgcHJvY2VzcyBsb2FkcyBhIGN1c3RvbSBzYW5kYm94Lgor
CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL2lvcy9EYXRhYmFzZVByb2Nlc3NJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOgorICAg
ICAgICAqIERhdGFiYXNlUHJvY2Vzcy9pb3MvY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXNJT1Mu
c2IuaW46IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9pb3MvQ2hpbGRQcm9jZXNzSU9TLm1tOiBB
ZGRlZC4KKyAgICAgICAgIEVzc2VudGlhbGx5IGEgY29weSBvZiBDaGlsZFByb2Nlc3NNYWMsIGJ1
dCB3aXRoICFQTEFURk9STShJT1MpCisgICAgICAgICBwYXRocyBzdHJpcHBlZCBvdXQuCisgICAg
ICAgIChXZWJLaXQ6OkNoaWxkUHJvY2Vzczo6c2V0QXBwbGljYXRpb25Jc0RhZW1vbik6CisgICAg
ICAgIChXZWJLaXQ6OkNoaWxkUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAg
KFdlYktpdDo6Q2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveCk6CisgICAgICAgIChXZWJL
aXQ6OkNoaWxkUHJvY2Vzczo6c2V0UU9TKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJv
Y2Vzc01hYy5tbToKKyAgICAgICAgIFJlbW92ZSBJT1Mgc3BlY2lmaWMgaWZkZWZzIGFzIHRoZXkn
cmUgbm8gbG9uZ2VyIG5lZWRlZAorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKwogMjAxNC0wNS0xNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAogICAgICAgICBbVUktc2lkZSBjb21wb3NpdGluZ10gRml4IGNvcHlpbmcgYW5pbWF0
aW9ucyBiZXR3ZWVuIGxheWVycywgYW5kIHBhdXNpbmcgdGhlbQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL2lvcy9EYXRhYmFzZVByb2Nlc3NJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvaW9zL0RhdGFiYXNlUHJvY2Vzc0lPUy5tbQppbmRl
eCA1Y2JjYTJiZjlhOGYxYTdiODEzMTc4ODY3YzQ0NmQ3ZGFjNzNkZmY4Li4yMGYzN2Q3NGMwM2Qw
ODA0ODg2M2RmMjc5MmY4M2ExYWRjN2NiMjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvaW9zL0RhdGFiYXNlUHJvY2Vzc0lPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvaW9zL0RhdGFiYXNlUHJvY2Vzc0lPUy5tbQpAQCAtMzEsOCAr
MzEsMTAgQEAKIAogI2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgog
I2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CisjaW1wb3J0IDxXZWJDb3JlL0Zp
bGVTeXN0ZW0uaD4KICNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbXBvcnQg
PFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8c2FuZGJveC5oPgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNDgsNyArNTAsMjEgQEAgdm9pZCBEYXRhYmFzZVByb2Nl
c3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlv
blBhcmEKIAogdm9pZCBEYXRhYmFzZVByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IENo
aWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgU2FuZGJveElu
aXRpYWxpemF0aW9uUGFyYW1ldGVycyYgc2FuZGJveFBhcmFtZXRlcnMpCiB7Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICAvLyBOZWVkIHRvIG92ZXJpZGUgdGhlIGRlZmF1bHQsIGJlY2F1c2Ug
c2VydmljZSBoYXMgYSBkaWZmZXJlbnQgYnVuZGxlIElELgorICAgIE5TQnVuZGxlICp3ZWJraXQy
QnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOk5TQ2xhc3NGcm9tU3RyaW5nKEAiV0tW
aWV3IildOworICAgIHNhbmRib3hQYXJhbWV0ZXJzLnNldE92ZXJyaWRlU2FuZGJveFByb2ZpbGVQ
YXRoKFt3ZWJraXQyQnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpAImNvbS5hcHBsZS5XZWJLaXQuRGF0
YWJhc2VzSU9TIiBvZlR5cGU6QCJzYiJdKTsKKyAgICBOU0FycmF5ICpwYXRocyA9IE5TU2VhcmNo
UGF0aEZvckRpcmVjdG9yaWVzSW5Eb21haW5zKE5TTGlicmFyeURpcmVjdG9yeSwgTlNVc2VyRG9t
YWluTWFzaywgWUVTKTsKKyAgICBOU1N0cmluZyAqbGlicmFyeURpcmVjdG9yeSA9IFtwYXRocyBv
YmplY3RBdEluZGV4OjBdOworICAgIFN0cmluZyBkYXRhYmFzZVBhdGggPSBbbGlicmFyeURpcmVj
dG9yeSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJXZWJLaXQvRGF0YWJhc2VzIl07
CisKKyAgICBjaGFyICp0b2tlbiA9IHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX2ZpbGUoImNvbS5h
cHBsZS5XZWJLaXQuZGF0YWJhc2VfY29udGFpbmVyX2RpciIsIGRhdGFiYXNlUGF0aC51dGY4KCku
ZGF0YSgpLCAwKTsKKyAgICBSRUxFQVNFX0FTU0VSVCh0b2tlbik7CisKKyAgICBDaGlsZFByb2Nl
c3M6OmluaXRpYWxpemVTYW5kYm94KHBhcmFtZXRlcnMsIHNhbmRib3hQYXJhbWV0ZXJzKTsKKwor
ICAgIGludDY0X3QgdCA9IHNhbmRib3hfZXh0ZW5zaW9uX2NvbnN1bWUodG9rZW4pOworICAgIFJF
TEVBU0VfQVNTRVJUKHQgIT0gLTEpOworICAgIGZyZWUodG9rZW4pOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9p
b3MvY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXNJT1Muc2IuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvaW9zL2NvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzSU9TLnNiLmluCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmJlMWYwZTdiNjU4ODU3OWI1MmZlMzU2ZTMxOTQzOTc0MTY0ZWM4YTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvaW9zL2NvbS5hcHBs
ZS5XZWJLaXQuRGF0YWJhc2VzSU9TLnNiLmluCkBAIC0wLDAgKzEsMzUgQEAKKzsgQ29weXJpZ2h0
IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKzsKKzsgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Cis7IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworOyBhcmUgbWV0OgorOyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorOyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCis7IDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Cis7ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKzsgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKzsKKzsgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworOyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKzsgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorOyBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KzsgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorOyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorOyBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKzsgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKzsgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKzsgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorOyBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyh2ZXJzaW9uIDEpCisoZGVueSBkZWZhdWx0ICh3
aXRoIHBhcnRpYWwtc3ltYm9saWNhdGlvbikpCisoYWxsb3cgc3lzdGVtLWF1ZGl0IGZpbGUtcmVh
ZC1tZXRhZGF0YSkKKworKGFsbG93IGZpbGUtcmVhZCogZmlsZS13cml0ZSogKGV4dGVuc2lvbiDi
gJxjb20uYXBwbGUuWW91clByb2plY3QuZGF0YWJhc2VfY29udGFpbmVyX2RpcuKAnSkpCisoZGVu
eSBmaWxlLXdyaXRlLWNyZWF0ZSAodm5vZGUtdHlwZSBTWU1MSU5LKSkpCisKKzs7IEZJWE1FOiBT
aG91bGQgYmUgcmVtb3ZlZCBvbmNlIDxyZGFyOi8vcHJvYmxlbS8xNjMyOTA4Nz4gaXMgZml4ZWQu
CisoZGVueSBmaWxlLXdyaXRlLXhhdHRyICh4YXR0ciAiY29tLmFwcGxlLnF1YXJhbnRpbmUiKSAo
d2l0aCBuby1sb2cpKQorCis7OyBSZXNlcnZlIGEgbmFtZXNwYWNlIGZvciBhZGRpdGlvbmFsIHBy
b3RlY3RlZCBleHRlbmRlZCBhdHRyaWJ1dGVzLgorKGRlbnkgZmlsZS1yZWFkLXhhdHRyIGZpbGUt
d3JpdGUteGF0dHIgKHhhdHRyLXJlZ2V4ICMiXmNvbVwuYXBwbGVcLnNlY3VyaXR5XC5wcml2YXRl
XC4iKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvQ2hpbGRQcm9jZXNz
SU9TLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9DaGlsZFByb2Nlc3NJT1MubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDJiZmU3YTE4YjE2ZWQ0NzIxOGU5MGIwZmYxZjA4NGM3MjU4ODZlZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvQ2hpbGRQcm9jZXNzSU9TLm1t
CkBAIC0wLDAgKzEsMTE5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNp
ZiBQTEFURk9STShJT1MpCisKKyNpbXBvcnQgIkNoaWxkUHJvY2Vzcy5oIgorCisjaW1wb3J0ICJT
YW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCisjaW1wb3J0ICJXZWJLaXRTeXN0ZW1J
bnRlcmZhY2UuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9TeXN0ZW1WZXJzaW9uTWFjLmg+CisjaW1wb3J0IDxtYWNoL21hY2guaD4KKyNpbXBvcnQg
PG1hY2gvdGFzay5oPgorI2ltcG9ydCA8cHdkLmg+CisjaW1wb3J0IDxzdGRsaWIuaD4KKyNpbXBv
cnQgPHN5c2V4aXRzLmg+CisKKy8vIFdlIGhhdmUgdG8gI3VuZGVmIF9fQVBQTEVfQVBJX1BSSVZB
VEUgdG8gcHJldmVudCBzYW5kYm94LmggZnJvbSBsb29raW5nIGZvciBhIGhlYWRlciBmaWxlIHRo
YXQgZG9lcyBub3QgZXhpc3QgKDxyZGFyOi8vcHJvYmxlbS85Njc5MjExPikuIAorI3VuZGVmIF9f
QVBQTEVfQVBJX1BSSVZBVEUKKyNpbXBvcnQgPHNhbmRib3guaD4KKworI2RlZmluZSBTQU5EQk9Y
X05BTUVEX0VYVEVSTkFMIDB4MDAwMworZXh0ZXJuICJDIiBpbnQgc2FuZGJveF9pbml0X3dpdGhf
cGFyYW1ldGVycyhjb25zdCBjaGFyICpwcm9maWxlLCB1aW50NjRfdCBmbGFncywgY29uc3QgY2hh
ciAqY29uc3QgcGFyYW1ldGVyc1tdLCBjaGFyICoqZXJyb3JidWYpOworCisjaWZkZWYgX19oYXNf
aW5jbHVkZQorI2lmIF9faGFzX2luY2x1ZGUoPEhJU2VydmljZXMvUHJvY2Vzc2VzUHJpdi5oPikK
KyNpbmNsdWRlIDxISVNlcnZpY2VzL1Byb2Nlc3Nlc1ByaXYuaD4KKyNlbmRpZgorI2VuZGlmCisK
K2V4dGVybiAiQyIgT1NTdGF0dXMgU2V0QXBwbGljYXRpb25Jc0RhZW1vbihCb29sZWFuIGlzRGFl
bW9uKTsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgewor
Cit2b2lkIENoaWxkUHJvY2Vzczo6c2V0QXBwbGljYXRpb25Jc0RhZW1vbigpCit7Cit9CisKK3Zv
aWQgQ2hpbGRQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworICAgIFtbTlNGaWxlTWFu
YWdlciBkZWZhdWx0TWFuYWdlcl0gY2hhbmdlQ3VycmVudERpcmVjdG9yeVBhdGg6W1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBidW5kbGVQYXRoXV07Cit9CisKK3ZvaWQgQ2hpbGRQcm9jZXNzOjppbml0
aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHNhbmRib3hQYXJh
bWV0ZXJzKQoreworICAgIE5TQnVuZGxlICp3ZWJraXQyQnVuZGxlID0gW05TQnVuZGxlIGJ1bmRs
ZUZvckNsYXNzOk5TQ2xhc3NGcm9tU3RyaW5nKEAiV0tWaWV3IildOworICAgIFN0cmluZyBkZWZh
dWx0UHJvZmlsZVBhdGggPSBbd2Via2l0MkJ1bmRsZSBwYXRoRm9yUmVzb3VyY2U6W1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSBvZlR5cGU6QCJzYiJdOworCisgICAgaWYg
KHNhbmRib3hQYXJhbWV0ZXJzLnN5c3RlbURpcmVjdG9yeVN1ZmZpeCgpLmlzTnVsbCgpKSB7Cisg
ICAgICAgIFN0cmluZyBkZWZhdWx0U3lzdGVtRGlyZWN0b3J5U3VmZml4ID0gU3RyaW5nKFtbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0pICsgIisiICsgcGFyYW1ldGVycy5j
bGllbnRJZGVudGlmaWVyOworICAgICAgICBzYW5kYm94UGFyYW1ldGVycy5zZXRTeXN0ZW1EaXJl
Y3RvcnlTdWZmaXgoZGVmYXVsdFN5c3RlbURpcmVjdG9yeVN1ZmZpeCk7CisgICAgfQorCisgICAg
c3dpdGNoIChzYW5kYm94UGFyYW1ldGVycy5tb2RlKCkpIHsKKyAgICBjYXNlIFNhbmRib3hJbml0
aWFsaXphdGlvblBhcmFtZXRlcnM6OlVzZURlZmF1bHRTYW5kYm94UHJvZmlsZVBhdGg6CisgICAg
Y2FzZSBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzOjpVc2VPdmVycmlkZVNhbmRib3hQ
cm9maWxlUGF0aDogeworICAgICAgICBTdHJpbmcgc2FuZGJveFByb2ZpbGVQYXRoID0gc2FuZGJv
eFBhcmFtZXRlcnMubW9kZSgpID09IFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnM6OlVz
ZURlZmF1bHRTYW5kYm94UHJvZmlsZVBhdGggPyBkZWZhdWx0UHJvZmlsZVBhdGggOiBzYW5kYm94
UGFyYW1ldGVycy5vdmVycmlkZVNhbmRib3hQcm9maWxlUGF0aCgpOworICAgICAgICBpZiAoIXNh
bmRib3hQcm9maWxlUGF0aC5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIENTdHJpbmcgcHJvZmls
ZVBhdGggPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc2FuZGJveFByb2ZpbGVQYXRoKTsKKyAg
ICAgICAgICAgIGNoYXIqIGVycm9yQnVmOworICAgICAgICAgICAgaWYgKHNhbmRib3hfaW5pdF93
aXRoX3BhcmFtZXRlcnMocHJvZmlsZVBhdGguZGF0YSgpLCBTQU5EQk9YX05BTUVEX0VYVEVSTkFM
LCBzYW5kYm94UGFyYW1ldGVycy5uYW1lZFBhcmFtZXRlckFycmF5KCksICZlcnJvckJ1ZikpIHsK
KyAgICAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIiVzOiBDb3VsZG4ndCBpbml0aWFsaXplIHNh
bmRib3ggcHJvZmlsZSBbJXNdLCBlcnJvciAnJXMnXG4iLCBnZXRwcm9nbmFtZSgpLCBwcm9maWxl
UGF0aC5kYXRhKCksIGVycm9yQnVmKTsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0g
MCwgY291bnQgPSBzYW5kYm94UGFyYW1ldGVycy5jb3VudCgpOyBpICE9IGNvdW50OyArK2kpCisg
ICAgICAgICAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXM9JXNcbiIsIHNhbmRib3hQYXJhbWV0
ZXJzLm5hbWUoaSksIHNhbmRib3hQYXJhbWV0ZXJzLnZhbHVlKGkpKTsKKyAgICAgICAgICAgICAg
ICBleGl0KEVYX05PUEVSTSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgY2FzZSBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzOjpV
c2VTYW5kYm94UHJvZmlsZTogeworICAgICAgICBjaGFyKiBlcnJvckJ1ZjsKKyAgICAgICAgaWYg
KHNhbmRib3hfaW5pdF93aXRoX3BhcmFtZXRlcnMoc2FuZGJveFBhcmFtZXRlcnMuc2FuZGJveFBy
b2ZpbGUoKS51dGY4KCkuZGF0YSgpLCAwLCBzYW5kYm94UGFyYW1ldGVycy5uYW1lZFBhcmFtZXRl
ckFycmF5KCksICZlcnJvckJ1ZikpIHsKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXM6IENv
dWxkbid0IGluaXRpYWxpemUgc2FuZGJveCBwcm9maWxlLCBlcnJvciAnJXMnXG4iLCBnZXRwcm9n
bmFtZSgpLCBlcnJvckJ1Zik7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMCwgY291bnQg
PSBzYW5kYm94UGFyYW1ldGVycy5jb3VudCgpOyBpICE9IGNvdW50OyArK2kpCisgICAgICAgICAg
ICAgICAgV1RGTG9nQWx3YXlzKCIlcz0lc1xuIiwgc2FuZGJveFBhcmFtZXRlcnMubmFtZShpKSwg
c2FuZGJveFBhcmFtZXRlcnMudmFsdWUoaSkpOworICAgICAgICAgICAgZXhpdChFWF9OT1BFUk0p
OworICAgICAgICB9CisKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIH0KKworfQorCit2b2lk
IENoaWxkUHJvY2Vzczo6c2V0UU9TKGludCwgaW50KQoreworCit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
Q2hpbGRQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nl
c3NNYWMubW0KaW5kZXggZmM4MzM3MDc4ZWIyMDljZDk0ZmRhOTU3NTg0ZWVhNDAxZDMzN2ZkOS4u
ZmVmMjc3YTVjYTUyNzUzZDJjOGRkZDA4NzYxN2U0ZjM2M2RhZGJjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KQEAgLTI0LDYgKzI0LDggQEAKICAq
LwogCiAjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFBMQVRGT1JNKE1BQykKICNpbXBvcnQgIkNo
aWxkUHJvY2Vzcy5oIgogCiAjaW1wb3J0ICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
LmgiCkBAIC01Myw3ICs1NSw3IEBAIGV4dGVybiAiQyIgaW50IHNhbmRib3hfaW5pdF93aXRoX3Bh
cmFtZXRlcnMoY29uc3QgY2hhciAqcHJvZmlsZSwgdWludDY0X3QgZmxhZ3MsCiAjZW5kaWYKICNl
bmRpZgogCi0jaWYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDkwCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkw
CiB0eXBlZGVmIGJvb2wgKF5MU1NlcnZlckNvbm5lY3Rpb25BbGxvd2VkQmxvY2spICggQ0ZEaWN0
aW9uYXJ5UmVmIG9wdGlvbnNSZWYgKTsKIGV4dGVybiAiQyIgdm9pZCBfTFNTZXRBcHBsaWNhdGlv
bkxhdW5jaFNlcnZpY2VzU2VydmVyQ29ubmVjdGlvblN0YXR1cyh1aW50NjRfdCBmbGFncywgTFNT
ZXJ2ZXJDb25uZWN0aW9uQWxsb3dlZEJsb2NrIGJsb2NrKTsKIGV4dGVybiAiQyIgQ0ZEaWN0aW9u
YXJ5UmVmIF9MU0FwcGxpY2F0aW9uQ2hlY2tJbihpbnQgc2Vzc2lvbklELCBDRkRpY3Rpb25hcnlS
ZWYgYXBwbGljYXRpb25JbmZvKTsKQEAgLTY1LDcgKzY3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi0jaWYgIVBMQVRGT1JNKElPUykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiBzdGF0aWMgdm9pZCBpbml0aWFsaXplVGltZXJDb2Fs
ZXNjaW5nUG9saWN5KCkKIHsKICAgICAvLyBTZXQgdGFza19sYXRlbmN5IGFuZCB0YXNrX3Rocm91
Z2hwdXQgUU9TIHRpZXJzIGFzIGFwcHJvcHJpYXRlIGZvciBhIHZpc2libGUgYXBwbGljYXRpb24u
CkBAIC03Nyw3ICs3OSw2IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVUaW1lckNvYWxlc2NpbmdQ
b2xpY3koKQogCiB2b2lkIENoaWxkUHJvY2Vzczo6c2V0QXBwbGljYXRpb25Jc0RhZW1vbigpCiB7
Ci0jaWYgIVBMQVRGT1JNKElPUykKICAgICBPU1N0YXR1cyBlcnJvciA9IFNldEFwcGxpY2F0aW9u
SXNEYWVtb24odHJ1ZSk7CiAgICAgQVNTRVJUX1VOVVNFRChlcnJvciwgZXJyb3IgPT0gbm9FcnIp
OwogCkBAIC04NSwxMiArODYsMTEgQEAgdm9pZCBDaGlsZFByb2Nlc3M6OnNldEFwcGxpY2F0aW9u
SXNEYWVtb24oKQogICAgIF9MU1NldEFwcGxpY2F0aW9uTGF1bmNoU2VydmljZXNTZXJ2ZXJDb25u
ZWN0aW9uU3RhdHVzKDAsIDApOwogICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IHVudXNl
ZCA9IF9MU0FwcGxpY2F0aW9uQ2hlY2tJbigtMiwgQ0ZCdW5kbGVHZXRJbmZvRGljdGlvbmFyeShD
RkJ1bmRsZUdldE1haW5CdW5kbGUoKSkpOwogI2VuZGlmCi0jZW5kaWYgLy8gIVBMQVRGT1JNKElP
UykKIH0KIAogdm9pZCBDaGlsZFByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiB7Ci0jaWYg
IVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkw
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiAgICAgaW5pdGlh
bGl6ZVRpbWVyQ29hbGVzY2luZ1BvbGljeSgpOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oSU9TKQpA
QCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChj
b25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmCiAgICAgU3RyaW5nIG9z
VmVyc2lvbiA9IG9zVmVyc2lvblBhcnRzWzBdICsgJy4nICsgb3NWZXJzaW9uUGFydHNbMV07CiAg
ICAgc2FuZGJveFBhcmFtZXRlcnMuYWRkUGFyYW1ldGVyKCJfT1NfVkVSU0lPTiIsIG9zVmVyc2lv
bi51dGY4KCkuZGF0YSgpKTsKIAotI2lmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA4MAogICAgIC8vIFVzZSBwcml2YXRlIHRlbXBvcmFyeSBhbmQgY2FjaGUgZGly
ZWN0b3JpZXMuCiAgICAgc2V0ZW52KCJESVJIRUxQRVJfVVNFUl9ESVJfU1VGRklYIiwgZmlsZVN5
c3RlbVJlcHJlc2VudGF0aW9uKHNhbmRib3hQYXJhbWV0ZXJzLnN5c3RlbURpcmVjdG9yeVN1ZmZp
eCgpKS5kYXRhKCksIDApOwogICAgIGNoYXIgdGVtcG9yYXJ5RGlyZWN0b3J5W1BBVEhfTUFYXTsK
QEAgLTE4NywxNCArMTg3LDEyIEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJv
eChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmCiAgICAgfQogICAg
IH0KIAotI2lmICFQTEFURk9STShJT1MpCiAgICAgLy8gVGhpcyB3aWxsIG92ZXJyaWRlIExTRmls
ZVF1YXJhbnRpbmVFbmFibGVkIGZyb20gSW5mby5wbGlzdCB1bmxlc3Mgc2FuZGJveCBxdWFyYW50
aW5lIGlzIGdsb2JhbGx5IGRpc2FibGVkLgogICAgIE9TU3RhdHVzIGVycm9yID0gV0tFbmFibGVT
YW5kYm94U3R5bGVGaWxlUXVhcmFudGluZSgpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBX
VEZMb2dBbHdheXMoIiVzOiBDb3VsZG4ndCBlbmFibGUgc2FuZGJveCBzdHlsZSBmaWxlIHF1YXJh
bnRpbmU6ICVsZFxuIiwgZ2V0cHJvZ25hbWUoKSwgKGxvbmcpZXJyb3IpOwogICAgICAgICBleGl0
KEVYX05PUEVSTSk7CiAgICAgfQotI2VuZGlmCiB9CiAKICNpZiBVU0UoQVBQS0lUKQpAQCAtMjEw
LDcgKzIwOCw3IEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKCkKIAogdm9p
ZCBDaGlsZFByb2Nlc3M6OnNldFFPUyhpbnQgbGF0ZW5jeVFPUywgaW50IHRocm91Z2hwdXRRT1Mp
CiB7Ci0jaWYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDkwCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiAg
ICAgaWYgKCFsYXRlbmN5UU9TICYmICF0aHJvdWdocHV0UU9TKQogICAgICAgICByZXR1cm47CiAK
QEAgLTIyNywzICsyMjUsNSBAQCB2b2lkIENoaWxkUHJvY2Vzczo6c2V0UU9TKGludCBsYXRlbmN5
UU9TLCBpbnQgdGhyb3VnaHB1dFFPUykKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDg0ZDNmOGFjNmYxODY4YWFlYTI1OWI1NTc0NTY5ZTcyYTNlOTQ5YjUuLjY3YTcz
ZTM4OGU2NzM0MzI2NDcwODY0MWE5NmI1NDY4ZWI5MDczMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNTcsNiArMTA1Nyw4
IEBACiAJCUE1RUZEMzhDMTZCMEU4OEMwMEIyRjBFOCAvKiBXS1BhZ2VWaXNpYmlsaXR5VHlwZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1RUZEMzhC
MTZCMEU4OEMwMEIyRjBFOCAvKiBXS1BhZ2VWaXNpYmlsaXR5VHlwZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBN0Q3OTJENjE3NjdDQjZFMDA4
ODFDQkUgLyogQWN0aXZpdHlBc3NlcnRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTdENzkyRDUxNzY3Q0I2RTAwODgxQ0JFIC8qIEFjdGl2aXR5
QXNzZXJ0aW9uLmNwcCAqLzsgfTsKIAkJQTdENzkyRDgxNzY3Q0NBMzAwODgxQ0JFIC8qIEFjdGl2
aXR5QXNzZXJ0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBN0Q3OTJENDE3NjdDQjA5MDA4ODFDQkUgLyogQWN0aXZpdHlBc3NlcnRpb24uaCAqLzsg
fTsKKwkJQTdFOTNDRUExOTI1MjdCNjAwQTFEQzQ4IC8qIGNvbS5hcHBsZS5XZWJLaXQuRGF0YWJh
c2VzSU9TLnNiLmluIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBN0U5M0NFOTE5MjUyN0I2MDBBMURDNDggLyogY29tLmFwcGxlLldlYktpdC5EYXRhYmFz
ZXNJT1Muc2IuaW4gKi87IH07CisJCUE3RTkzQ0VEMTkyNTMzMTEwMEExREM0OCAvKiBDaGlsZFBy
b2Nlc3NJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBN0U5M0NFQjE5MjUzMUFBMDBBMURDNDggLyogQ2hpbGRQcm9jZXNzSU9TLm1tICovOyB9Owog
CQlCNjJFNzMxMDE0MzA0N0E2MDA2OUVDMzUgLyogV0tIaXRUZXN0UmVzdWx0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI2MkU3MzBGMTQzMDQ3QTYw
MDY5RUMzNSAvKiBXS0hpdFRlc3RSZXN1bHQuY3BwICovOyB9OwogCQlCNjJFNzMxMjE0MzA0N0Iw
MDA2OUVDMzUgLyogV0tIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCNjJFNzMxMTE0MzA0N0IwMDA2OUVDMzUgLyogV0tIaXRUZXN0
UmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQjYzNDAzRjkxNDkxMEQ1NzAwMTA3MEI1IC8qIEFQSU9iamVjdC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNjM0MDNGODE0OTEwRDU3MDAxMDcw
QjUgLyogQVBJT2JqZWN0LmNwcCAqLzsgfTsKQEAgLTMwMzksNiArMzA0MSw4IEBACiAJCUE3MkQ1
RDdGMTIzNkNCQTgwMEE4OEIxNSAvKiBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3RDc5MkQ0MTc2N0NCMDkwMDg4MUNCRSAvKiBB
Y3Rpdml0eUFzc2VydGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY3Rpdml0eUFzc2VydGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0Q3OTJENTE3NjdDQjZFMDA4ODFDQkUgLyog
QWN0aXZpdHlBc3NlcnRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQWN0aXZpdHlBc3NlcnRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
N0U5M0NFOTE5MjUyN0I2MDBBMURDNDggLyogY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXNJT1Mu
c2IuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXNJ
T1Muc2IuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3RTkzQ0VCMTkyNTMxQUEw
MEExREM0OCAvKiBDaGlsZFByb2Nlc3NJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IG5hbWUgPSBDaGlsZFByb2Nlc3NJT1MubW07IHBhdGggPSBpb3MvQ2hpbGRQcm9jZXNz
SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMzk2RUE1NTEyRTBFRDJEMDBG
NEZFQjcgLyogY29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNvbmZp
Zy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNjJFNzMwRjE0MzA0N0E2MDA2OUVD
MzUgLyogV0tIaXRUZXN0UmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdLSGl0VGVzdFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUI2MkU3MzExMTQzMDQ3QjAwMDY5RUMzNSAvKiBXS0hpdFRlc3RSZXN1bHQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tIaXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC00NjAxLDYgKzQ2MDUsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJ
MkRBOTQ0OUQxODg0RTRGMDAwRUQ4NkRCIC8qIEdlc3R1cmVUeXBlcy5oICovLAogCQkJCTJEQTk0
NDk3MTg4NEU0RjAwMEVEODZEQiAvKiBOYXRpdmVXZWJLZXlib2FyZEV2ZW50SU9TLm1tICovLAor
CQkJCUE3RTkzQ0VCMTkyNTMxQUEwMEExREM0OCAvKiBDaGlsZFByb2Nlc3NJT1MubW0gKi8sCiAJ
CQkJMkRBOTQ0OTgxODg0RTRGMDAwRUQ4NkRCIC8qIE5hdGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0g
Ki8sCiAJCQkJQTExOEE5RUMxOTA3QUQ2RjAwRjdDOTJCIC8qIFF1aWNrTG9va0RvY3VtZW50RGF0
YS5jcHAgKi8sCiAJCQkJQTExOEE5RUQxOTA3QUQ2RjAwRjdDOTJCIC8qIFF1aWNrTG9va0RvY3Vt
ZW50RGF0YS5oICovLApAQCAtNjc1OCw2ICs2NzYzLDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCiAJCQkJRTFGRUYzOUMxOTBGNzkxQzAwNzMxNjU4IC8qIERhdGFiYXNl
UHJvY2Vzc0lPUy5tbSAqLywKKwkJCQlBN0U5M0NFOTE5MjUyN0I2MDBBMURDNDggLyogY29tLmFw
cGxlLldlYktpdC5EYXRhYmFzZXNJT1Muc2IuaW4gKi8sCiAJCQkpOwogCQkJcGF0aCA9IGlvczsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC04MDE4LDYgKzgwMjQsNyBAQAogCQkJaXNh
ID0gUEJYUmVzb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQlBN0U5M0NFQTE5MjUyN0I2MDBBMURDNDggLyogY29tLmFw
cGxlLldlYktpdC5EYXRhYmFzZXNJT1Muc2IuaW4gaW4gUmVzb3VyY2VzICovLAogCQkJCTUxRkEx
RTFGMTgwQ0NBREUwMEM0NEJFOSAvKiBXZWJLaXQuaWNucyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC04NjgzLDYg
Kzg2OTAsNyBAQAogCQkJCTFBMUIwRUI1MThBNDI0OTUwMDM4NDgxQSAvKiBXS05hdmlnYXRpb25S
ZXNwb25zZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBMEVDOTA3MTI0QzBBQjgwMDdFRjRBNSAv
KiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTBFQzkx
MDEyNEMwQUY1MDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUE3RTkzQ0VEMTkyNTMzMTEwMEExREM0OCAvKiBDaGlsZFByb2Nl
c3NJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQkyREQxM0JENTE4RjdEQUREMDBFMTMwQTEgLyog
RmluZENvbnRyb2xsZXJJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTc4NjVCOTE2Q0FDNzE1
MDBBQ0U4M0EgLyogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkJCNkQwMTQxMTdCNEQwMDBGMzVENCAvKiBQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231727</attachid>
            <date>2014-05-19 15:45:36 -0700</date>
            <delta_ts>2014-05-20 13:37:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132963-20140519154512.patch</filename>
            <type>text/plain</type>
            <size>13320</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5MDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjRhOTQwMDUzNzI3YmE1
YjJlNDExYWM4MjBkYTVjYjJlNjI3Nzc3YS4uZTM0ZTFmNGMxNTczYzY2OTJkNTMzMWJmZjdiZDAy
OGVjMGYyNGQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTA1LTE1ICBPbGl2
ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIHNhbmRib3hpbmcg
Zm9yIHRoZSBkYXRhYmFzZSBwcm9jZXNzIG9uIGlvcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyOTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU2ltcGx5IGVuc3VyZSB0aGF0IHRoZSBkYXRhYmFzZSBw
cm9jZXNzIGlzIHJ1bm5pbmcgaW4gYSB0aWdodAorICAgICAgICBzYW5kYm94LiAgQXMgcGFydCBv
ZiB0aGlzIGkndmUgc2VwYXJhdGVkIG91dCBDaGlsZFByb2Nlc3NJT1MKKyAgICAgICAgYW5kIGVu
c3VyZXMgdGhhdCB0aGUgZGF0YWJhc2UgcHJvY2VzcyBsb2FkcyBhIGN1c3RvbSBzYW5kYm94Lgor
ICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9pb3MvRGF0YWJhc2VQcm9jZXNzSU9TLm1tOgorICAg
ICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KToKKyAgICAg
ICAgKiBEYXRhYmFzZVByb2Nlc3MvaW9zL2NvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzSU9TLnNi
LmluOiBBZGRlZC4KKyAgICAgICAgKiBTaGFyZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbTogQWRk
ZWQuCisgICAgICAgICBFc3NlbnRpYWxseSBhIGNvcHkgb2YgQ2hpbGRQcm9jZXNzTWFjLCBidXQg
d2l0aCAhUExBVEZPUk0oSU9TKQorICAgICAgICAgcGF0aHMgc3RyaXBwZWQgb3V0LgorICAgICAg
ICAoV2ViS2l0OjpDaGlsZFByb2Nlc3M6OnNldEFwcGxpY2F0aW9uSXNEYWVtb24pOgorICAgICAg
ICAoV2ViS2l0OjpDaGlsZFByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgIChX
ZWJLaXQ6OkNoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOgorICAgICAgICAoV2ViS2l0
OjpDaGlsZFByb2Nlc3M6OnNldFFPUyk6CisgICAgICAgICogU2hhcmVkL21hYy9DaGlsZFByb2Nl
c3NNYWMubW06CisgICAgICAgICBSZW1vdmUgSU9TIHNwZWNpZmljIGlmZGVmcyBhcyB0aGV5J3Jl
IG5vIGxvbmdlciBuZWVkZWQKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTQtMDUtMTkgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW2lPU11bV0syXSBXaGVuIGEgcGFnZSByZWxheW91dCBvbiBkeW5hbWlj
IHJlc2l6ZSwga2VlcCB0aGUgc2FtZSByZWxhdGl2ZSB3aWR0aCBpbiB2aWV3CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvaW9zL0RhdGFiYXNlUHJvY2Vzc0lPUy5t
bSBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9pb3MvRGF0YWJhc2VQcm9jZXNzSU9T
Lm1tCmluZGV4IDVjYmNhMmJmOWE4ZjFhN2I4MTMxNzg4NjdjNDQ2ZDdkYWM3M2RmZjguLjY1MTVh
YTFiNWEyNTc4MWIwNzVlZmE5NThkMGIzZDQyY2RhYTM5MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9pb3MvRGF0YWJhc2VQcm9jZXNzSU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9pb3MvRGF0YWJhc2VQcm9jZXNzSU9TLm1tCkBA
IC0zMCw5ICszMCwxMSBAQAogI2ltcG9ydCAiRGF0YWJhc2VQcm9jZXNzLmgiCiAKICNpbXBvcnQg
IlNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRmls
ZVN5c3RlbS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZh
Y2UuaD4KKyNpbXBvcnQgPHNhbmRib3guaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
QEAgLTQ4LDcgKzUwLDEwIEBAIHZvaWQgRGF0YWJhc2VQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vz
c05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhCiAKIHZvaWQgRGF0YWJh
c2VQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXph
dGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMmIHNhbmRib3hQYXJhbWV0ZXJzKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgLy8g
TmVlZCB0byBvdmVyaWRlIHRoZSBkZWZhdWx0LCBiZWNhdXNlIHNlcnZpY2UgaGFzIGEgZGlmZmVy
ZW50IGJ1bmRsZSBJRC4KKyAgICBOU0J1bmRsZSAqd2Via2l0MkJ1bmRsZSA9IFtOU0J1bmRsZSBi
dW5kbGVGb3JDbGFzczpOU0NsYXNzRnJvbVN0cmluZyhAIldLVmlldyIpXTsKKyAgICBzYW5kYm94
UGFyYW1ldGVycy5zZXRPdmVycmlkZVNhbmRib3hQcm9maWxlUGF0aChbd2Via2l0MkJ1bmRsZSBw
YXRoRm9yUmVzb3VyY2U6QCJjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlc0lPUyIgb2ZUeXBlOkAi
c2IiXSk7CisgICAgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChwYXJhbWV0ZXJzLCBz
YW5kYm94UGFyYW1ldGVycyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL2lvcy9jb20uYXBwbGUuV2ViS2l0LkRh
dGFiYXNlc0lPUy5zYi5pbiBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9pb3MvY29t
LmFwcGxlLldlYktpdC5EYXRhYmFzZXNJT1Muc2IuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjA5YTdkZmE2OWVj
OTIyZGQyNmMwODlkOGQ2ZTAxNDY1NWRkMmI1YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9pb3MvY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXNJT1Mu
c2IuaW4KQEAgLTAsMCArMSwzNCBAQAorOyBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorOworOyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKzsgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCis7IGFyZSBt
ZXQ6Cis7IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Cis7ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKzsgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKzsgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorOyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorOworOyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCis7IEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
OyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCis7IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworOyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCis7IENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCis7IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworOyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorOyBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorOyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCis7IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworKHZlcnNpb24gMSkKKyhkZW55IGRlZmF1bHQgKHdpdGggcGFydGlhbC1zeW1ib2xpY2F0
aW9uKSkKKyhhbGxvdyBzeXN0ZW0tYXVkaXQgZmlsZS1yZWFkLW1ldGFkYXRhKQorCisoZGVueSBm
aWxlLXdyaXRlLWNyZWF0ZSAodm5vZGUtdHlwZSBTWU1MSU5LKSkpCisKKzs7IEZJWE1FOiBTaG91
bGQgYmUgcmVtb3ZlZCBvbmNlIDxyZGFyOi8vcHJvYmxlbS8xNjMyOTA4Nz4gaXMgZml4ZWQuCiso
ZGVueSBmaWxlLXdyaXRlLXhhdHRyICh4YXR0ciAiY29tLmFwcGxlLnF1YXJhbnRpbmUiKSAod2l0
aCBuby1sb2cpKQorCis7OyBSZXNlcnZlIGEgbmFtZXNwYWNlIGZvciBhZGRpdGlvbmFsIHByb3Rl
Y3RlZCBleHRlbmRlZCBhdHRyaWJ1dGVzLgorKGRlbnkgZmlsZS1yZWFkLXhhdHRyIGZpbGUtd3Jp
dGUteGF0dHIgKHhhdHRyLXJlZ2V4ICMiXmNvbVwuYXBwbGVcLnNlY3VyaXR5XC5wcml2YXRlXC4i
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFj
Lm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KaW5kZXgg
ZmM4MzM3MDc4ZWIyMDljZDk0ZmRhOTU3NTg0ZWVhNDAxZDMzN2ZkOS4uZmVmMjc3YTVjYTUyNzUz
ZDJjOGRkZDA4NzYxN2U0ZjM2M2RhZGJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9DaGlsZFByb2Nlc3NNYWMubW0KQEAgLTI0LDYgKzI0LDggQEAKICAqLwogCiAjaW1wb3J0ICJj
b25maWcuaCIKKworI2lmIFBMQVRGT1JNKE1BQykKICNpbXBvcnQgIkNoaWxkUHJvY2Vzcy5oIgog
CiAjaW1wb3J0ICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCkBAIC01Myw3ICs1
NSw3IEBAIGV4dGVybiAiQyIgaW50IHNhbmRib3hfaW5pdF93aXRoX3BhcmFtZXRlcnMoY29uc3Qg
Y2hhciAqcHJvZmlsZSwgdWludDY0X3QgZmxhZ3MsCiAjZW5kaWYKICNlbmRpZgogCi0jaWYgIVBM
QVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiB0eXBlZGVmIGJvb2wg
KF5MU1NlcnZlckNvbm5lY3Rpb25BbGxvd2VkQmxvY2spICggQ0ZEaWN0aW9uYXJ5UmVmIG9wdGlv
bnNSZWYgKTsKIGV4dGVybiAiQyIgdm9pZCBfTFNTZXRBcHBsaWNhdGlvbkxhdW5jaFNlcnZpY2Vz
U2VydmVyQ29ubmVjdGlvblN0YXR1cyh1aW50NjRfdCBmbGFncywgTFNTZXJ2ZXJDb25uZWN0aW9u
QWxsb3dlZEJsb2NrIGJsb2NrKTsKIGV4dGVybiAiQyIgQ0ZEaWN0aW9uYXJ5UmVmIF9MU0FwcGxp
Y2F0aW9uQ2hlY2tJbihpbnQgc2Vzc2lvbklELCBDRkRpY3Rpb25hcnlSZWYgYXBwbGljYXRpb25J
bmZvKTsKQEAgLTY1LDcgKzY3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi0jaWYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDkwCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDkwCiBzdGF0aWMgdm9pZCBpbml0aWFsaXplVGltZXJDb2FsZXNjaW5nUG9saWN5KCkK
IHsKICAgICAvLyBTZXQgdGFza19sYXRlbmN5IGFuZCB0YXNrX3Rocm91Z2hwdXQgUU9TIHRpZXJz
IGFzIGFwcHJvcHJpYXRlIGZvciBhIHZpc2libGUgYXBwbGljYXRpb24uCkBAIC03Nyw3ICs3OSw2
IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVUaW1lckNvYWxlc2NpbmdQb2xpY3koKQogCiB2b2lk
IENoaWxkUHJvY2Vzczo6c2V0QXBwbGljYXRpb25Jc0RhZW1vbigpCiB7Ci0jaWYgIVBMQVRGT1JN
KElPUykKICAgICBPU1N0YXR1cyBlcnJvciA9IFNldEFwcGxpY2F0aW9uSXNEYWVtb24odHJ1ZSk7
CiAgICAgQVNTRVJUX1VOVVNFRChlcnJvciwgZXJyb3IgPT0gbm9FcnIpOwogCkBAIC04NSwxMiAr
ODYsMTEgQEAgdm9pZCBDaGlsZFByb2Nlc3M6OnNldEFwcGxpY2F0aW9uSXNEYWVtb24oKQogICAg
IF9MU1NldEFwcGxpY2F0aW9uTGF1bmNoU2VydmljZXNTZXJ2ZXJDb25uZWN0aW9uU3RhdHVzKDAs
IDApOwogICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IHVudXNlZCA9IF9MU0FwcGxpY2F0
aW9uQ2hlY2tJbigtMiwgQ0ZCdW5kbGVHZXRJbmZvRGljdGlvbmFyeShDRkJ1bmRsZUdldE1haW5C
dW5kbGUoKSkpOwogI2VuZGlmCi0jZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKIH0KIAogdm9pZCBD
aGlsZFByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiB7Ci0jaWYgIVBMQVRGT1JNKElPUykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiAgICAgaW5pdGlhbGl6ZVRpbWVyQ29hbGVz
Y2luZ1BvbGljeSgpOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMTIyLDcgKzEyMiw3
IEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nl
c3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmCiAgICAgU3RyaW5nIG9zVmVyc2lvbiA9IG9zVmVy
c2lvblBhcnRzWzBdICsgJy4nICsgb3NWZXJzaW9uUGFydHNbMV07CiAgICAgc2FuZGJveFBhcmFt
ZXRlcnMuYWRkUGFyYW1ldGVyKCJfT1NfVkVSU0lPTiIsIG9zVmVyc2lvbi51dGY4KCkuZGF0YSgp
KTsKIAotI2lmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTA4MAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAog
ICAgIC8vIFVzZSBwcml2YXRlIHRlbXBvcmFyeSBhbmQgY2FjaGUgZGlyZWN0b3JpZXMuCiAgICAg
c2V0ZW52KCJESVJIRUxQRVJfVVNFUl9ESVJfU1VGRklYIiwgZmlsZVN5c3RlbVJlcHJlc2VudGF0
aW9uKHNhbmRib3hQYXJhbWV0ZXJzLnN5c3RlbURpcmVjdG9yeVN1ZmZpeCgpKS5kYXRhKCksIDAp
OwogICAgIGNoYXIgdGVtcG9yYXJ5RGlyZWN0b3J5W1BBVEhfTUFYXTsKQEAgLTE4NywxNCArMTg3
LDEyIEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFBy
b2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmCiAgICAgfQogICAgIH0KIAotI2lmICFQTEFU
Rk9STShJT1MpCiAgICAgLy8gVGhpcyB3aWxsIG92ZXJyaWRlIExTRmlsZVF1YXJhbnRpbmVFbmFi
bGVkIGZyb20gSW5mby5wbGlzdCB1bmxlc3Mgc2FuZGJveCBxdWFyYW50aW5lIGlzIGdsb2JhbGx5
IGRpc2FibGVkLgogICAgIE9TU3RhdHVzIGVycm9yID0gV0tFbmFibGVTYW5kYm94U3R5bGVGaWxl
UXVhcmFudGluZSgpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBXVEZMb2dBbHdheXMoIiVz
OiBDb3VsZG4ndCBlbmFibGUgc2FuZGJveCBzdHlsZSBmaWxlIHF1YXJhbnRpbmU6ICVsZFxuIiwg
Z2V0cHJvZ25hbWUoKSwgKGxvbmcpZXJyb3IpOwogICAgICAgICBleGl0KEVYX05PUEVSTSk7CiAg
ICAgfQotI2VuZGlmCiB9CiAKICNpZiBVU0UoQVBQS0lUKQpAQCAtMjEwLDcgKzIwOCw3IEBAIHZv
aWQgQ2hpbGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKCkKIAogdm9pZCBDaGlsZFByb2Nlc3M6
OnNldFFPUyhpbnQgbGF0ZW5jeVFPUywgaW50IHRocm91Z2hwdXRRT1MpCiB7Ci0jaWYgIVBMQVRG
T1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiAgICAgaWYgKCFsYXRlbmN5
UU9TICYmICF0aHJvdWdocHV0UU9TKQogICAgICAgICByZXR1cm47CiAKQEAgLTIyNywzICsyMjUs
NSBAQCB2b2lkIENoaWxkUHJvY2Vzczo6c2V0UU9TKGludCBsYXRlbmN5UU9TLCBpbnQgdGhyb3Vn
aHB1dFFPUykKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDkyYzE4
Y2VmNzQ5MzgwYTg1ZWRiY2M0NDY1OTYzYjgyYzY2YThkYjEuLmI3NjY5ZTcxNjdkMjViZmEzOWQ2
MTQ4OGJjZDdmM2U3NGNjMzkzODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNzAsNiArMTA3MCw4IEBACiAJCUE1RUZEMzhD
MTZCMEU4OEMwMEIyRjBFOCAvKiBXS1BhZ2VWaXNpYmlsaXR5VHlwZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1RUZEMzhCMTZCMEU4OEMwMEIyRjBF
OCAvKiBXS1BhZ2VWaXNpYmlsaXR5VHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlBN0Q3OTJENjE3NjdDQjZFMDA4ODFDQkUgLyogQWN0aXZp
dHlBc3NlcnRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTdENzkyRDUxNzY3Q0I2RTAwODgxQ0JFIC8qIEFjdGl2aXR5QXNzZXJ0aW9uLmNwcCAq
LzsgfTsKIAkJQTdENzkyRDgxNzY3Q0NBMzAwODgxQ0JFIC8qIEFjdGl2aXR5QXNzZXJ0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0Q3OTJENDE3
NjdDQjA5MDA4ODFDQkUgLyogQWN0aXZpdHlBc3NlcnRpb24uaCAqLzsgfTsKKwkJQTdFOTNDRUEx
OTI1MjdCNjAwQTFEQzQ4IC8qIGNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzSU9TLnNiLmluIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0U5M0NFOTE5
MjUyN0I2MDBBMURDNDggLyogY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXNJT1Muc2IuaW4gKi87
IH07CisJCUE3RTkzQ0VEMTkyNTMzMTEwMEExREM0OCAvKiBDaGlsZFByb2Nlc3NJT1MubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0U5M0NFQjE5MjUz
MUFBMDBBMURDNDggLyogQ2hpbGRQcm9jZXNzSU9TLm1tICovOyB9OwogCQlCNjJFNzMxMDE0MzA0
N0E2MDA2OUVDMzUgLyogV0tIaXRUZXN0UmVzdWx0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI2MkU3MzBGMTQzMDQ3QTYwMDY5RUMzNSAvKiBXS0hp
dFRlc3RSZXN1bHQuY3BwICovOyB9OwogCQlCNjJFNzMxMjE0MzA0N0IwMDA2OUVDMzUgLyogV0tI
aXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCNjJFNzMxMTE0MzA0N0IwMDA2OUVDMzUgLyogV0tIaXRUZXN0UmVzdWx0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjYzNDAzRjkxNDkx
MEQ1NzAwMTA3MEI1IC8qIEFQSU9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCNjM0MDNGODE0OTEwRDU3MDAxMDcwQjUgLyogQVBJT2JqZWN0
LmNwcCAqLzsgfTsKQEAgLTMwNjcsNiArMzA2OSw4IEBACiAJCUE3MkQ1RDdGMTIzNkNCQTgwMEE4
OEIxNSAvKiBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE3RDc5MkQ0MTc2N0NCMDkwMDg4MUNCRSAvKiBBY3Rpdml0eUFzc2VydGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBY3Rpdml0eUFzc2VydGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBN0Q3OTJENTE3NjdDQjZFMDA4ODFDQkUgLyogQWN0aXZpdHlBc3NlcnRp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWN0aXZpdHlBc3Nl
cnRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBN0U5M0NFOTE5MjUyN0I2
MDBBMURDNDggLyogY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXNJT1Muc2IuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXNJT1Muc2IuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3RTkzQ0VCMTkyNTMxQUEwMEExREM0OCAvKiBDaGls
ZFByb2Nlc3NJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBD
aGlsZFByb2Nlc3NJT1MubW07IHBhdGggPSBpb3MvQ2hpbGRQcm9jZXNzSU9TLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCMzk2RUE1NTEyRTBFRDJEMDBGNEZFQjcgLyogY29uZmln
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNvbmZpZy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCNjJFNzMwRjE0MzA0N0E2MDA2OUVDMzUgLyogV0tIaXRUZXN0
UmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLSGl0VGVz
dFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI2MkU3MzExMTQzMDQ3
QjAwMDY5RUMzNSAvKiBXS0hpdFRlc3RSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tIaXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC00NjUxLDYgKzQ2NTUsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMkRBOTQ0OUQxODg0RTRG
MDAwRUQ4NkRCIC8qIEdlc3R1cmVUeXBlcy5oICovLAogCQkJCTJEQTk0NDk3MTg4NEU0RjAwMEVE
ODZEQiAvKiBOYXRpdmVXZWJLZXlib2FyZEV2ZW50SU9TLm1tICovLAorCQkJCUE3RTkzQ0VCMTky
NTMxQUEwMEExREM0OCAvKiBDaGlsZFByb2Nlc3NJT1MubW0gKi8sCiAJCQkJMkRBOTQ0OTgxODg0
RTRGMDAwRUQ4NkRCIC8qIE5hdGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0gKi8sCiAJCQkJQTExOEE5
RUMxOTA3QUQ2RjAwRjdDOTJCIC8qIFF1aWNrTG9va0RvY3VtZW50RGF0YS5jcHAgKi8sCiAJCQkJ
QTExOEE5RUQxOTA3QUQ2RjAwRjdDOTJCIC8qIFF1aWNrTG9va0RvY3VtZW50RGF0YS5oICovLApA
QCAtNjgxNyw2ICs2ODIyLDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CiAJCQkJRTFGRUYzOUMxOTBGNzkxQzAwNzMxNjU4IC8qIERhdGFiYXNlUHJvY2Vzc0lPUy5tbSAq
LywKKwkJCQlBN0U5M0NFOTE5MjUyN0I2MDBBMURDNDggLyogY29tLmFwcGxlLldlYktpdC5EYXRh
YmFzZXNJT1Muc2IuaW4gKi8sCiAJCQkpOwogCQkJcGF0aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CkBAIC04MDg0LDYgKzgwOTAsNyBAQAogCQkJaXNhID0gUEJYUmVzb3VyY2Vz
QnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9
ICgKKwkJCQlBN0U5M0NFQTE5MjUyN0I2MDBBMURDNDggLyogY29tLmFwcGxlLldlYktpdC5EYXRh
YmFzZXNJT1Muc2IuaW4gaW4gUmVzb3VyY2VzICovLAogCQkJCTUxRkExRTFGMTgwQ0NBREUwMEM0
NEJFOSAvKiBXZWJLaXQuaWNucyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC04NzUyLDYgKzg3NTksNyBAQAogCQkJ
CTFBMUIwRUI1MThBNDI0OTUwMDM4NDgxQSAvKiBXS05hdmlnYXRpb25SZXNwb25zZS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTFBMEVDOTA3MTI0QzBBQjgwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTBFQzkxMDEyNEMwQUY1MDA3RUY0
QTUgLyogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUE3RTkzQ0VEMTkyNTMzMTEwMEExREM0OCAvKiBDaGlsZFByb2Nlc3NJT1MubW0gaW4gU291
cmNlcyAqLywKIAkJCQkyREQxM0JENTE4RjdEQUREMDBFMTMwQTEgLyogRmluZENvbnRyb2xsZXJJ
T1MubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTc4NjVCOTE2Q0FDNzE1MDBBQ0U4M0EgLyogUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBMkJCNkQwMTQxMTdCNEQwMDBGMzVENCAvKiBQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231790</attachid>
            <date>2014-05-20 13:37:38 -0700</date>
            <delta_ts>2014-05-20 18:38:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132963-20140520133714.patch</filename>
            <type>text/plain</type>
            <size>13309</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5MTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTkwYzkzNmNlMjA3MDE0
MzgxODRiNDJhYmQ5ZGQwZDBjZjRhZTJkNi4uMDlmYjc1ZTFkYzM4NzgyNTk1N2M2MGZkYjdjMjFi
YmU3MzA1NzkzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTA1LTE1ICBPbGl2
ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIHNhbmRib3hpbmcg
Zm9yIHRoZSBkYXRhYmFzZSBwcm9jZXNzIG9uIGlvcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyOTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU2ltcGx5IGVuc3VyZSB0aGF0IHRoZSBkYXRhYmFzZSBw
cm9jZXNzIGlzIHJ1bm5pbmcgaW4gYSB0aWdodAorICAgICAgICBzYW5kYm94LiAgQXMgcGFydCBv
ZiB0aGlzIGkndmUgc2VwYXJhdGVkIG91dCBDaGlsZFByb2Nlc3NJT1MKKyAgICAgICAgYW5kIGVu
c3VyZXMgdGhhdCB0aGUgZGF0YWJhc2UgcHJvY2VzcyBsb2FkcyBhIGN1c3RvbSBzYW5kYm94Lgor
ICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9pb3MvRGF0YWJhc2VQcm9jZXNzSU9TLm1tOgorICAg
ICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KToKKyAgICAg
ICAgKiBEYXRhYmFzZVByb2Nlc3MvaW9zL2NvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzSU9TLnNi
LmluOiBBZGRlZC4KKyAgICAgICAgKiBTaGFyZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbTogQWRk
ZWQuCisgICAgICAgICBFc3NlbnRpYWxseSBhIGNvcHkgb2YgQ2hpbGRQcm9jZXNzTWFjLCBidXQg
d2l0aCAhUExBVEZPUk0oSU9TKQorICAgICAgICAgcGF0aHMgc3RyaXBwZWQgb3V0LgorICAgICAg
ICAoV2ViS2l0OjpDaGlsZFByb2Nlc3M6OnNldEFwcGxpY2F0aW9uSXNEYWVtb24pOgorICAgICAg
ICAoV2ViS2l0OjpDaGlsZFByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgIChX
ZWJLaXQ6OkNoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOgorICAgICAgICAoV2ViS2l0
OjpDaGlsZFByb2Nlc3M6OnNldFFPUyk6CisgICAgICAgICogU2hhcmVkL21hYy9DaGlsZFByb2Nl
c3NNYWMubW06CisgICAgICAgICBSZW1vdmUgSU9TIHNwZWNpZmljIGlmZGVmcyBhcyB0aGV5J3Jl
IG5vIGxvbmdlciBuZWVkZWQKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTQtMDUtMTkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE2OTA2MykgRml4ZWQgYW5kIHN0aWNreSBub2Rl
cyBtaXNwbGFjZWQgb24gc2Nyb2xsaW5nIHNvbWV0aW1lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvRGF0YWJhc2VQcm9jZXNzL2lvcy9EYXRhYmFzZVByb2Nlc3NJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvaW9zL0RhdGFiYXNlUHJvY2Vzc0lPUy5tbQppbmRleCA1
Y2JjYTJiZjlhOGYxYTdiODEzMTc4ODY3YzQ0NmQ3ZGFjNzNkZmY4Li42NTE1YWExYjVhMjU3ODFi
MDc1ZWZhOTU4ZDBiM2Q0MmNkYWEzOTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvaW9zL0RhdGFiYXNlUHJvY2Vzc0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9EYXRhYmFzZVByb2Nlc3MvaW9zL0RhdGFiYXNlUHJvY2Vzc0lPUy5tbQpAQCAtMzAsOSArMzAs
MTEgQEAKICNpbXBvcnQgIkRhdGFiYXNlUHJvY2Vzcy5oIgogCiAjaW1wb3J0ICJTYW5kYm94SW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCisjaW1wb3J0IDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4K
ICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2ltcG9ydCA8V2ViQ29yZS9O
b3RJbXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1w
b3J0IDxzYW5kYm94Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00OCw3ICs1
MCwxMCBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0
IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYQogCiB2b2lkIERhdGFiYXNlUHJvY2Vzczo6
aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBzYW5kYm94
UGFyYW1ldGVycykKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIC8vIE5lZWQgdG8gb3Zl
cmlkZSB0aGUgZGVmYXVsdCwgYmVjYXVzZSBzZXJ2aWNlIGhhcyBhIGRpZmZlcmVudCBidW5kbGUg
SUQuCisgICAgTlNCdW5kbGUgKndlYmtpdDJCdW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xh
c3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1ZpZXciKV07CisgICAgc2FuZGJveFBhcmFtZXRlcnMu
c2V0T3ZlcnJpZGVTYW5kYm94UHJvZmlsZVBhdGgoW3dlYmtpdDJCdW5kbGUgcGF0aEZvclJlc291
cmNlOkAiY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXNJT1MiIG9mVHlwZTpAInNiIl0pOworICAg
IENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gocGFyYW1ldGVycywgc2FuZGJveFBhcmFt
ZXRlcnMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9pb3MvY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXNJT1Mu
c2IuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvaW9zL2NvbS5hcHBsZS5XZWJL
aXQuRGF0YWJhc2VzSU9TLnNiLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwOWE3ZGZhNjllYzkyMmRkMjZjMDg5
ZDhkNmUwMTQ2NTVkZDJiNWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvaW9zL2NvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzSU9TLnNiLmluCkBAIC0w
LDAgKzEsMzQgQEAKKzsgQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKzsKKzsgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cis7IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworOyBhcmUgbWV0OgorOyAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorOyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCis7IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cis7ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKzsgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKzsKKzsgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworOyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKzsgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorOyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKzsgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorOyBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
OyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKzsgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKzsgQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKzsg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorOyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyh2ZXJz
aW9uIDEpCisoZGVueSBkZWZhdWx0ICh3aXRoIHBhcnRpYWwtc3ltYm9saWNhdGlvbikpCisoYWxs
b3cgc3lzdGVtLWF1ZGl0IGZpbGUtcmVhZC1tZXRhZGF0YSkKKworKGRlbnkgZmlsZS13cml0ZS1j
cmVhdGUgKHZub2RlLXR5cGUgU1lNTElOSykpKQorCis7OyBGSVhNRTogU2hvdWxkIGJlIHJlbW92
ZWQgb25jZSA8cmRhcjovL3Byb2JsZW0vMTYzMjkwODc+IGlzIGZpeGVkLgorKGRlbnkgZmlsZS13
cml0ZS14YXR0ciAoeGF0dHIgImNvbS5hcHBsZS5xdWFyYW50aW5lIikgKHdpdGggbm8tbG9nKSkK
KworOzsgUmVzZXJ2ZSBhIG5hbWVzcGFjZSBmb3IgYWRkaXRpb25hbCBwcm90ZWN0ZWQgZXh0ZW5k
ZWQgYXR0cmlidXRlcy4KKyhkZW55IGZpbGUtcmVhZC14YXR0ciBmaWxlLXdyaXRlLXhhdHRyICh4
YXR0ci1yZWdleCAjIl5jb21cLmFwcGxlXC5zZWN1cml0eVwucHJpdmF0ZVwuIikpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCmluZGV4IGZjODMzNzA3OGVi
MjA5Y2Q5NGZkYTk1NzU4NGVlYTQwMWQzMzdmZDkuLmZlZjI3N2E1Y2E1Mjc1M2QyYzhkZGQwODc2
MTdlNGYzNjNkYWRiY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2hp
bGRQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9j
ZXNzTWFjLm1tCkBAIC0yNCw2ICsyNCw4IEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgiCisK
KyNpZiBQTEFURk9STShNQUMpCiAjaW1wb3J0ICJDaGlsZFByb2Nlc3MuaCIKIAogI2ltcG9ydCAi
U2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgpAQCAtNTMsNyArNTUsNyBAQCBleHRl
cm4gIkMiIGludCBzYW5kYm94X2luaXRfd2l0aF9wYXJhbWV0ZXJzKGNvbnN0IGNoYXIgKnByb2Zp
bGUsIHVpbnQ2NF90IGZsYWdzLAogI2VuZGlmCiAjZW5kaWYKIAotI2lmICFQTEFURk9STShJT1Mp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAogdHlwZWRlZiBib29sICheTFNTZXJ2ZXJD
b25uZWN0aW9uQWxsb3dlZEJsb2NrKSAoIENGRGljdGlvbmFyeVJlZiBvcHRpb25zUmVmICk7CiBl
eHRlcm4gIkMiIHZvaWQgX0xTU2V0QXBwbGljYXRpb25MYXVuY2hTZXJ2aWNlc1NlcnZlckNvbm5l
Y3Rpb25TdGF0dXModWludDY0X3QgZmxhZ3MsIExTU2VydmVyQ29ubmVjdGlvbkFsbG93ZWRCbG9j
ayBibG9jayk7CiBleHRlcm4gIkMiIENGRGljdGlvbmFyeVJlZiBfTFNBcHBsaWNhdGlvbkNoZWNr
SW4oaW50IHNlc3Npb25JRCwgQ0ZEaWN0aW9uYXJ5UmVmIGFwcGxpY2F0aW9uSW5mbyk7CkBAIC02
NSw3ICs2Nyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAotI2lmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTA5MAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAog
c3RhdGljIHZvaWQgaW5pdGlhbGl6ZVRpbWVyQ29hbGVzY2luZ1BvbGljeSgpCiB7CiAgICAgLy8g
U2V0IHRhc2tfbGF0ZW5jeSBhbmQgdGFza190aHJvdWdocHV0IFFPUyB0aWVycyBhcyBhcHByb3By
aWF0ZSBmb3IgYSB2aXNpYmxlIGFwcGxpY2F0aW9uLgpAQCAtNzcsNyArNzksNiBAQCBzdGF0aWMg
dm9pZCBpbml0aWFsaXplVGltZXJDb2FsZXNjaW5nUG9saWN5KCkKIAogdm9pZCBDaGlsZFByb2Nl
c3M6OnNldEFwcGxpY2F0aW9uSXNEYWVtb24oKQogewotI2lmICFQTEFURk9STShJT1MpCiAgICAg
T1NTdGF0dXMgZXJyb3IgPSBTZXRBcHBsaWNhdGlvbklzRGFlbW9uKHRydWUpOwogICAgIEFTU0VS
VF9VTlVTRUQoZXJyb3IsIGVycm9yID09IG5vRXJyKTsKIApAQCAtODUsMTIgKzg2LDExIEBAIHZv
aWQgQ2hpbGRQcm9jZXNzOjpzZXRBcHBsaWNhdGlvbklzRGFlbW9uKCkKICAgICBfTFNTZXRBcHBs
aWNhdGlvbkxhdW5jaFNlcnZpY2VzU2VydmVyQ29ubmVjdGlvblN0YXR1cygwLCAwKTsKICAgICBS
ZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiB1bnVzZWQgPSBfTFNBcHBsaWNhdGlvbkNoZWNrSW4o
LTIsIENGQnVuZGxlR2V0SW5mb0RpY3Rpb25hcnkoQ0ZCdW5kbGVHZXRNYWluQnVuZGxlKCkpKTsK
ICNlbmRpZgotI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiB9CiAKIHZvaWQgQ2hpbGRQcm9jZXNz
OjpwbGF0Zm9ybUluaXRpYWxpemUoKQogewotI2lmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA5MAogICAgIGluaXRpYWxpemVUaW1lckNvYWxlc2NpbmdQb2xpY3ko
KTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKElPUykKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIENo
aWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6
YXRpb25QYXJhbWV0ZXJzJgogICAgIFN0cmluZyBvc1ZlcnNpb24gPSBvc1ZlcnNpb25QYXJ0c1sw
XSArICcuJyArIG9zVmVyc2lvblBhcnRzWzFdOwogICAgIHNhbmRib3hQYXJhbWV0ZXJzLmFkZFBh
cmFtZXRlcigiX09TX1ZFUlNJT04iLCBvc1ZlcnNpb24udXRmOCgpLmRhdGEoKSk7CiAKLSNpZiAh
UExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICAgICAvLyBVc2Ug
cHJpdmF0ZSB0ZW1wb3JhcnkgYW5kIGNhY2hlIGRpcmVjdG9yaWVzLgogICAgIHNldGVudigiRElS
SEVMUEVSX1VTRVJfRElSX1NVRkZJWCIsIGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihzYW5kYm94
UGFyYW1ldGVycy5zeXN0ZW1EaXJlY3RvcnlTdWZmaXgoKSkuZGF0YSgpLCAwKTsKICAgICBjaGFy
IHRlbXBvcmFyeURpcmVjdG9yeVtQQVRIX01BWF07CkBAIC0xODcsMTQgKzE4NywxMiBAQCB2b2lk
IENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzJgogICAgIH0KICAgICB9CiAKLSNpZiAhUExBVEZPUk0oSU9TKQog
ICAgIC8vIFRoaXMgd2lsbCBvdmVycmlkZSBMU0ZpbGVRdWFyYW50aW5lRW5hYmxlZCBmcm9tIElu
Zm8ucGxpc3QgdW5sZXNzIHNhbmRib3ggcXVhcmFudGluZSBpcyBnbG9iYWxseSBkaXNhYmxlZC4K
ICAgICBPU1N0YXR1cyBlcnJvciA9IFdLRW5hYmxlU2FuZGJveFN0eWxlRmlsZVF1YXJhbnRpbmUo
KTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgV1RGTG9nQWx3YXlzKCIlczogQ291bGRuJ3Qg
ZW5hYmxlIHNhbmRib3ggc3R5bGUgZmlsZSBxdWFyYW50aW5lOiAlbGRcbiIsIGdldHByb2duYW1l
KCksIChsb25nKWVycm9yKTsKICAgICAgICAgZXhpdChFWF9OT1BFUk0pOwogICAgIH0KLSNlbmRp
ZgogfQogCiAjaWYgVVNFKEFQUEtJVCkKQEAgLTIxMCw3ICsyMDgsNyBAQCB2b2lkIENoaWxkUHJv
Y2Vzczo6c3RvcE5TQXBwUnVuTG9vcCgpCiAKIHZvaWQgQ2hpbGRQcm9jZXNzOjpzZXRRT1MoaW50
IGxhdGVuY3lRT1MsIGludCB0aHJvdWdocHV0UU9TKQogewotI2lmICFQTEFURk9STShJT1MpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAogICAgIGlmICghbGF0ZW5jeVFPUyAmJiAhdGhy
b3VnaHB1dFFPUykKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMjcsMyArMjI1LDUgQEAgdm9pZCBD
aGlsZFByb2Nlc3M6OnNldFFPUyhpbnQgbGF0ZW5jeVFPUywgaW50IHRocm91Z2hwdXRRT1MpCiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5MmMxOGNlZjc0OTM4MGE4
NWVkYmNjNDQ2NTk2M2I4MmM2NmE4ZGIxLi5iNzY2OWU3MTY3ZDI1YmZhMzlkNjE0ODhiY2Q3ZjNl
NzRjYzM5Mzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xMDcwLDYgKzEwNzAsOCBAQAogCQlBNUVGRDM4QzE2QjBFODhDMDBC
MkYwRTggLyogV0tQYWdlVmlzaWJpbGl0eVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNUVGRDM4QjE2QjBFODhDMDBCMkYwRTggLyogV0tQYWdl
VmlzaWJpbGl0eVR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQTdENzkyRDYxNzY3Q0I2RTAwODgxQ0JFIC8qIEFjdGl2aXR5QXNzZXJ0aW9u
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDc5
MkQ1MTc2N0NCNkUwMDg4MUNCRSAvKiBBY3Rpdml0eUFzc2VydGlvbi5jcHAgKi87IH07CiAJCUE3
RDc5MkQ4MTc2N0NDQTMwMDg4MUNCRSAvKiBBY3Rpdml0eUFzc2VydGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdENzkyRDQxNzY3Q0IwOTAwODgx
Q0JFIC8qIEFjdGl2aXR5QXNzZXJ0aW9uLmggKi87IH07CisJCUE3RTkzQ0VBMTkyNTI3QjYwMEEx
REM0OCAvKiBjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlc0lPUy5zYi5pbiBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdFOTNDRTkxOTI1MjdCNjAwQTFE
QzQ4IC8qIGNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzSU9TLnNiLmluICovOyB9OworCQlBN0U5
M0NFRDE5MjUzMzExMDBBMURDNDggLyogQ2hpbGRQcm9jZXNzSU9TLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdFOTNDRUIxOTI1MzFBQTAwQTFEQzQ4
IC8qIENoaWxkUHJvY2Vzc0lPUy5tbSAqLzsgfTsKIAkJQjYyRTczMTAxNDMwNDdBNjAwNjlFQzM1
IC8qIFdLSGl0VGVzdFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCNjJFNzMwRjE0MzA0N0E2MDA2OUVDMzUgLyogV0tIaXRUZXN0UmVzdWx0
LmNwcCAqLzsgfTsKIAkJQjYyRTczMTIxNDMwNDdCMDAwNjlFQzM1IC8qIFdLSGl0VGVzdFJlc3Vs
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjYyRTcz
MTExNDMwNDdCMDAwNjlFQzM1IC8qIFdLSGl0VGVzdFJlc3VsdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUI2MzQwM0Y5MTQ5MTBENTcwMDEwNzBC
NSAvKiBBUElPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjYzNDAzRjgxNDkxMEQ1NzAwMTA3MEI1IC8qIEFQSU9iamVjdC5jcHAgKi87IH07
CkBAIC0zMDY3LDYgKzMwNjksOCBAQAogCQlBNzJENUQ3RjEyMzZDQkE4MDBBODhCMTUgLyogV2Vi
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBN0Q3OTJENDE3NjdDQjA5MDA4ODFDQkUgLyogQWN0aXZpdHlBc3NlcnRpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQWN0aXZpdHlBc3NlcnRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTdENzkyRDUxNzY3Q0I2RTAwODgxQ0JFIC8qIEFjdGl2aXR5QXNzZXJ0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjdGl2aXR5QXNzZXJ0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdFOTNDRTkxOTI1MjdCNjAwQTFEQzQ4IC8q
IGNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzSU9TLnNiLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IGNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzSU9TLnNiLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBN0U5M0NFQjE5MjUzMUFBMDBBMURDNDggLyogQ2hpbGRQcm9jZXNzSU9T
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQ2hpbGRQcm9jZXNz
SU9TLm1tOyBwYXRoID0gaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQjM5NkVBNTUxMkUwRUQyRDAwRjRGRUI3IC8qIGNvbmZpZy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBjb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQjYyRTczMEYxNDMwNDdBNjAwNjlFQzM1IC8qIFdLSGl0VGVzdFJlc3VsdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0hpdFRlc3RSZXN1bHQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNjJFNzMxMTE0MzA0N0IwMDA2OUVDMzUg
LyogV0tIaXRUZXN0UmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
SGl0VGVzdFJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDY1MSw2ICs0
NjU1LDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTJEQTk0NDlEMTg4NEU0RjAwMEVEODZEQiAv
KiBHZXN0dXJlVHlwZXMuaCAqLywKIAkJCQkyREE5NDQ5NzE4ODRFNEYwMDBFRDg2REIgLyogTmF0
aXZlV2ViS2V5Ym9hcmRFdmVudElPUy5tbSAqLywKKwkJCQlBN0U5M0NFQjE5MjUzMUFBMDBBMURD
NDggLyogQ2hpbGRQcm9jZXNzSU9TLm1tICovLAogCQkJCTJEQTk0NDk4MTg4NEU0RjAwMEVEODZE
QiAvKiBOYXRpdmVXZWJUb3VjaEV2ZW50SU9TLm1tICovLAogCQkJCUExMThBOUVDMTkwN0FENkYw
MEY3QzkyQiAvKiBRdWlja0xvb2tEb2N1bWVudERhdGEuY3BwICovLAogCQkJCUExMThBOUVEMTkw
N0FENkYwMEY3QzkyQiAvKiBRdWlja0xvb2tEb2N1bWVudERhdGEuaCAqLywKQEAgLTY4MTcsNiAr
NjgyMiw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUUxRkVG
MzlDMTkwRjc5MUMwMDczMTY1OCAvKiBEYXRhYmFzZVByb2Nlc3NJT1MubW0gKi8sCisJCQkJQTdF
OTNDRTkxOTI1MjdCNjAwQTFEQzQ4IC8qIGNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzSU9TLnNi
LmluICovLAogCQkJKTsKIAkJCXBhdGggPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpAQCAtODA4NCw2ICs4MDkwLDcgQEAKIAkJCWlzYSA9IFBCWFJlc291cmNlc0J1aWxkUGhhc2U7
CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJQTdF
OTNDRUExOTI1MjdCNjAwQTFEQzQ4IC8qIGNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzSU9TLnNi
LmluIGluIFJlc291cmNlcyAqLywKIAkJCQk1MUZBMUUxRjE4MENDQURFMDBDNDRCRTkgLyogV2Vi
S2l0LmljbnMgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAtODc1Miw2ICs4NzU5LDcgQEAKIAkJCQkxQTFCMEVCNTE4
QTQyNDk1MDAzODQ4MUEgLyogV0tOYXZpZ2F0aW9uUmVzcG9uc2UubW0gaW4gU291cmNlcyAqLywK
IAkJCQkxQTBFQzkwNzEyNEMwQUI4MDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwRUM5MTAxMjRDMEFGNTAwN0VGNEE1IC8qIFBsdWdp
blByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBN0U5M0NF
RDE5MjUzMzExMDBBMURDNDggLyogQ2hpbGRQcm9jZXNzSU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkREMTNCRDUxOEY3REFERDAwRTEzMEExIC8qIEZpbmRDb250cm9sbGVySU9TLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUE3ODY1QjkxNkNBQzcxNTAwQUNFODNBIC8qIFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QTJCQjZEMDE0MTE3QjREMDAwRjM1RDQgLyogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231805</attachid>
            <date>2014-05-20 18:38:50 -0700</date>
            <delta_ts>2014-05-21 12:25:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132963-20140520183826.patch</filename>
            <type>text/plain</type>
            <size>34214</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5MTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTJjMDYyOTA5ODA1MzA2
ODZkY2FhZjBiMTg0NzU4OTlmNTZhYzlkNi4uY2M3NDMyZTdlN2I5M2ViYmJlOGUyMDU5ZWY1MGIw
ZjhiODA0ODk5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE0LTA1LTIwICBPbGl2
ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRW5hYmxlIHNhbmRi
b3hpbmcgZm9yIHRoZSBkYXRhYmFzZSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI5NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTaW1wbHkgZW5zdXJlIHRoYXQgdGhlIGRhdGFiYXNlIHBy
b2Nlc3MgaXMgcnVubmluZyBpbiBhIHRpZ2h0CisgICAgICAgIHNhbmRib3guIEFzIHBhcnQgb2Yg
dGhpcyBpJ3ZlIHNlcGFyYXRlZCBvdXQgQ2hpbGRQcm9jZXNzSU9TCisgICAgICAgIGFuZCBlbnN1
cmVzIHRoYXQgdGhlIGRhdGFiYXNlIHByb2Nlc3MgbG9hZHMgYSBjdXN0b20gc2FuZGJveC4KKwor
ICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9jb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlcy5zYi5p
bjogQWRkZWQuCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL2lvcy9EYXRhYmFzZVByb2Nlc3NJ
T1MubW06CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRi
b3gpOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9pb3MvY29tLmFwcGxlLldlYktpdC5EYXRh
YmFzZXNJT1Muc2IuaW46IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9tYWMvY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMuc2IuaW4uCisgICAgICAgICogRGF0YWJh
c2VQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlc01hYy5zYi5pbjogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktp
dC5EYXRhYmFzZXMuc2IuaW4uCisgICAgICAgICogU2hhcmVkL2lvcy9DaGlsZFByb2Nlc3NJT1Mu
bW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpDaGlsZFByb2Nlc3M6OnNldEFwcGxpY2F0aW9u
SXNEYWVtb24pOgorICAgICAgICAoV2ViS2l0OjpDaGlsZFByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OkNoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gp
OgorICAgICAgICAoV2ViS2l0OjpDaGlsZFByb2Nlc3M6OnNldFFPUyk6CisgICAgICAgICogU2hh
cmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OkNoaWxkUHJvY2Vz
czo6c2V0QXBwbGljYXRpb25Jc0RhZW1vbik6CisgICAgICAgIChXZWJLaXQ6OkNoaWxkUHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzOjpp
bml0aWFsaXplU2FuZGJveCk6CisgICAgICAgIChXZWJLaXQ6OkNoaWxkUHJvY2Vzczo6c2V0UU9T
KToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTQt
MDUtMjAgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIEFs
bG93IHBvcHVwIG1lbnVzIHRvIG92ZXJyaWRlIGRlZmF1bHQgYXBwZWFyYW5jZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL2NvbS5hcHBsZS5XZWJLaXQuRGF0YWJh
c2VzLnNiLmluIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL2NvbS5hcHBsZS5XZWJL
aXQuRGF0YWJhc2VzLnNiLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxZDRiYWFhYjQ1M2IwNDEyMTFjYWM4YTY3
ZTQ1NzM4MzhiMDdjNTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMuc2IuaW4KQEAgLTAsMCArMSwyOCBA
QAorOyBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
OworOyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKzsgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCis7IGFyZSBtZXQ6Cis7IDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cis7ICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKzsgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKzsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorOyAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
OworOyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCis7IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorOyBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCis7IFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworOyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCis7IENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCis7IFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworOyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorOyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorOyBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCis7IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIFBMQVRGT1JNKElP
UykKKyNpbmNsdWRlICJpb3MvY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXNJT1Muc2IuaW4iCisj
ZWxpZiBQTEFURk9STShNQUMpCisjaW5jbHVkZSAibWFjL2NvbS5hcHBsZS5XZWJLaXQuRGF0YWJh
c2VzTWFjLnNiLmluIgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvaW9zL0RhdGFiYXNlUHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9pb3MvRGF0YWJhc2VQcm9jZXNzSU9TLm1tCmluZGV4IDVjYmNhMmJmOWE4ZjFh
N2I4MTMxNzg4NjdjNDQ2ZDdkYWM3M2RmZjguLmJiZTRhY2E1NDBiYzU3YmMxZGU0MWU5ZTgxYjFl
ZWU4YjkyMmM1YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9p
b3MvRGF0YWJhc2VQcm9jZXNzSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9pb3MvRGF0YWJhc2VQcm9jZXNzSU9TLm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0
ICJEYXRhYmFzZVByb2Nlc3MuaCIKIAogI2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFy
YW1ldGVycy5oIgorI2ltcG9ydCA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQu
aD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgpAQCAtNDgsNyArNDksMTAgQEAg
dm9pZCBEYXRhYmFzZVByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFBy
b2Nlc3NJbml0aWFsaXphdGlvblBhcmEKIAogdm9pZCBEYXRhYmFzZVByb2Nlc3M6OmluaXRpYWxp
emVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFy
YW1ldGVycywgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgc2FuZGJveFBhcmFtZXRl
cnMpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBOZWVkIHRvIG92ZXJpZGUgdGhl
IGRlZmF1bHQsIGJlY2F1c2Ugc2VydmljZSBoYXMgYSBkaWZmZXJlbnQgYnVuZGxlIElELgorICAg
IE5TQnVuZGxlICp3ZWJraXQyQnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOk5TQ2xh
c3NGcm9tU3RyaW5nKEAiV0tWaWV3IildOworICAgIHNhbmRib3hQYXJhbWV0ZXJzLnNldE92ZXJy
aWRlU2FuZGJveFByb2ZpbGVQYXRoKFt3ZWJraXQyQnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpAImNv
bS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzIiBvZlR5cGU6QCJzYiJdKTsKKyAgICBDaGlsZFByb2Nl
c3M6OmluaXRpYWxpemVTYW5kYm94KHBhcmFtZXRlcnMsIHNhbmRib3hQYXJhbWV0ZXJzKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvaW9zL2NvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzSU9TLnNiLmluIGIvU291
cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL2lvcy9jb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNl
c0lPUy5zYi5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzI3Yjg5M2I4Nzg3YWE4YjU4ZDEwMjYzNTQ3ZDgyNDRi
Y2ExNDg3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L2lvcy9jb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlc0lPUy5zYi5pbgpAQCAtMCwwICsxLDUzIEBA
Cis7IENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCis7
Cis7IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorOyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKzsgYXJlIG1ldDoKKzsgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKzsgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorOyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorOyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCis7ICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCis7
Cis7IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKzsgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCis7IFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKzsgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCis7IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKzsgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKzsgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCis7IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCis7IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCis7IEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKzsgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisodmVyc2lvbiAxKQorKGRl
bnkgZGVmYXVsdCAod2l0aCBwYXJ0aWFsLXN5bWJvbGljYXRpb24pKQorKGFsbG93IHN5c3RlbS1h
dWRpdCBmaWxlLXJlYWQtbWV0YWRhdGEpCisKKyhpbXBvcnQgImNvbW1vbi5zYiIpCisoaW1wb3J0
ICJyZW1vdmVkLWRldi1ub2Rlcy5zYiIpCisKKzs7IFNhbmRib3ggZXh0ZW5zaW9ucworKGRlZmlu
ZSAoYXBwbHktcmVhZC1hbmQtaXNzdWUtZXh0ZW5zaW9uIG9wIHBhdGgtZmlsdGVyKQorICAgIChv
cCBmaWxlLXJlYWQqIHBhdGgtZmlsdGVyKQorICAgIChvcCBmaWxlLWlzc3VlLWV4dGVuc2lvbiAo
cmVxdWlyZS1hbGwgKGV4dGVuc2lvbi1jbGFzcyAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQi
KSBwYXRoLWZpbHRlcikpKQorKGRlZmluZSAoYXBwbHktd3JpdGUtYW5kLWlzc3VlLWV4dGVuc2lv
biBvcCBwYXRoLWZpbHRlcikKKyAgICAob3AgZmlsZS13cml0ZSogcGF0aC1maWx0ZXIpCisgICAg
KG9wIGZpbGUtaXNzdWUtZXh0ZW5zaW9uIChyZXF1aXJlLWFsbCAoZXh0ZW5zaW9uLWNsYXNzICJj
b20uYXBwbGUuYXBwLXNhbmRib3gucmVhZC13cml0ZSIpIHBhdGgtZmlsdGVyKSkpCisoZGVmaW5l
IChyZWFkLW9ubHktYW5kLWlzc3VlLWV4dGVuc2lvbnMgcGF0aC1maWx0ZXIpCisgICAgKGFwcGx5
LXJlYWQtYW5kLWlzc3VlLWV4dGVuc2lvbiBhbGxvdyBwYXRoLWZpbHRlcikpCisoZGVmaW5lIChy
ZWFkLXdyaXRlLWFuZC1pc3N1ZS1leHRlbnNpb25zIHBhdGgtZmlsdGVyKQorICAgIChhcHBseS1y
ZWFkLWFuZC1pc3N1ZS1leHRlbnNpb24gYWxsb3cgcGF0aC1maWx0ZXIpCisgICAgKGFwcGx5LXdy
aXRlLWFuZC1pc3N1ZS1leHRlbnNpb24gYWxsb3cgcGF0aC1maWx0ZXIpKQorKHJlYWQtb25seS1h
bmQtaXNzdWUtZXh0ZW5zaW9ucyAoZXh0ZW5zaW9uICJjb20uYXBwbGUuYXBwLXNhbmRib3gucmVh
ZCIpKQorKHJlYWQtd3JpdGUtYW5kLWlzc3VlLWV4dGVuc2lvbnMgKGV4dGVuc2lvbiAiY29tLmFw
cGxlLmFwcC1zYW5kYm94LnJlYWQtd3JpdGUiKSkKKworOzsgRklYTUU6IFNob3VsZCBiZSByZW1v
dmVkIG9uY2UgPHJkYXI6Ly9wcm9ibGVtLzE2MzI5MDg3PiBpcyBmaXhlZC4KKyhkZW55IGZpbGUt
d3JpdGUteGF0dHIgKHhhdHRyICJjb20uYXBwbGUucXVhcmFudGluZSIpICh3aXRoIG5vLWxvZykp
CisKKzs7IFJlc2VydmUgYSBuYW1lc3BhY2UgZm9yIGFkZGl0aW9uYWwgcHJvdGVjdGVkIGV4dGVu
ZGVkIGF0dHJpYnV0ZXMuCisoZGVueSBmaWxlLXJlYWQteGF0dHIgZmlsZS13cml0ZS14YXR0ciAo
eGF0dHItcmVnZXggIyJeY29tXC5hcHBsZVwuc2VjdXJpdHlcLnByaXZhdGVcLiIpKQorCisoaWYg
KGRlZmluZWQ/ICd2bm9kZS10eXBlKQorICAgIChkZW55IGZpbGUtd3JpdGUtY3JlYXRlICh2bm9k
ZS10eXBlIFNZTUxJTkspKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMuc2IuaW4gYi9Tb3VyY2UvV2ViS2l0
Mi9EYXRhYmFzZVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzLnNiLmluCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ODQ0ZjExMWM0ZmQ5ZGNiMDY3NDdlMWM4Yzhm
YmYxZWM2NmM0OGNlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5E
YXRhYmFzZXMuc2IuaW4KKysrIC9kZXYvbnVsbApAQCAtMSw4MSArMCwwIEBACi07IENvcHlyaWdo
dCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi07Ci07IFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotOyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLTsgYXJlIG1ldDoKLTsgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLTsgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotOyAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotOyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi07ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi07Ci07IFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLTsgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi07IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLTsgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci07IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLTsgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLTsgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi07IElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi07IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi07IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLTsgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0odmVyc2lvbiAxKQotKGRlbnkgZGVmYXVsdCAo
d2l0aCBwYXJ0aWFsLXN5bWJvbGljYXRpb24pKQotKGFsbG93IHN5c3RlbS1hdWRpdCBmaWxlLXJl
YWQtbWV0YWRhdGEpCi0KLShpbXBvcnQgInN5c3RlbS5zYiIpCi0KLTs7IFV0aWxpdHkgZnVuY3Rp
b25zIGZvciBob21lIGRpcmVjdG9yeSByZWxhdGl2ZSBwYXRoIGZpbHRlcnMKLShkZWZpbmUgKGhv
bWUtcmVnZXggaG9tZS1yZWxhdGl2ZS1yZWdleCkKLSAgKHJlZ2V4IChzdHJpbmctYXBwZW5kICJe
IiAocmVnZXgtcXVvdGUgKHBhcmFtICJIT01FX0RJUiIpKSBob21lLXJlbGF0aXZlLXJlZ2V4KSkp
Ci0KLShkZWZpbmUgKGhvbWUtc3VicGF0aCBob21lLXJlbGF0aXZlLXN1YnBhdGgpCi0gICAgKHN1
YnBhdGggKHN0cmluZy1hcHBlbmQgKHBhcmFtICJIT01FX0RJUiIpIGhvbWUtcmVsYXRpdmUtc3Vi
cGF0aCkpKQotCi0oZGVmaW5lIChob21lLWxpdGVyYWwgaG9tZS1yZWxhdGl2ZS1saXRlcmFsKQot
ICAgIChsaXRlcmFsIChzdHJpbmctYXBwZW5kIChwYXJhbSAiSE9NRV9ESVIiKSBob21lLXJlbGF0
aXZlLWxpdGVyYWwpKSkKLQotOzsgUmVhZC1vbmx5IHByZWZlcmVuY2VzIGFuZCBkYXRhCi0oYWxs
b3cgZmlsZS1yZWFkKgotICAgIDs7IEJhc2ljIHN5c3RlbSBwYXRocwotICAgIChzdWJwYXRoICIv
TGlicmFyeS9GcmFtZXdvcmtzIikKLSAgICAoc3VicGF0aCAiL0xpYnJhcnkvTWFuYWdlZCBQcmVm
ZXJlbmNlcyIpCi0KLSAgICA7OyBTeXN0ZW0gYW5kIHVzZXIgcHJlZmVyZW5jZXMKLSAgICAobGl0
ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvLkdsb2JhbFByZWZlcmVuY2VzLnBsaXN0IikKLSAg
ICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy8uR2xvYmFsUHJlZmVyZW5jZXMu
cGxpc3QiKQotICAgIChob21lLXJlZ2V4ICMiL0xpYnJhcnkvUHJlZmVyZW5jZXMvQnlIb3N0L1wu
R2xvYmFsUHJlZmVyZW5jZXNcLiIpCi0KLSAgICA7OyBPbi1kaXNrIFdlYktpdDIgZnJhbWV3b3Jr
IGxvY2F0aW9uLCB0byBhY2NvdW50IGZvciBkZWJ1ZyBpbnN0YWxsYXRpb25zCi0gICAgOzsgb3V0
c2lkZSBvZiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3JrcwotICAgIChzdWJwYXRoIChwYXJhbSAi
V0VCS0lUMl9GUkFNRVdPUktfRElSIikpKQotCi07OyBTYW5kYm94IGV4dGVuc2lvbnMKLShkZWZp
bmUgKGFwcGx5LXJlYWQtYW5kLWlzc3VlLWV4dGVuc2lvbiBvcCBwYXRoLWZpbHRlcikKLSAgICAo
b3AgZmlsZS1yZWFkKiBwYXRoLWZpbHRlcikKLSAgICAob3AgZmlsZS1pc3N1ZS1leHRlbnNpb24g
KHJlcXVpcmUtYWxsIChleHRlbnNpb24tY2xhc3MgImNvbS5hcHBsZS5hcHAtc2FuZGJveC5yZWFk
IikgcGF0aC1maWx0ZXIpKSkKLShkZWZpbmUgKGFwcGx5LXdyaXRlLWFuZC1pc3N1ZS1leHRlbnNp
b24gb3AgcGF0aC1maWx0ZXIpCi0gICAgKG9wIGZpbGUtd3JpdGUqIHBhdGgtZmlsdGVyKQotICAg
IChvcCBmaWxlLWlzc3VlLWV4dGVuc2lvbiAocmVxdWlyZS1hbGwgKGV4dGVuc2lvbi1jbGFzcyAi
Y29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQtd3JpdGUiKSBwYXRoLWZpbHRlcikpKQotKGRlZmlu
ZSAocmVhZC1vbmx5LWFuZC1pc3N1ZS1leHRlbnNpb25zIHBhdGgtZmlsdGVyKQotICAgIChhcHBs
eS1yZWFkLWFuZC1pc3N1ZS1leHRlbnNpb24gYWxsb3cgcGF0aC1maWx0ZXIpKQotKGRlZmluZSAo
cmVhZC13cml0ZS1hbmQtaXNzdWUtZXh0ZW5zaW9ucyBwYXRoLWZpbHRlcikKLSAgICAoYXBwbHkt
cmVhZC1hbmQtaXNzdWUtZXh0ZW5zaW9uIGFsbG93IHBhdGgtZmlsdGVyKQotICAgIChhcHBseS13
cml0ZS1hbmQtaXNzdWUtZXh0ZW5zaW9uIGFsbG93IHBhdGgtZmlsdGVyKSkKLShyZWFkLW9ubHkt
YW5kLWlzc3VlLWV4dGVuc2lvbnMgKGV4dGVuc2lvbiAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJl
YWQiKSkKLShyZWFkLXdyaXRlLWFuZC1pc3N1ZS1leHRlbnNpb25zIChleHRlbnNpb24gImNvbS5h
cHBsZS5hcHAtc2FuZGJveC5yZWFkLXdyaXRlIikpCi0KLShpZiAoZGVmaW5lZD8gJ3Zub2RlLXR5
cGUpCi0gICAgKGRlbnkgZmlsZS13cml0ZS1jcmVhdGUgKHZub2RlLXR5cGUgU1lNTElOSykpKQot
Ci07OyBGSVhNRTogU2hvdWxkIGJlIHJlbW92ZWQgb25jZSA8cmRhcjovL3Byb2JsZW0vMTYzMjkw
ODc+IGlzIGZpeGVkLgotKGRlbnkgZmlsZS13cml0ZS14YXR0ciAoeGF0dHIgImNvbS5hcHBsZS5x
dWFyYW50aW5lIikgKHdpdGggbm8tbG9nKSkKLQotOzsgUmVzZXJ2ZSBhIG5hbWVzcGFjZSBmb3Ig
YWRkaXRpb25hbCBwcm90ZWN0ZWQgZXh0ZW5kZWQgYXR0cmlidXRlcy4KLSNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID4gMTA5MAotKGRlbnkgZmlsZS1yZWFkLXhhdHRyIGZpbGUt
d3JpdGUteGF0dHIgKHhhdHRyLXJlZ2V4ICMiXmNvbVwuYXBwbGVcLnNlY3VyaXR5XC5wcml2YXRl
XC4iKSkKLSNlbHNlCi0oZGVueSBmaWxlLXJlYWQteGF0dHIgZmlsZS13cml0ZS14YXR0ciAoeGF0
dHIgIyJeY29tXC5hcHBsZVwuc2VjdXJpdHlcLnByaXZhdGVcLiIpKQotI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQu
RGF0YWJhc2VzTWFjLnNiLmluIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL21hYy9j
b20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlc01hYy5zYi5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODQ0ZjExMWM0
ZmQ5ZGNiMDY3NDdlMWM4YzhmYmYxZWM2NmM0OGNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlc01h
Yy5zYi5pbgpAQCAtMCwwICsxLDgxIEBACis7IENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCis7Cis7IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorOyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKzsgYXJl
IG1ldDoKKzsgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKzsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorOyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorOyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCis7ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCis7Cis7IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKzsgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Cis7IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKzsgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCis7IEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKzsg
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKzsgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCis7IElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCis7IENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCis7IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKzsgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCisodmVyc2lvbiAxKQorKGRlbnkgZGVmYXVsdCAod2l0aCBwYXJ0aWFsLXN5bWJvbGlj
YXRpb24pKQorKGFsbG93IHN5c3RlbS1hdWRpdCBmaWxlLXJlYWQtbWV0YWRhdGEpCisKKyhpbXBv
cnQgInN5c3RlbS5zYiIpCisKKzs7IFV0aWxpdHkgZnVuY3Rpb25zIGZvciBob21lIGRpcmVjdG9y
eSByZWxhdGl2ZSBwYXRoIGZpbHRlcnMKKyhkZWZpbmUgKGhvbWUtcmVnZXggaG9tZS1yZWxhdGl2
ZS1yZWdleCkKKyAgKHJlZ2V4IChzdHJpbmctYXBwZW5kICJeIiAocmVnZXgtcXVvdGUgKHBhcmFt
ICJIT01FX0RJUiIpKSBob21lLXJlbGF0aXZlLXJlZ2V4KSkpCisKKyhkZWZpbmUgKGhvbWUtc3Vi
cGF0aCBob21lLXJlbGF0aXZlLXN1YnBhdGgpCisgICAgKHN1YnBhdGggKHN0cmluZy1hcHBlbmQg
KHBhcmFtICJIT01FX0RJUiIpIGhvbWUtcmVsYXRpdmUtc3VicGF0aCkpKQorCisoZGVmaW5lICho
b21lLWxpdGVyYWwgaG9tZS1yZWxhdGl2ZS1saXRlcmFsKQorICAgIChsaXRlcmFsIChzdHJpbmct
YXBwZW5kIChwYXJhbSAiSE9NRV9ESVIiKSBob21lLXJlbGF0aXZlLWxpdGVyYWwpKSkKKworOzsg
UmVhZC1vbmx5IHByZWZlcmVuY2VzIGFuZCBkYXRhCisoYWxsb3cgZmlsZS1yZWFkKgorICAgIDs7
IEJhc2ljIHN5c3RlbSBwYXRocworICAgIChzdWJwYXRoICIvTGlicmFyeS9GcmFtZXdvcmtzIikK
KyAgICAoc3VicGF0aCAiL0xpYnJhcnkvTWFuYWdlZCBQcmVmZXJlbmNlcyIpCisKKyAgICA7OyBT
eXN0ZW0gYW5kIHVzZXIgcHJlZmVyZW5jZXMKKyAgICAobGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVy
ZW5jZXMvLkdsb2JhbFByZWZlcmVuY2VzLnBsaXN0IikKKyAgICAoaG9tZS1saXRlcmFsICIvTGli
cmFyeS9QcmVmZXJlbmNlcy8uR2xvYmFsUHJlZmVyZW5jZXMucGxpc3QiKQorICAgIChob21lLXJl
Z2V4ICMiL0xpYnJhcnkvUHJlZmVyZW5jZXMvQnlIb3N0L1wuR2xvYmFsUHJlZmVyZW5jZXNcLiIp
CisKKyAgICA7OyBPbi1kaXNrIFdlYktpdDIgZnJhbWV3b3JrIGxvY2F0aW9uLCB0byBhY2NvdW50
IGZvciBkZWJ1ZyBpbnN0YWxsYXRpb25zCisgICAgOzsgb3V0c2lkZSBvZiAvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3JrcworICAgIChzdWJwYXRoIChwYXJhbSAiV0VCS0lUMl9GUkFNRVdPUktfRElS
IikpKQorCis7OyBTYW5kYm94IGV4dGVuc2lvbnMKKyhkZWZpbmUgKGFwcGx5LXJlYWQtYW5kLWlz
c3VlLWV4dGVuc2lvbiBvcCBwYXRoLWZpbHRlcikKKyAgICAob3AgZmlsZS1yZWFkKiBwYXRoLWZp
bHRlcikKKyAgICAob3AgZmlsZS1pc3N1ZS1leHRlbnNpb24gKHJlcXVpcmUtYWxsIChleHRlbnNp
b24tY2xhc3MgImNvbS5hcHBsZS5hcHAtc2FuZGJveC5yZWFkIikgcGF0aC1maWx0ZXIpKSkKKyhk
ZWZpbmUgKGFwcGx5LXdyaXRlLWFuZC1pc3N1ZS1leHRlbnNpb24gb3AgcGF0aC1maWx0ZXIpCisg
ICAgKG9wIGZpbGUtd3JpdGUqIHBhdGgtZmlsdGVyKQorICAgIChvcCBmaWxlLWlzc3VlLWV4dGVu
c2lvbiAocmVxdWlyZS1hbGwgKGV4dGVuc2lvbi1jbGFzcyAiY29tLmFwcGxlLmFwcC1zYW5kYm94
LnJlYWQtd3JpdGUiKSBwYXRoLWZpbHRlcikpKQorKGRlZmluZSAocmVhZC1vbmx5LWFuZC1pc3N1
ZS1leHRlbnNpb25zIHBhdGgtZmlsdGVyKQorICAgIChhcHBseS1yZWFkLWFuZC1pc3N1ZS1leHRl
bnNpb24gYWxsb3cgcGF0aC1maWx0ZXIpKQorKGRlZmluZSAocmVhZC13cml0ZS1hbmQtaXNzdWUt
ZXh0ZW5zaW9ucyBwYXRoLWZpbHRlcikKKyAgICAoYXBwbHktcmVhZC1hbmQtaXNzdWUtZXh0ZW5z
aW9uIGFsbG93IHBhdGgtZmlsdGVyKQorICAgIChhcHBseS13cml0ZS1hbmQtaXNzdWUtZXh0ZW5z
aW9uIGFsbG93IHBhdGgtZmlsdGVyKSkKKyhyZWFkLW9ubHktYW5kLWlzc3VlLWV4dGVuc2lvbnMg
KGV4dGVuc2lvbiAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQiKSkKKyhyZWFkLXdyaXRlLWFu
ZC1pc3N1ZS1leHRlbnNpb25zIChleHRlbnNpb24gImNvbS5hcHBsZS5hcHAtc2FuZGJveC5yZWFk
LXdyaXRlIikpCisKKyhpZiAoZGVmaW5lZD8gJ3Zub2RlLXR5cGUpCisgICAgKGRlbnkgZmlsZS13
cml0ZS1jcmVhdGUgKHZub2RlLXR5cGUgU1lNTElOSykpKQorCis7OyBGSVhNRTogU2hvdWxkIGJl
IHJlbW92ZWQgb25jZSA8cmRhcjovL3Byb2JsZW0vMTYzMjkwODc+IGlzIGZpeGVkLgorKGRlbnkg
ZmlsZS13cml0ZS14YXR0ciAoeGF0dHIgImNvbS5hcHBsZS5xdWFyYW50aW5lIikgKHdpdGggbm8t
bG9nKSkKKworOzsgUmVzZXJ2ZSBhIG5hbWVzcGFjZSBmb3IgYWRkaXRpb25hbCBwcm90ZWN0ZWQg
ZXh0ZW5kZWQgYXR0cmlidXRlcy4KKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID4gMTA5MAorKGRlbnkgZmlsZS1yZWFkLXhhdHRyIGZpbGUtd3JpdGUteGF0dHIgKHhhdHRyLXJl
Z2V4ICMiXmNvbVwuYXBwbGVcLnNlY3VyaXR5XC5wcml2YXRlXC4iKSkKKyNlbHNlCisoZGVueSBm
aWxlLXJlYWQteGF0dHIgZmlsZS13cml0ZS14YXR0ciAoeGF0dHIgIyJeY29tXC5hcHBsZVwuc2Vj
dXJpdHlcLnByaXZhdGVcLiIpKQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3Mv
Q2hpbGRQcm9jZXNzSU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzZmEzZGQxNWMyYmMyMzAxOTQ4ZTdiYWM5
ZTY1N2E1Yzk3NTcyNGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
aW9zL0NoaWxkUHJvY2Vzc0lPUy5tbQpAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0oSU9TKQorCisjaW1wb3J0ICJD
aGlsZFByb2Nlc3MuaCIKKworI2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVy
cy5oIgorI2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0IDxXZWJDb3Jl
L0ZpbGVTeXN0ZW0uaD4KKyNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtVmVyc2lvbk1hYy5oPgorI2lt
cG9ydCA8bWFjaC9tYWNoLmg+CisjaW1wb3J0IDxtYWNoL3Rhc2suaD4KKyNpbXBvcnQgPHB3ZC5o
PgorI2ltcG9ydCA8c3RkbGliLmg+CisjaW1wb3J0IDxzeXNleGl0cy5oPgorCisvLyBXZSBoYXZl
IHRvICN1bmRlZiBfX0FQUExFX0FQSV9QUklWQVRFIHRvIHByZXZlbnQgc2FuZGJveC5oIGZyb20g
bG9va2luZyBmb3IgYSBoZWFkZXIgZmlsZSB0aGF0IGRvZXMgbm90IGV4aXN0ICg8cmRhcjovL3By
b2JsZW0vOTY3OTIxMT4pLiAKKyN1bmRlZiBfX0FQUExFX0FQSV9QUklWQVRFCisjaW1wb3J0IDxz
YW5kYm94Lmg+CisKKyNkZWZpbmUgU0FOREJPWF9OQU1FRF9FWFRFUk5BTCAweDAwMDMKK2V4dGVy
biAiQyIgaW50IHNhbmRib3hfaW5pdF93aXRoX3BhcmFtZXRlcnMoY29uc3QgY2hhciAqcHJvZmls
ZSwgdWludDY0X3QgZmxhZ3MsIGNvbnN0IGNoYXIgKmNvbnN0IHBhcmFtZXRlcnNbXSwgY2hhciAq
KmVycm9yYnVmKTsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCit2b2lkIENoaWxkUHJvY2Vzczo6c2V0QXBwbGljYXRpb25Jc0RhZW1vbigpCit7Cit9
CisKK3ZvaWQgQ2hpbGRQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworICAgIFtbTlNG
aWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY2hhbmdlQ3VycmVudERpcmVjdG9yeVBhdGg6W1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVQYXRoXV07Cit9CisKK3ZvaWQgQ2hpbGRQcm9jZXNz
Ojppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHNhbmRi
b3hQYXJhbWV0ZXJzKQoreworICAgIE5TQnVuZGxlICp3ZWJraXQyQnVuZGxlID0gW05TQnVuZGxl
IGJ1bmRsZUZvckNsYXNzOk5TQ2xhc3NGcm9tU3RyaW5nKEAiV0tWaWV3IildOworICAgIFN0cmlu
ZyBkZWZhdWx0UHJvZmlsZVBhdGggPSBbd2Via2l0MkJ1bmRsZSBwYXRoRm9yUmVzb3VyY2U6W1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSBvZlR5cGU6QCJzYiJdOworICAg
IGlmIChzYW5kYm94UGFyYW1ldGVycy5zeXN0ZW1EaXJlY3RvcnlTdWZmaXgoKS5pc051bGwoKSkg
eworICAgICAgICBTdHJpbmcgZGVmYXVsdFN5c3RlbURpcmVjdG9yeVN1ZmZpeCA9IFN0cmluZyhb
W05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdKSArICIrIiArIHBhcmFtZXRl
cnMuY2xpZW50SWRlbnRpZmllcjsKKyAgICAgICAgc2FuZGJveFBhcmFtZXRlcnMuc2V0U3lzdGVt
RGlyZWN0b3J5U3VmZml4KGRlZmF1bHRTeXN0ZW1EaXJlY3RvcnlTdWZmaXgpOworICAgIH0KKwor
ICAgIFN0cmluZyBzYW5kYm94SW1wb3J0UGF0aCA9ICIvdXNyL2xvY2FsL3NoYXJlL3NhbmRib3gv
aW1wb3J0cyI7CisgICAgc2FuZGJveFBhcmFtZXRlcnMuYWRkUGF0aFBhcmFtZXRlcigiSU1QT1JU
X0RJUiIsIGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihzYW5kYm94SW1wb3J0UGF0aCkuZGF0YSgp
KTsKKworICAgIHN3aXRjaCAoc2FuZGJveFBhcmFtZXRlcnMubW9kZSgpKSB7CisgICAgY2FzZSBT
YW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzOjpVc2VEZWZhdWx0U2FuZGJveFByb2ZpbGVQ
YXRoOgorICAgIGNhc2UgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVyczo6VXNlT3ZlcnJp
ZGVTYW5kYm94UHJvZmlsZVBhdGg6IHsKKyAgICAgICAgU3RyaW5nIHNhbmRib3hQcm9maWxlUGF0
aCA9IHNhbmRib3hQYXJhbWV0ZXJzLm1vZGUoKSA9PSBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJh
bWV0ZXJzOjpVc2VEZWZhdWx0U2FuZGJveFByb2ZpbGVQYXRoID8gZGVmYXVsdFByb2ZpbGVQYXRo
IDogc2FuZGJveFBhcmFtZXRlcnMub3ZlcnJpZGVTYW5kYm94UHJvZmlsZVBhdGgoKTsKKyAgICAg
ICAgaWYgKCFzYW5kYm94UHJvZmlsZVBhdGguaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBDU3Ry
aW5nIHByb2ZpbGVQYXRoID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHNhbmRib3hQcm9maWxl
UGF0aCk7CisgICAgICAgICAgICBjaGFyKiBlcnJvckJ1ZjsKKyAgICAgICAgICAgIGlmIChzYW5k
Ym94X2luaXRfd2l0aF9wYXJhbWV0ZXJzKHByb2ZpbGVQYXRoLmRhdGEoKSwgU0FOREJPWF9OQU1F
RF9FWFRFUk5BTCwgc2FuZGJveFBhcmFtZXRlcnMubmFtZWRQYXJhbWV0ZXJBcnJheSgpLCAmZXJy
b3JCdWYpKSB7CisgICAgICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCIlczogQ291bGRuJ3QgaW5p
dGlhbGl6ZSBzYW5kYm94IHByb2ZpbGUgWyVzXSwgZXJyb3IgJyVzJ1xuIiwgZ2V0cHJvZ25hbWUo
KSwgcHJvZmlsZVBhdGguZGF0YSgpLCBlcnJvckJ1Zik7CisgICAgICAgICAgICAgICAgZm9yIChz
aXplX3QgaSA9IDAsIGNvdW50ID0gc2FuZGJveFBhcmFtZXRlcnMuY291bnQoKTsgaSAhPSBjb3Vu
dDsgKytpKQorICAgICAgICAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIiVzPSVzXG4iLCBzYW5k
Ym94UGFyYW1ldGVycy5uYW1lKGkpLCBzYW5kYm94UGFyYW1ldGVycy52YWx1ZShpKSk7CisgICAg
ICAgICAgICAgICAgZXhpdChFWF9OT1BFUk0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisK
KyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgU2FuZGJveEluaXRpYWxpemF0aW9uUGFy
YW1ldGVyczo6VXNlU2FuZGJveFByb2ZpbGU6IHsKKyAgICAgICAgY2hhciogZXJyb3JCdWY7Cisg
ICAgICAgIGlmIChzYW5kYm94X2luaXRfd2l0aF9wYXJhbWV0ZXJzKHNhbmRib3hQYXJhbWV0ZXJz
LnNhbmRib3hQcm9maWxlKCkudXRmOCgpLmRhdGEoKSwgMCwgc2FuZGJveFBhcmFtZXRlcnMubmFt
ZWRQYXJhbWV0ZXJBcnJheSgpLCAmZXJyb3JCdWYpKSB7CisgICAgICAgICAgICBXVEZMb2dBbHdh
eXMoIiVzOiBDb3VsZG4ndCBpbml0aWFsaXplIHNhbmRib3ggcHJvZmlsZSwgZXJyb3IgJyVzJ1xu
IiwgZ2V0cHJvZ25hbWUoKSwgZXJyb3JCdWYpOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9
IDAsIGNvdW50ID0gc2FuZGJveFBhcmFtZXRlcnMuY291bnQoKTsgaSAhPSBjb3VudDsgKytpKQor
ICAgICAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXM9JXNcbiIsIHNhbmRib3hQYXJhbWV0ZXJz
Lm5hbWUoaSksIHNhbmRib3hQYXJhbWV0ZXJzLnZhbHVlKGkpKTsKKyAgICAgICAgICAgIGV4aXQo
RVhfTk9QRVJNKTsKKyAgICAgICAgfQorCisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICB9Cit9
CisKK3ZvaWQgQ2hpbGRQcm9jZXNzOjpzZXRRT1MoaW50LCBpbnQpCit7CisKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0No
aWxkUHJvY2Vzc01hYy5tbQppbmRleCBmYzgzMzcwNzhlYjIwOWNkOTRmZGE5NTc1ODRlZWE0MDFk
MzM3ZmQ5Li5kM2RmYWE0ZGQ3NTUzMDJkZjllY2QzMDNjODg0MmZkZTVlZjRhYmVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQpAQCAtMjQsNiArMjQs
OCBAQAogICovCiAKICNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0oTUFDKQogI2lt
cG9ydCAiQ2hpbGRQcm9jZXNzLmgiCiAKICNpbXBvcnQgIlNhbmRib3hJbml0aWFsaXphdGlvblBh
cmFtZXRlcnMuaCIKQEAgLTM2LDEwICszOCw2IEBACiAjaW1wb3J0IDxzdGRsaWIuaD4KICNpbXBv
cnQgPHN5c2V4aXRzLmg+CiAKLSNpZiBQTEFURk9STShJT1MpCi0jaW1wb3J0IDxXZWJDb3JlL0Zs
b2F0aW5nUG9pbnRFbnZpcm9ubWVudC5oPgotI2VuZGlmCi0KIC8vIFdlIGhhdmUgdG8gI3VuZGVm
IF9fQVBQTEVfQVBJX1BSSVZBVEUgdG8gcHJldmVudCBzYW5kYm94LmggZnJvbSBsb29raW5nIGZv
ciBhIGhlYWRlciBmaWxlIHRoYXQgZG9lcyBub3QgZXhpc3QgKDxyZGFyOi8vcHJvYmxlbS85Njc5
MjExPikuIAogI3VuZGVmIF9fQVBQTEVfQVBJX1BSSVZBVEUKICNpbXBvcnQgPHNhbmRib3guaD4K
QEAgLTUzLDcgKzUxLDcgQEAgZXh0ZXJuICJDIiBpbnQgc2FuZGJveF9pbml0X3dpdGhfcGFyYW1l
dGVycyhjb25zdCBjaGFyICpwcm9maWxlLCB1aW50NjRfdCBmbGFncywKICNlbmRpZgogI2VuZGlm
CiAKLSNpZiAhUExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwOTAKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKIHR5
cGVkZWYgYm9vbCAoXkxTU2VydmVyQ29ubmVjdGlvbkFsbG93ZWRCbG9jaykgKCBDRkRpY3Rpb25h
cnlSZWYgb3B0aW9uc1JlZiApOwogZXh0ZXJuICJDIiB2b2lkIF9MU1NldEFwcGxpY2F0aW9uTGF1
bmNoU2VydmljZXNTZXJ2ZXJDb25uZWN0aW9uU3RhdHVzKHVpbnQ2NF90IGZsYWdzLCBMU1NlcnZl
ckNvbm5lY3Rpb25BbGxvd2VkQmxvY2sgYmxvY2spOwogZXh0ZXJuICJDIiBDRkRpY3Rpb25hcnlS
ZWYgX0xTQXBwbGljYXRpb25DaGVja0luKGludCBzZXNzaW9uSUQsIENGRGljdGlvbmFyeVJlZiBh
cHBsaWNhdGlvbkluZm8pOwpAQCAtNjUsNyArNjMsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLSNpZiAhUExBVEZPUk0oSU9TKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwOTAKIHN0YXRpYyB2b2lkIGluaXRpYWxpemVUaW1lckNvYWxlc2Np
bmdQb2xpY3koKQogewogICAgIC8vIFNldCB0YXNrX2xhdGVuY3kgYW5kIHRhc2tfdGhyb3VnaHB1
dCBRT1MgdGllcnMgYXMgYXBwcm9wcmlhdGUgZm9yIGEgdmlzaWJsZSBhcHBsaWNhdGlvbi4KQEAg
LTc3LDcgKzc1LDYgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVRpbWVyQ29hbGVzY2luZ1BvbGlj
eSgpCiAKIHZvaWQgQ2hpbGRQcm9jZXNzOjpzZXRBcHBsaWNhdGlvbklzRGFlbW9uKCkKIHsKLSNp
ZiAhUExBVEZPUk0oSU9TKQogICAgIE9TU3RhdHVzIGVycm9yID0gU2V0QXBwbGljYXRpb25Jc0Rh
ZW1vbih0cnVlKTsKICAgICBBU1NFUlRfVU5VU0VEKGVycm9yLCBlcnJvciA9PSBub0Vycik7CiAK
QEAgLTg1LDE5ICs4MiwxMyBAQCB2b2lkIENoaWxkUHJvY2Vzczo6c2V0QXBwbGljYXRpb25Jc0Rh
ZW1vbigpCiAgICAgX0xTU2V0QXBwbGljYXRpb25MYXVuY2hTZXJ2aWNlc1NlcnZlckNvbm5lY3Rp
b25TdGF0dXMoMCwgMCk7CiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gdW51c2VkID0g
X0xTQXBwbGljYXRpb25DaGVja0luKC0yLCBDRkJ1bmRsZUdldEluZm9EaWN0aW9uYXJ5KENGQnVu
ZGxlR2V0TWFpbkJ1bmRsZSgpKSk7CiAjZW5kaWYKLSNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQog
fQogCiB2b2lkIENoaWxkUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKLSNpZiAhUExB
VEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKICAgICBpbml0aWFsaXpl
VGltZXJDb2FsZXNjaW5nUG9saWN5KCk7CiAjZW5kaWYKLSNpZiBQTEFURk9STShJT1MpCi0gICAg
RmxvYXRpbmdQb2ludEVudmlyb25tZW50JiBmbG9hdGluZ1BvaW50RW52aXJvbm1lbnQgPSBGbG9h
dGluZ1BvaW50RW52aXJvbm1lbnQ6OnNoYXJlZCgpOwotICAgIGZsb2F0aW5nUG9pbnRFbnZpcm9u
bWVudC5lbmFibGVEZW5vcm1hbFN1cHBvcnQoKTsKLSAgICBmbG9hdGluZ1BvaW50RW52aXJvbm1l
bnQuc2F2ZU1haW5UaHJlYWRFbnZpcm9ubWVudCgpOwotI2VuZGlmCiAKICAgICBbW05TRmlsZU1h
bmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNoYW5nZUN1cnJlbnREaXJlY3RvcnlQYXRoOltbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gYnVuZGxlUGF0aF1dOwogfQpAQCAtMTIyLDcgKzExMyw3IEBAIHZvaWQg
Q2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFs
aXphdGlvblBhcmFtZXRlcnMmCiAgICAgU3RyaW5nIG9zVmVyc2lvbiA9IG9zVmVyc2lvblBhcnRz
WzBdICsgJy4nICsgb3NWZXJzaW9uUGFydHNbMV07CiAgICAgc2FuZGJveFBhcmFtZXRlcnMuYWRk
UGFyYW1ldGVyKCJfT1NfVkVSU0lPTiIsIG9zVmVyc2lvbi51dGY4KCkuZGF0YSgpKTsKIAotI2lm
ICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4
MAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIC8vIFVz
ZSBwcml2YXRlIHRlbXBvcmFyeSBhbmQgY2FjaGUgZGlyZWN0b3JpZXMuCiAgICAgc2V0ZW52KCJE
SVJIRUxQRVJfVVNFUl9ESVJfU1VGRklYIiwgZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHNhbmRi
b3hQYXJhbWV0ZXJzLnN5c3RlbURpcmVjdG9yeVN1ZmZpeCgpKS5kYXRhKCksIDApOwogICAgIGNo
YXIgdGVtcG9yYXJ5RGlyZWN0b3J5W1BBVEhfTUFYXTsKQEAgLTE4NywxNCArMTc4LDEyIEBAIHZv
aWQgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMmCiAgICAgfQogICAgIH0KIAotI2lmICFQTEFURk9STShJT1Mp
CiAgICAgLy8gVGhpcyB3aWxsIG92ZXJyaWRlIExTRmlsZVF1YXJhbnRpbmVFbmFibGVkIGZyb20g
SW5mby5wbGlzdCB1bmxlc3Mgc2FuZGJveCBxdWFyYW50aW5lIGlzIGdsb2JhbGx5IGRpc2FibGVk
LgogICAgIE9TU3RhdHVzIGVycm9yID0gV0tFbmFibGVTYW5kYm94U3R5bGVGaWxlUXVhcmFudGlu
ZSgpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBXVEZMb2dBbHdheXMoIiVzOiBDb3VsZG4n
dCBlbmFibGUgc2FuZGJveCBzdHlsZSBmaWxlIHF1YXJhbnRpbmU6ICVsZFxuIiwgZ2V0cHJvZ25h
bWUoKSwgKGxvbmcpZXJyb3IpOwogICAgICAgICBleGl0KEVYX05PUEVSTSk7CiAgICAgfQotI2Vu
ZGlmCiB9CiAKICNpZiBVU0UoQVBQS0lUKQpAQCAtMjEwLDcgKzE5OSw3IEBAIHZvaWQgQ2hpbGRQ
cm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKCkKIAogdm9pZCBDaGlsZFByb2Nlc3M6OnNldFFPUyhp
bnQgbGF0ZW5jeVFPUywgaW50IHRocm91Z2hwdXRRT1MpCiB7Ci0jaWYgIVBMQVRGT1JNKElPUykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiAgICAgaWYgKCFsYXRlbmN5UU9TICYmICF0
aHJvdWdocHV0UU9TKQogICAgICAgICByZXR1cm47CiAKQEAgLTIyNywzICsyMTYsNSBAQCB2b2lk
IENoaWxkUHJvY2Vzczo6c2V0UU9TKGludCBsYXRlbmN5UU9TLCBpbnQgdGhyb3VnaHB1dFFPUykK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDkyYzE4Y2VmNzQ5Mzgw
YTg1ZWRiY2M0NDY1OTYzYjgyYzY2YThkYjEuLmI2MTdkMzFhOWE5NjZlYmVhNDRmZmY3ZDU0NjRi
NmViNTk4MjFkYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTEwNjgsOCArMTA2OCwxMCBAQAogCQlBNThCNkYwODE4RkNBNzMz
MDA4Q0JBNTMgLyogV0tGaWxlVXBsb2FkUGFuZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1OEI2RjA2MThGQ0E3MzMwMDhDQkE1MyAvKiBXS0ZpbGVV
cGxvYWRQYW5lbC5oICovOyB9OwogCQlBNThCNkYwOTE4RkNBNzMzMDA4Q0JBNTMgLyogV0tGaWxl
VXBsb2FkUGFuZWwubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNThCNkYwNzE4RkNBNzMzMDA4Q0JBNTMgLyogV0tGaWxlVXBsb2FkUGFuZWwubW0gKi87
IH07CiAJCUE1RUZEMzhDMTZCMEU4OEMwMEIyRjBFOCAvKiBXS1BhZ2VWaXNpYmlsaXR5VHlwZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1RUZEMzhC
MTZCMEU4OEMwMEIyRjBFOCAvKiBXS1BhZ2VWaXNpYmlsaXR5VHlwZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNzFBNDA0RDE5MkMyNEIxMDA4
QzAwNEMgLyogY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMuc2IuaW4gaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MUE0MDRDMTkyQzI0QjEwMDhDMDA0
QyAvKiBjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlcy5zYi5pbiAqLzsgfTsKIAkJQTdENzkyRDYx
NzY3Q0I2RTAwODgxQ0JFIC8qIEFjdGl2aXR5QXNzZXJ0aW9uLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDc5MkQ1MTc2N0NCNkUwMDg4MUNCRSAv
KiBBY3Rpdml0eUFzc2VydGlvbi5jcHAgKi87IH07CiAJCUE3RDc5MkQ4MTc2N0NDQTMwMDg4MUNC
RSAvKiBBY3Rpdml0eUFzc2VydGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTdENzkyRDQxNzY3Q0IwOTAwODgxQ0JFIC8qIEFjdGl2aXR5QXNzZXJ0
aW9uLmggKi87IH07CisJCUE3RTkzQ0VEMTkyNTMzMTEwMEExREM0OCAvKiBDaGlsZFByb2Nlc3NJ
T1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0U5
M0NFQjE5MjUzMUFBMDBBMURDNDggLyogQ2hpbGRQcm9jZXNzSU9TLm1tICovOyB9OwogCQlCNjJF
NzMxMDE0MzA0N0E2MDA2OUVDMzUgLyogV0tIaXRUZXN0UmVzdWx0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI2MkU3MzBGMTQzMDQ3QTYwMDY5RUMz
NSAvKiBXS0hpdFRlc3RSZXN1bHQuY3BwICovOyB9OwogCQlCNjJFNzMxMjE0MzA0N0IwMDA2OUVD
MzUgLyogV0tIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCNjJFNzMxMTE0MzA0N0IwMDA2OUVDMzUgLyogV0tIaXRUZXN0UmVzdWx0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjYz
NDAzRjkxNDkxMEQ1NzAwMTA3MEI1IC8qIEFQSU9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNjM0MDNGODE0OTEwRDU3MDAxMDcwQjUgLyog
QVBJT2JqZWN0LmNwcCAqLzsgfTsKQEAgLTMwNjQsOSArMzA2NiwxMiBAQAogCQlBNThCNkYwNjE4
RkNBNzMzMDA4Q0JBNTMgLyogV0tGaWxlVXBsb2FkUGFuZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gV0tGaWxlVXBsb2FkUGFuZWwuaDsgcGF0aCA9IGlvcy9mb3Jtcy9XS0Zp
bGVVcGxvYWRQYW5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNThCNkYwNzE4
RkNBNzMzMDA4Q0JBNTMgLyogV0tGaWxlVXBsb2FkUGFuZWwubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0ZpbGVVcGxvYWRQYW5lbC5tbTsgcGF0aCA9IGlvcy9m
b3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTVFRkQzOEIxNkIwRTg4QzAwQjJGMEU4IC8qIFdLUGFnZVZpc2liaWxpdHlUeXBlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1BhZ2VWaXNpYmlsaXR5VHlwZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTcxQTQwNEMxOTJDMjRCMTAwOEMwMDRDIC8qIGNv
bS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzLnNiLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNv
bS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzLnNiLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNzJENUQ3RjEyMzZDQkE4MDBBODhCMTUgLyogV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0Q3OTJENDE3NjdDQjA5MDA4
ODFDQkUgLyogQWN0aXZpdHlBc3NlcnRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWN0aXZpdHlBc3Nl
cnRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdENzkyRDUxNzY3Q0I2RTAw
ODgxQ0JFIC8qIEFjdGl2aXR5QXNzZXJ0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEFjdGl2aXR5QXNzZXJ0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTdFOTNDRTkxOTI1MjdCNjAwQTFEQzQ4IC8qIGNvbS5hcHBsZS5XZWJLaXQuRGF0
YWJhc2VzSU9TLnNiLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQu
RGF0YWJhc2VzSU9TLnNiLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBN0U5M0NF
QjE5MjUzMUFBMDBBMURDNDggLyogQ2hpbGRQcm9jZXNzSU9TLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBuYW1lID0gQ2hpbGRQcm9jZXNzSU9TLm1tOyBwYXRoID0gaW9zL0No
aWxkUHJvY2Vzc0lPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjM5NkVBNTUx
MkUwRUQyRDAwRjRGRUI3IC8qIGNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBjb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjYyRTczMEYxNDMw
NDdBNjAwNjlFQzM1IC8qIFdLSGl0VGVzdFJlc3VsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXS0hpdFRlc3RSZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCNjJFNzMxMTE0MzA0N0IwMDA2OUVDMzUgLyogV0tIaXRUZXN0UmVzdWx0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSGl0VGVzdFJlc3VsdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzYyNCw3ICszNjI5LDcgQEAKIAkJRTFFNTUyQzMx
NkFFMDY1RTAwNEVENjUzIC8qIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1l
dGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTNEQzExRjhDRjlGMDBD
Q0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTNFNjExRjhDRkZCMDBDQ0JFRTQgLyogSW5q
ZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxRkVGMzlBMTkwRjc2RjMwMDczMTY1OCAvKiBjb20uYXBw
bGUuV2ViS2l0LkRhdGFiYXNlcy5zYi5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNl
cy5zYi5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFGRUYzOUExOTBGNzZGMzAw
NzMxNjU4IC8qIGNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzTWFjLnNiLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5h
cHBsZS5XZWJLaXQuRGF0YWJhc2VzTWFjLnNiLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogRGF0YWJhc2VQcm9jZXNzSU9TLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YWJhc2VQcm9jZXNzSU9T
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGMDM2OTc4NzE1RjRCRjA1MDBDM0E4
MEUgLyogV2ViQ29sb3JQaWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViQ29sb3JQaWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NjExM0UyNDEyNkNFMTgyMDA1N0QwQTcgLyogV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDY1MSw2ICs0NjU2LDcgQEAKIAkJCWNo
aWxkcmVuID0gKAogCQkJCTJEQTk0NDlEMTg4NEU0RjAwMEVEODZEQiAvKiBHZXN0dXJlVHlwZXMu
aCAqLywKIAkJCQkyREE5NDQ5NzE4ODRFNEYwMDBFRDg2REIgLyogTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudElPUy5tbSAqLywKKwkJCQlBN0U5M0NFQjE5MjUzMUFBMDBBMURDNDggLyogQ2hpbGRQcm9j
ZXNzSU9TLm1tICovLAogCQkJCTJEQTk0NDk4MTg4NEU0RjAwMEVEODZEQiAvKiBOYXRpdmVXZWJU
b3VjaEV2ZW50SU9TLm1tICovLAogCQkJCUExMThBOUVDMTkwN0FENkYwMEY3QzkyQiAvKiBRdWlj
a0xvb2tEb2N1bWVudERhdGEuY3BwICovLAogCQkJCUExMThBOUVEMTkwN0FENkYwMEY3QzkyQiAv
KiBRdWlja0xvb2tEb2N1bWVudERhdGEuaCAqLywKQEAgLTUxNzEsNyArNTE3Nyw3IEBACiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTUxRTM1MjAxMTgwRjVEMUUwMEU1
M0JFOSAvKiBEYXRhYmFzZVByb2Nlc3NNYWMubW0gKi8sCi0JCQkJRTFGRUYzOUExOTBGNzZGMzAw
NzMxNjU4IC8qIGNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzLnNiLmluICovLAorCQkJCUUxRkVG
MzlBMTkwRjc2RjMwMDczMTY1OCAvKiBjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlc01hYy5zYi5p
biAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
QEAgLTUzMDAsNiArNTMwNiw3IEBACiAJCTUxRjdEQzBBMTgwQ0M0MTEwMDIxMkNBMyAvKiBEYXRh
YmFzZVByb2Nlc3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAor
CQkJCUE3MUE0MDRDMTkyQzI0QjEwMDhDMDA0QyAvKiBjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNl
cy5zYi5pbiAqLywKIAkJCQk1MUY3REMwQjE4MENDNDIyMDAyMTJDQTMgLyogRW50cnlQb2ludCAq
LywKIAkJCQk1MUUzNTFGOTE4MEY1Q0Y2MDBFNTNCRTkgLyogSW5kZXhlZERCICovLAogCQkJCUUx
RkVGMzlCMTkwRjc5MUMwMDczMTY1OCAvKiBpb3MgKi8sCkBAIC02ODE3LDYgKzY4MjQsNyBAQAog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlFMUZFRjM5QzE5MEY3OTFD
MDA3MzE2NTggLyogRGF0YWJhc2VQcm9jZXNzSU9TLm1tICovLAorCQkJCUE3RTkzQ0U5MTkyNTI3
QjYwMEExREM0OCAvKiBjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlc0lPUy5zYi5pbiAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTgwODQs
NiArODA5Miw3IEBACiAJCQlpc2EgPSBQQlhSZXNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRB
Y3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCUE3MUE0MDREMTkyQzI0
QjEwMDhDMDA0QyAvKiBjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlcy5zYi5pbiBpbiBSZXNvdXJj
ZXMgKi8sCiAJCQkJNTFGQTFFMUYxODBDQ0FERTAwQzQ0QkU5IC8qIFdlYktpdC5pY25zIGluIFJl
c291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKQEAgLTg3NTIsNiArODc2MSw3IEBACiAJCQkJMUExQjBFQjUxOEE0MjQ5NTAwMzg0ODFB
IC8qIFdLTmF2aWdhdGlvblJlc3BvbnNlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwRUM5MDcx
MjRDMEFCODAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBMEVDOTEwMTI0QzBBRjUwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTdFOTNDRUQxOTI1MzMxMTAwQTFE
QzQ4IC8qIENoaWxkUHJvY2Vzc0lPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJERDEzQkQ1MThG
N0RBREQwMEUxMzBBMSAvKiBGaW5kQ29udHJvbGxlcklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTFBNzg2NUI5MTZDQUM3MTUwMEFDRTgzQSAvKiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyQkI2RDAxNDExN0I0
RDAwMEYzNUQ0IC8qIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231835</attachid>
            <date>2014-05-21 12:25:25 -0700</date>
            <delta_ts>2014-05-21 13:52:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132963-20140521122501.patch</filename>
            <type>text/plain</type>
            <size>21374</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5MTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTJjMDYyOTA5ODA1MzA2
ODZkY2FhZjBiMTg0NzU4OTlmNTZhYzlkNi4uNzNlMTUyMGI3NzI2ZTA0MzI0MjFiODVkN2Y5OWYy
OWY0YWIyZmZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA1LTIxICBPbGl2
ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRW5hYmxlIHNhbmRi
b3hpbmcgZm9yIHRoZSBkYXRhYmFzZSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI5NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTaW1wbHkgZW5zdXJlIHRoYXQgdGhlIGRhdGFiYXNlIHBy
b2Nlc3MgaXMgcnVubmluZyBpbiBhIHRpZ2h0CisgICAgICAgIHNhbmRib3guIEFzIHBhcnQgb2Yg
dGhpcyBpJ3ZlIHNlcGFyYXRlZCBvdXQgQ2hpbGRQcm9jZXNzSU9TCisgICAgICAgIGFuZCBlbnN1
cmVzIHRoYXQgdGhlIGRhdGFiYXNlIHByb2Nlc3MgbG9hZHMgYSBjdXN0b20gc2FuZGJveC4KKwor
ICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZzoKKyAgICAgICAgKiBEYXRh
YmFzZVByb2Nlc3MvaW9zL0RhdGFiYXNlUHJvY2Vzc0lPUy5tbToKKyAgICAgICAgKFdlYktpdDo6
RGF0YWJhc2VQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveCk6CisgICAgICAgICogRGF0YWJhc2VQ
cm9jZXNzL2lvcy9jb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlc0lPUy5zYjogQWRkZWQuCisgICAg
ICAgICogU2hhcmVkL2lvcy9DaGlsZFByb2Nlc3NJT1MubW06IEFkZGVkLgorICAgICAgICBFc3Nl
bnRpYWxseSBjbG9uZWQgZnJvbSB0aGUgTWFjIHZlcnNpb24sIG9ubHkgYWxsIHRoZSBPU1gKKyAg
ICAgICAgc3BlY2lmaWMgbG9naWMgaGFzIGJlZW4gc3RyaXBwZWQuCisgICAgICAgIChXZWJLaXQ6
OkNoaWxkUHJvY2Vzczo6c2V0QXBwbGljYXRpb25Jc0RhZW1vbik6CisgICAgICAgIChXZWJLaXQ6
OkNoaWxkUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6Q2hp
bGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveCk6CisgICAgICAgIChXZWJLaXQ6OkNoaWxkUHJv
Y2Vzczo6c2V0UU9TKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToK
KyAgICAgICAgUmVtb3ZlIGFsbCB0aGUgSU9TIGlmZGVmcy4KKyAgICAgICAgKFdlYktpdDo6Q2hp
bGRQcm9jZXNzOjpzZXRBcHBsaWNhdGlvbklzRGFlbW9uKToKKyAgICAgICAgKFdlYktpdDo6Q2hp
bGRQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpDaGlsZFBy
b2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KToKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNz
OjpzZXRRT1MpOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KwogMjAxNC0wNS0yMCAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAg
W01hY10gQWxsb3cgcG9wdXAgbWVudXMgdG8gb3ZlcnJpZGUgZGVmYXVsdCBhcHBlYXJhbmNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcg
Yi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKaW5kZXggMjNh
YTJiODExYzc3NGUxNjk4YThhN2M0ODMxMWE4MTAzZWY2YTA0Zi4uNWU2YzY2MzBiMjhiZjhhM2Qx
YjMzMTg1NDM2NjYyOWYxNmY4ZTZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ29uZmln
dXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRp
b25zL1dlYktpdC54Y2NvbmZpZwpAQCAtNDMsNyArNDMsNyBAQCBPVEhFUl9MREZMQUdTX2lwaG9u
ZXNpbXVsYXRvciA9ICQoT1RIRVJfTERGTEFHU19pcGhvbmVvcyk7CiBPVEhFUl9MREZMQUdTX21h
Y29zeCA9ICQoQVNBTl9PVEhFUl9MREZMQUdTKSAkKEZSQU1FV09SS19BTkRfTElCUkFSWV9MREZM
QUdTKSAtZnJhbWV3b3JrIFdlYkNvcmUgLXN1Yl91bWJyZWxsYSBXZWJDb3JlIC1mcmFtZXdvcmsg
V2ViS2l0TGVnYWN5IC1zdWJfdW1icmVsbGEgV2ViS2l0TGVnYWN5OwogCiBFWENMVURFRF9TT1VS
Q0VfRklMRV9OQU1FUyA9ICQoRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVNfJChQTEFURk9STV9O
QU1FKSk7Ci1FWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU19pcGhvbmVvcyA9ICoucGRmIGNvbS5h
cHBsZS5XZWJLaXQuRGF0YWJhc2VQcm9jZXNzLnNiIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1By
b2Nlc3Muc2IgY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgUGx1Z0luU2FuZGJveFByb2ZpbGVzLyou
c2I7CitFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU19pcGhvbmVvcyA9ICoucGRmIGNvbS5hcHBs
ZS5XZWJLaXQuRGF0YWJhc2VzLnNiIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2Ig
Y29tLmFwcGxlLldlYlByb2Nlc3Muc2IgUGx1Z0luU2FuZGJveFByb2ZpbGVzLyouc2I7CiBFWENM
VURFRF9TT1VSQ0VfRklMRV9OQU1FU19pcGhvbmVzaW11bGF0b3IgPSAkKEVYQ0xVREVEX1NPVVJD
RV9GSUxFX05BTUVTX2lwaG9uZW9zKTsKIAogSU5TVEFMTEhEUlNfU0NSSVBUX1BIQVNFID0gWUVT
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL2lvcy9EYXRhYmFz
ZVByb2Nlc3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvaW9zL0RhdGFi
YXNlUHJvY2Vzc0lPUy5tbQppbmRleCA1Y2JjYTJiZjlhOGYxYTdiODEzMTc4ODY3YzQ0NmQ3ZGFj
NzNkZmY4Li41NmI3ODZjYTg5NmVmYzc0YzkxNjk2NzJhNzEzYTFlZmY3MDlkNGU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvaW9zL0RhdGFiYXNlUHJvY2Vzc0lP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvaW9zL0RhdGFiYXNlUHJv
Y2Vzc0lPUy5tbQpAQCAtMzAsMTIgKzMwLDE1IEBACiAjaW1wb3J0ICJEYXRhYmFzZVByb2Nlc3Mu
aCIKIAogI2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgorI2ltcG9y
dCA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmlu
Z3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbXBvcnQgPFdlYktp
dFN5c3RlbUludGVyZmFjZS5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorI2RlZmlu
ZSBFTkFCTEVfTUFOVUFMX0RBVEFCQVNFX1NBTkRCT1hJTkcgMAorCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogdm9pZCBEYXRhYmFzZVByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxk
UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCkBAIC00OCw3ICs1MSwxMiBAQCB2b2lk
IERhdGFiYXNlUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vz
c0luaXRpYWxpemF0aW9uUGFyYQogCiB2b2lkIERhdGFiYXNlUHJvY2Vzczo6aW5pdGlhbGl6ZVNh
bmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBzYW5kYm94UGFyYW1ldGVycykK
IHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworI2lmIEVOQUJMRV9NQU5VQUxfREFUQUJBU0VfU0FO
REJPWElORworICAgIC8vIE5lZWQgdG8gb3ZlcmlkZSB0aGUgZGVmYXVsdCwgYmVjYXVzZSBzZXJ2
aWNlIGhhcyBhIGRpZmZlcmVudCBidW5kbGUgSUQuCisgICAgTlNCdW5kbGUgKndlYmtpdDJCdW5k
bGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1ZpZXci
KV07CisgICAgc2FuZGJveFBhcmFtZXRlcnMuc2V0T3ZlcnJpZGVTYW5kYm94UHJvZmlsZVBhdGgo
W3dlYmtpdDJCdW5kbGUgcGF0aEZvclJlc291cmNlOkAiY29tLmFwcGxlLldlYktpdC5EYXRhYmFz
ZXNJT1MiIG9mVHlwZTpAInNiIl0pOworICAgIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRi
b3gocGFyYW1ldGVycywgc2FuZGJveFBhcmFtZXRlcnMpOworI2VuZGlmCiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L2lvcy9jb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlc0lPUy5zYiBiL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9pb3MvY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXNJT1Muc2IKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDcyN2I4OTNiODc4N2FhOGI1OGQxMDI2MzU0N2Q4MjQ0YmNhMTQ4NwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9pb3MvY29tLmFwcGxlLldl
YktpdC5EYXRhYmFzZXNJT1Muc2IKQEAgLTAsMCArMSw1MyBAQAorOyBDb3B5cmlnaHQgKEMpIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorOworOyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKzsgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCis7IGFyZSBtZXQ6Cis7IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cis7ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKzsgMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KzsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorOyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorOworOyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCis7
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorOyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCis7IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworOyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCis7IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCis7IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworOyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorOyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorOyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCis7IFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworKHZlcnNpb24gMSkKKyhkZW55IGRlZmF1bHQgKHdpdGggcGFy
dGlhbC1zeW1ib2xpY2F0aW9uKSkKKyhhbGxvdyBzeXN0ZW0tYXVkaXQgZmlsZS1yZWFkLW1ldGFk
YXRhKQorCisoaW1wb3J0ICJjb21tb24uc2IiKQorKGltcG9ydCAicmVtb3ZlZC1kZXYtbm9kZXMu
c2IiKQorCis7OyBTYW5kYm94IGV4dGVuc2lvbnMKKyhkZWZpbmUgKGFwcGx5LXJlYWQtYW5kLWlz
c3VlLWV4dGVuc2lvbiBvcCBwYXRoLWZpbHRlcikKKyAgICAob3AgZmlsZS1yZWFkKiBwYXRoLWZp
bHRlcikKKyAgICAob3AgZmlsZS1pc3N1ZS1leHRlbnNpb24gKHJlcXVpcmUtYWxsIChleHRlbnNp
b24tY2xhc3MgImNvbS5hcHBsZS5hcHAtc2FuZGJveC5yZWFkIikgcGF0aC1maWx0ZXIpKSkKKyhk
ZWZpbmUgKGFwcGx5LXdyaXRlLWFuZC1pc3N1ZS1leHRlbnNpb24gb3AgcGF0aC1maWx0ZXIpCisg
ICAgKG9wIGZpbGUtd3JpdGUqIHBhdGgtZmlsdGVyKQorICAgIChvcCBmaWxlLWlzc3VlLWV4dGVu
c2lvbiAocmVxdWlyZS1hbGwgKGV4dGVuc2lvbi1jbGFzcyAiY29tLmFwcGxlLmFwcC1zYW5kYm94
LnJlYWQtd3JpdGUiKSBwYXRoLWZpbHRlcikpKQorKGRlZmluZSAocmVhZC1vbmx5LWFuZC1pc3N1
ZS1leHRlbnNpb25zIHBhdGgtZmlsdGVyKQorICAgIChhcHBseS1yZWFkLWFuZC1pc3N1ZS1leHRl
bnNpb24gYWxsb3cgcGF0aC1maWx0ZXIpKQorKGRlZmluZSAocmVhZC13cml0ZS1hbmQtaXNzdWUt
ZXh0ZW5zaW9ucyBwYXRoLWZpbHRlcikKKyAgICAoYXBwbHktcmVhZC1hbmQtaXNzdWUtZXh0ZW5z
aW9uIGFsbG93IHBhdGgtZmlsdGVyKQorICAgIChhcHBseS13cml0ZS1hbmQtaXNzdWUtZXh0ZW5z
aW9uIGFsbG93IHBhdGgtZmlsdGVyKSkKKyhyZWFkLW9ubHktYW5kLWlzc3VlLWV4dGVuc2lvbnMg
KGV4dGVuc2lvbiAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQiKSkKKyhyZWFkLXdyaXRlLWFu
ZC1pc3N1ZS1leHRlbnNpb25zIChleHRlbnNpb24gImNvbS5hcHBsZS5hcHAtc2FuZGJveC5yZWFk
LXdyaXRlIikpCisKKzs7IEZJWE1FOiBTaG91bGQgYmUgcmVtb3ZlZCBvbmNlIDxyZGFyOi8vcHJv
YmxlbS8xNjMyOTA4Nz4gaXMgZml4ZWQuCisoZGVueSBmaWxlLXdyaXRlLXhhdHRyICh4YXR0ciAi
Y29tLmFwcGxlLnF1YXJhbnRpbmUiKSAod2l0aCBuby1sb2cpKQorCis7OyBSZXNlcnZlIGEgbmFt
ZXNwYWNlIGZvciBhZGRpdGlvbmFsIHByb3RlY3RlZCBleHRlbmRlZCBhdHRyaWJ1dGVzLgorKGRl
bnkgZmlsZS1yZWFkLXhhdHRyIGZpbGUtd3JpdGUteGF0dHIgKHhhdHRyLXJlZ2V4ICMiXmNvbVwu
YXBwbGVcLnNlY3VyaXR5XC5wcml2YXRlXC4iKSkKKworKGlmIChkZWZpbmVkPyAndm5vZGUtdHlw
ZSkKKyAgICAoZGVueSBmaWxlLXdyaXRlLWNyZWF0ZSAodm5vZGUtdHlwZSBTWU1MSU5LKSkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvQ2hpbGRQcm9jZXNzSU9TLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdjNTQxMmNiZDQyZThlOWVhMTU3NzgyY2QxZjQyZTQyYTk1MWYzOWQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbQpAQCAtMCww
ICsxLDEyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYg
UExBVEZPUk0oSU9TKQorCisjaW1wb3J0ICJDaGlsZFByb2Nlc3MuaCIKKworI2ltcG9ydCAiU2Fu
ZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgorI2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50
ZXJmYWNlLmgiCisjaW1wb3J0IDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KKyNpbXBvcnQgPFdlYkNv
cmUvU3lzdGVtVmVyc2lvbk1hYy5oPgorI2ltcG9ydCA8bWFjaC9tYWNoLmg+CisjaW1wb3J0IDxt
YWNoL3Rhc2suaD4KKyNpbXBvcnQgPHB3ZC5oPgorI2ltcG9ydCA8c3RkbGliLmg+CisjaW1wb3J0
IDxzeXNleGl0cy5oPgorCisjaWZuZGVmIEVOQUJMRV9NQU5VQUxfU0FOREJPWElORworI2RlZmlu
ZSBFTkFCTEVfTUFOVUFMX1NBTkRCT1hJTkcgMAorI2VuZGlmCisKKyNpZiBFTkFCTEVfTUFOVUFM
X1NBTkRCT1hJTkcKKworLy8gV2UgaGF2ZSB0byAjdW5kZWYgX19BUFBMRV9BUElfUFJJVkFURSB0
byBwcmV2ZW50IHNhbmRib3guaCBmcm9tIGxvb2tpbmcgZm9yIGEgaGVhZGVyIGZpbGUgdGhhdCBk
b2VzIG5vdCBleGlzdCAoPHJkYXI6Ly9wcm9ibGVtLzk2NzkyMTE+KS4KKyN1bmRlZiBfX0FQUExF
X0FQSV9QUklWQVRFCisjaW1wb3J0IDxzYW5kYm94Lmg+CisKKyNkZWZpbmUgU0FOREJPWF9OQU1F
RF9FWFRFUk5BTCAweDAwMDMKK2V4dGVybiAiQyIgaW50IHNhbmRib3hfaW5pdF93aXRoX3BhcmFt
ZXRlcnMoY29uc3QgY2hhciAqcHJvZmlsZSwgdWludDY0X3QgZmxhZ3MsIGNvbnN0IGNoYXIgKmNv
bnN0IHBhcmFtZXRlcnNbXSwgY2hhciAqKmVycm9yYnVmKTsKKworI2VuZGlmCisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBDaGlsZFByb2Nl
c3M6OnNldEFwcGxpY2F0aW9uSXNEYWVtb24oKQoreworfQorCit2b2lkIENoaWxkUHJvY2Vzczo6
cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKKyAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFn
ZXJdIGNoYW5nZUN1cnJlbnREaXJlY3RvcnlQYXRoOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVu
ZGxlUGF0aF1dOworfQorCit2b2lkIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29u
c3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBTYW5k
Ym94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBzYW5kYm94UGFyYW1ldGVycykKK3sKKyNpZiBF
TkFCTEVfTUFOVUFMX1NBTkRCT1hJTkcKKyAgICBOU0J1bmRsZSAqd2Via2l0MkJ1bmRsZSA9IFtO
U0J1bmRsZSBidW5kbGVGb3JDbGFzczpOU0NsYXNzRnJvbVN0cmluZyhAIldLVmlldyIpXTsKKyAg
ICBTdHJpbmcgZGVmYXVsdFByb2ZpbGVQYXRoID0gW3dlYmtpdDJCdW5kbGUgcGF0aEZvclJlc291
cmNlOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gb2ZUeXBlOkAic2Ii
XTsKKyAgICBpZiAoc2FuZGJveFBhcmFtZXRlcnMuc3lzdGVtRGlyZWN0b3J5U3VmZml4KCkuaXNO
dWxsKCkpIHsKKyAgICAgICAgU3RyaW5nIGRlZmF1bHRTeXN0ZW1EaXJlY3RvcnlTdWZmaXggPSBT
dHJpbmcoW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSkgKyAiKyIgKyBw
YXJhbWV0ZXJzLmNsaWVudElkZW50aWZpZXI7CisgICAgICAgIHNhbmRib3hQYXJhbWV0ZXJzLnNl
dFN5c3RlbURpcmVjdG9yeVN1ZmZpeChkZWZhdWx0U3lzdGVtRGlyZWN0b3J5U3VmZml4KTsKKyAg
ICB9CisKKyAgICBTdHJpbmcgc2FuZGJveEltcG9ydFBhdGggPSAiL3Vzci9sb2NhbC9zaGFyZS9z
YW5kYm94L2ltcG9ydHMiOworICAgIHNhbmRib3hQYXJhbWV0ZXJzLmFkZFBhdGhQYXJhbWV0ZXIo
IklNUE9SVF9ESVIiLCBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc2FuZGJveEltcG9ydFBhdGgp
LmRhdGEoKSk7CisKKyAgICBzd2l0Y2ggKHNhbmRib3hQYXJhbWV0ZXJzLm1vZGUoKSkgeworICAg
IGNhc2UgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVyczo6VXNlRGVmYXVsdFNhbmRib3hQ
cm9maWxlUGF0aDoKKyAgICBjYXNlIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnM6OlVz
ZU92ZXJyaWRlU2FuZGJveFByb2ZpbGVQYXRoOiB7CisgICAgICAgIFN0cmluZyBzYW5kYm94UHJv
ZmlsZVBhdGggPSBzYW5kYm94UGFyYW1ldGVycy5tb2RlKCkgPT0gU2FuZGJveEluaXRpYWxpemF0
aW9uUGFyYW1ldGVyczo6VXNlRGVmYXVsdFNhbmRib3hQcm9maWxlUGF0aCA/IGRlZmF1bHRQcm9m
aWxlUGF0aCA6IHNhbmRib3hQYXJhbWV0ZXJzLm92ZXJyaWRlU2FuZGJveFByb2ZpbGVQYXRoKCk7
CisgICAgICAgIGlmICghc2FuZGJveFByb2ZpbGVQYXRoLmlzRW1wdHkoKSkgeworICAgICAgICAg
ICAgQ1N0cmluZyBwcm9maWxlUGF0aCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihzYW5kYm94
UHJvZmlsZVBhdGgpOworICAgICAgICAgICAgY2hhciogZXJyb3JCdWY7CisgICAgICAgICAgICBp
ZiAoc2FuZGJveF9pbml0X3dpdGhfcGFyYW1ldGVycyhwcm9maWxlUGF0aC5kYXRhKCksIFNBTkRC
T1hfTkFNRURfRVhURVJOQUwsIHNhbmRib3hQYXJhbWV0ZXJzLm5hbWVkUGFyYW1ldGVyQXJyYXko
KSwgJmVycm9yQnVmKSkgeworICAgICAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXM6IENvdWxk
bid0IGluaXRpYWxpemUgc2FuZGJveCBwcm9maWxlIFslc10sIGVycm9yICclcydcbiIsIGdldHBy
b2duYW1lKCksIHByb2ZpbGVQYXRoLmRhdGEoKSwgZXJyb3JCdWYpOworICAgICAgICAgICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9IHNhbmRib3hQYXJhbWV0ZXJzLmNvdW50KCk7IGkg
IT0gY291bnQ7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCIlcz0lc1xu
Iiwgc2FuZGJveFBhcmFtZXRlcnMubmFtZShpKSwgc2FuZGJveFBhcmFtZXRlcnMudmFsdWUoaSkp
OworICAgICAgICAgICAgICAgIGV4aXQoRVhfTk9QRVJNKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorCisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFNhbmRib3hJbml0aWFsaXph
dGlvblBhcmFtZXRlcnM6OlVzZVNhbmRib3hQcm9maWxlOiB7CisgICAgICAgIGNoYXIqIGVycm9y
QnVmOworICAgICAgICBpZiAoc2FuZGJveF9pbml0X3dpdGhfcGFyYW1ldGVycyhzYW5kYm94UGFy
YW1ldGVycy5zYW5kYm94UHJvZmlsZSgpLnV0ZjgoKS5kYXRhKCksIDAsIHNhbmRib3hQYXJhbWV0
ZXJzLm5hbWVkUGFyYW1ldGVyQXJyYXkoKSwgJmVycm9yQnVmKSkgeworICAgICAgICAgICAgV1RG
TG9nQWx3YXlzKCIlczogQ291bGRuJ3QgaW5pdGlhbGl6ZSBzYW5kYm94IHByb2ZpbGUsIGVycm9y
ICclcydcbiIsIGdldHByb2duYW1lKCksIGVycm9yQnVmKTsKKyAgICAgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwLCBjb3VudCA9IHNhbmRib3hQYXJhbWV0ZXJzLmNvdW50KCk7IGkgIT0gY291bnQ7
ICsraSkKKyAgICAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIiVzPSVzXG4iLCBzYW5kYm94UGFy
YW1ldGVycy5uYW1lKGkpLCBzYW5kYm94UGFyYW1ldGVycy52YWx1ZShpKSk7CisgICAgICAgICAg
ICBleGl0KEVYX05PUEVSTSk7CisgICAgICAgIH0KKworICAgICAgICBicmVhazsKKyAgICB9Cisg
ICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFyYW1ldGVycyk7CisgICAgVU5VU0VEX1BB
UkFNKHNhbmRib3hQYXJhbWV0ZXJzKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OworI2VuZGlmCit9CisKK3ZvaWQgQ2hpbGRQcm9jZXNzOjpzZXRRT1MoaW50LCBpbnQpCit7CisK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQppbmRleCBmYzgzMzcwNzhlYjIwOWNkOTRmZGE5
NTc1ODRlZWE0MDFkMzM3ZmQ5Li5kM2RmYWE0ZGQ3NTUzMDJkZjllY2QzMDNjODg0MmZkZTVlZjRh
YmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQpA
QCAtMjQsNiArMjQsOCBAQAogICovCiAKICNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgUExBVEZP
Uk0oTUFDKQogI2ltcG9ydCAiQ2hpbGRQcm9jZXNzLmgiCiAKICNpbXBvcnQgIlNhbmRib3hJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKQEAgLTM2LDEwICszOCw2IEBACiAjaW1wb3J0IDxzdGRs
aWIuaD4KICNpbXBvcnQgPHN5c2V4aXRzLmg+CiAKLSNpZiBQTEFURk9STShJT1MpCi0jaW1wb3J0
IDxXZWJDb3JlL0Zsb2F0aW5nUG9pbnRFbnZpcm9ubWVudC5oPgotI2VuZGlmCi0KIC8vIFdlIGhh
dmUgdG8gI3VuZGVmIF9fQVBQTEVfQVBJX1BSSVZBVEUgdG8gcHJldmVudCBzYW5kYm94LmggZnJv
bSBsb29raW5nIGZvciBhIGhlYWRlciBmaWxlIHRoYXQgZG9lcyBub3QgZXhpc3QgKDxyZGFyOi8v
cHJvYmxlbS85Njc5MjExPikuIAogI3VuZGVmIF9fQVBQTEVfQVBJX1BSSVZBVEUKICNpbXBvcnQg
PHNhbmRib3guaD4KQEAgLTUzLDcgKzUxLDcgQEAgZXh0ZXJuICJDIiBpbnQgc2FuZGJveF9pbml0
X3dpdGhfcGFyYW1ldGVycyhjb25zdCBjaGFyICpwcm9maWxlLCB1aW50NjRfdCBmbGFncywKICNl
bmRpZgogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwOTAKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwOTAKIHR5cGVkZWYgYm9vbCAoXkxTU2VydmVyQ29ubmVjdGlvbkFsbG93ZWRCbG9jaykg
KCBDRkRpY3Rpb25hcnlSZWYgb3B0aW9uc1JlZiApOwogZXh0ZXJuICJDIiB2b2lkIF9MU1NldEFw
cGxpY2F0aW9uTGF1bmNoU2VydmljZXNTZXJ2ZXJDb25uZWN0aW9uU3RhdHVzKHVpbnQ2NF90IGZs
YWdzLCBMU1NlcnZlckNvbm5lY3Rpb25BbGxvd2VkQmxvY2sgYmxvY2spOwogZXh0ZXJuICJDIiBD
RkRpY3Rpb25hcnlSZWYgX0xTQXBwbGljYXRpb25DaGVja0luKGludCBzZXNzaW9uSUQsIENGRGlj
dGlvbmFyeVJlZiBhcHBsaWNhdGlvbkluZm8pOwpAQCAtNjUsNyArNjMsNyBAQCB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLSNpZiAhUExBVEZPUk0oSU9T
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKIHN0YXRpYyB2b2lkIGluaXRpYWxpemVU
aW1lckNvYWxlc2NpbmdQb2xpY3koKQogewogICAgIC8vIFNldCB0YXNrX2xhdGVuY3kgYW5kIHRh
c2tfdGhyb3VnaHB1dCBRT1MgdGllcnMgYXMgYXBwcm9wcmlhdGUgZm9yIGEgdmlzaWJsZSBhcHBs
aWNhdGlvbi4KQEAgLTc3LDcgKzc1LDYgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVRpbWVyQ29h
bGVzY2luZ1BvbGljeSgpCiAKIHZvaWQgQ2hpbGRQcm9jZXNzOjpzZXRBcHBsaWNhdGlvbklzRGFl
bW9uKCkKIHsKLSNpZiAhUExBVEZPUk0oSU9TKQogICAgIE9TU3RhdHVzIGVycm9yID0gU2V0QXBw
bGljYXRpb25Jc0RhZW1vbih0cnVlKTsKICAgICBBU1NFUlRfVU5VU0VEKGVycm9yLCBlcnJvciA9
PSBub0Vycik7CiAKQEAgLTg1LDE5ICs4MiwxMyBAQCB2b2lkIENoaWxkUHJvY2Vzczo6c2V0QXBw
bGljYXRpb25Jc0RhZW1vbigpCiAgICAgX0xTU2V0QXBwbGljYXRpb25MYXVuY2hTZXJ2aWNlc1Nl
cnZlckNvbm5lY3Rpb25TdGF0dXMoMCwgMCk7CiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJl
Zj4gdW51c2VkID0gX0xTQXBwbGljYXRpb25DaGVja0luKC0yLCBDRkJ1bmRsZUdldEluZm9EaWN0
aW9uYXJ5KENGQnVuZGxlR2V0TWFpbkJ1bmRsZSgpKSk7CiAjZW5kaWYKLSNlbmRpZiAvLyAhUExB
VEZPUk0oSU9TKQogfQogCiB2b2lkIENoaWxkUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKCkK
IHsKLSNpZiAhUExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwOTAKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKICAg
ICBpbml0aWFsaXplVGltZXJDb2FsZXNjaW5nUG9saWN5KCk7CiAjZW5kaWYKLSNpZiBQTEFURk9S
TShJT1MpCi0gICAgRmxvYXRpbmdQb2ludEVudmlyb25tZW50JiBmbG9hdGluZ1BvaW50RW52aXJv
bm1lbnQgPSBGbG9hdGluZ1BvaW50RW52aXJvbm1lbnQ6OnNoYXJlZCgpOwotICAgIGZsb2F0aW5n
UG9pbnRFbnZpcm9ubWVudC5lbmFibGVEZW5vcm1hbFN1cHBvcnQoKTsKLSAgICBmbG9hdGluZ1Bv
aW50RW52aXJvbm1lbnQuc2F2ZU1haW5UaHJlYWRFbnZpcm9ubWVudCgpOwotI2VuZGlmCiAKICAg
ICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNoYW5nZUN1cnJlbnREaXJlY3RvcnlQ
YXRoOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlUGF0aF1dOwogfQpAQCAtMTIyLDcgKzEx
Myw3IEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFBy
b2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmCiAgICAgU3RyaW5nIG9zVmVyc2lvbiA9IG9z
VmVyc2lvblBhcnRzWzBdICsgJy4nICsgb3NWZXJzaW9uUGFydHNbMV07CiAgICAgc2FuZGJveFBh
cmFtZXRlcnMuYWRkUGFyYW1ldGVyKCJfT1NfVkVSU0lPTiIsIG9zVmVyc2lvbi51dGY4KCkuZGF0
YSgpKTsKIAotI2lmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA4MAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4
MAogICAgIC8vIFVzZSBwcml2YXRlIHRlbXBvcmFyeSBhbmQgY2FjaGUgZGlyZWN0b3JpZXMuCiAg
ICAgc2V0ZW52KCJESVJIRUxQRVJfVVNFUl9ESVJfU1VGRklYIiwgZmlsZVN5c3RlbVJlcHJlc2Vu
dGF0aW9uKHNhbmRib3hQYXJhbWV0ZXJzLnN5c3RlbURpcmVjdG9yeVN1ZmZpeCgpKS5kYXRhKCks
IDApOwogICAgIGNoYXIgdGVtcG9yYXJ5RGlyZWN0b3J5W1BBVEhfTUFYXTsKQEAgLTE4NywxNCAr
MTc4LDEyIEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGls
ZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmCiAgICAgfQogICAgIH0KIAotI2lmICFQ
TEFURk9STShJT1MpCiAgICAgLy8gVGhpcyB3aWxsIG92ZXJyaWRlIExTRmlsZVF1YXJhbnRpbmVF
bmFibGVkIGZyb20gSW5mby5wbGlzdCB1bmxlc3Mgc2FuZGJveCBxdWFyYW50aW5lIGlzIGdsb2Jh
bGx5IGRpc2FibGVkLgogICAgIE9TU3RhdHVzIGVycm9yID0gV0tFbmFibGVTYW5kYm94U3R5bGVG
aWxlUXVhcmFudGluZSgpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBXVEZMb2dBbHdheXMo
IiVzOiBDb3VsZG4ndCBlbmFibGUgc2FuZGJveCBzdHlsZSBmaWxlIHF1YXJhbnRpbmU6ICVsZFxu
IiwgZ2V0cHJvZ25hbWUoKSwgKGxvbmcpZXJyb3IpOwogICAgICAgICBleGl0KEVYX05PUEVSTSk7
CiAgICAgfQotI2VuZGlmCiB9CiAKICNpZiBVU0UoQVBQS0lUKQpAQCAtMjEwLDcgKzE5OSw3IEBA
IHZvaWQgQ2hpbGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKCkKIAogdm9pZCBDaGlsZFByb2Nl
c3M6OnNldFFPUyhpbnQgbGF0ZW5jeVFPUywgaW50IHRocm91Z2hwdXRRT1MpCiB7Ci0jaWYgIVBM
QVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiAgICAgaWYgKCFsYXRl
bmN5UU9TICYmICF0aHJvdWdocHV0UU9TKQogICAgICAgICByZXR1cm47CiAKQEAgLTIyNywzICsy
MTYsNSBAQCB2b2lkIENoaWxkUHJvY2Vzczo6c2V0UU9TKGludCBsYXRlbmN5UU9TLCBpbnQgdGhy
b3VnaHB1dFFPUykKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDky
YzE4Y2VmNzQ5MzgwYTg1ZWRiY2M0NDY1OTYzYjgyYzY2YThkYjEuLjQ2NjEyYzI0NWQ1MWI2YjEy
NmU5MTFmZTI5NDU1NWY3ODU2ODMwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNzAsNiArMTA3MCw3IEBACiAJCUE1RUZE
MzhDMTZCMEU4OEMwMEIyRjBFOCAvKiBXS1BhZ2VWaXNpYmlsaXR5VHlwZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1RUZEMzhCMTZCMEU4OEMwMEIy
RjBFOCAvKiBXS1BhZ2VWaXNpYmlsaXR5VHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBN0Q3OTJENjE3NjdDQjZFMDA4ODFDQkUgLyogQWN0
aXZpdHlBc3NlcnRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTdENzkyRDUxNzY3Q0I2RTAwODgxQ0JFIC8qIEFjdGl2aXR5QXNzZXJ0aW9uLmNw
cCAqLzsgfTsKIAkJQTdENzkyRDgxNzY3Q0NBMzAwODgxQ0JFIC8qIEFjdGl2aXR5QXNzZXJ0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0Q3OTJE
NDE3NjdDQjA5MDA4ODFDQkUgLyogQWN0aXZpdHlBc3NlcnRpb24uaCAqLzsgfTsKKwkJQTdFOTND
RUQxOTI1MzMxMTAwQTFEQzQ4IC8qIENoaWxkUHJvY2Vzc0lPUy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RTkzQ0VCMTkyNTMxQUEwMEExREM0OCAv
KiBDaGlsZFByb2Nlc3NJT1MubW0gKi87IH07CiAJCUI2MkU3MzEwMTQzMDQ3QTYwMDY5RUMzNSAv
KiBXS0hpdFRlc3RSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjYyRTczMEYxNDMwNDdBNjAwNjlFQzM1IC8qIFdLSGl0VGVzdFJlc3VsdC5j
cHAgKi87IH07CiAJCUI2MkU3MzEyMTQzMDQ3QjAwMDY5RUMzNSAvKiBXS0hpdFRlc3RSZXN1bHQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI2MkU3MzEx
MTQzMDQ3QjAwMDY5RUMzNSAvKiBXS0hpdFRlc3RSZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCNjM0MDNGOTE0OTEwRDU3MDAxMDcwQjUg
LyogQVBJT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEI2MzQwM0Y4MTQ5MTBENTcwMDEwNzBCNSAvKiBBUElPYmplY3QuY3BwICovOyB9OwpA
QCAtMzA2Nyw2ICszMDY4LDggQEAKIAkJQTcyRDVEN0YxMjM2Q0JBODAwQTg4QjE1IC8qIFdlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTdENzkyRDQxNzY3Q0IwOTAwODgxQ0JFIC8qIEFjdGl2aXR5QXNzZXJ0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFjdGl2aXR5QXNzZXJ0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE3RDc5MkQ1MTc2N0NCNkUwMDg4MUNCRSAvKiBBY3Rpdml0eUFzc2VydGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY3Rpdml0eUFzc2VydGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3RTkzQ0U5MTkyNTI3QjYwMEExREM0OCAvKiBj
b20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlc0lPUy5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBj
b20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlc0lPUy5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQTdFOTNDRUIxOTI1MzFBQTAwQTFEQzQ4IC8qIENoaWxkUHJvY2Vzc0lPUy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IENoaWxkUHJvY2Vzc0lPUy5tbTsg
cGF0aCA9IGlvcy9DaGlsZFByb2Nlc3NJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUIzOTZFQTU1MTJFMEVEMkQwMEY0RkVCNyAvKiBjb25maWcuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gY29uZmlnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUI2MkU3MzBGMTQzMDQ3QTYwMDY5RUMzNSAvKiBXS0hpdFRlc3RSZXN1bHQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tIaXRUZXN0UmVzdWx0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjYyRTczMTExNDMwNDdCMDAwNjlFQzM1IC8qIFdLSGl0
VGVzdFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0hpdFRlc3RS
ZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ2NTEsNiArNDY1NCw3IEBA
CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkyREE5NDQ5RDE4ODRFNEYwMDBFRDg2REIgLyogR2VzdHVy
ZVR5cGVzLmggKi8sCiAJCQkJMkRBOTQ0OTcxODg0RTRGMDAwRUQ4NkRCIC8qIE5hdGl2ZVdlYktl
eWJvYXJkRXZlbnRJT1MubW0gKi8sCisJCQkJQTdFOTNDRUIxOTI1MzFBQTAwQTFEQzQ4IC8qIENo
aWxkUHJvY2Vzc0lPUy5tbSAqLywKIAkJCQkyREE5NDQ5ODE4ODRFNEYwMDBFRDg2REIgLyogTmF0
aXZlV2ViVG91Y2hFdmVudElPUy5tbSAqLywKIAkJCQlBMTE4QTlFQzE5MDdBRDZGMDBGN0M5MkIg
LyogUXVpY2tMb29rRG9jdW1lbnREYXRhLmNwcCAqLywKIAkJCQlBMTE4QTlFRDE5MDdBRDZGMDBG
N0M5MkIgLyogUXVpY2tMb29rRG9jdW1lbnREYXRhLmggKi8sCkBAIC02ODE3LDYgKzY4MjEsNyBA
QAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlFMUZFRjM5QzE5MEY3
OTFDMDA3MzE2NTggLyogRGF0YWJhc2VQcm9jZXNzSU9TLm1tICovLAorCQkJCUE3RTkzQ0U5MTky
NTI3QjYwMEExREM0OCAvKiBjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlc0lPUy5zYiAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTg3NTIs
NiArODc1Nyw3IEBACiAJCQkJMUExQjBFQjUxOEE0MjQ5NTAwMzg0ODFBIC8qIFdLTmF2aWdhdGlv
blJlc3BvbnNlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwRUM5MDcxMjRDMEFCODAwN0VGNEE1
IC8qIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMEVD
OTEwMTI0QzBBRjUwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQTdFOTNDRUQxOTI1MzMxMTAwQTFEQzQ4IC8qIENoaWxkUHJv
Y2Vzc0lPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJERDEzQkQ1MThGN0RBREQwMEUxMzBBMSAv
KiBGaW5kQ29udHJvbGxlcklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBNzg2NUI5MTZDQUM3
MTUwMEFDRTgzQSAvKiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyQkI2RDAxNDExN0I0RDAwMEYzNUQ0IC8qIFBs
dWdpblByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>