<?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>158095</bug_id>
          
          <creation_ts>2016-05-25 14:49:24 -0700</creation_ts>
          <short_desc>Expose content extension failure error codes in SPI</short_desc>
          <delta_ts>2016-05-27 11:50:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>andersca</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1196506</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-05-25 14:49:24 -0700</bug_when>
    <thetext>Expose content extension failure error codes in SPI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196507</commentid>
    <comment_count>1</comment_count>
      <attachid>279820</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-05-25 14:49:51 -0700</bug_when>
    <thetext>Created attachment 279820
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196564</commentid>
    <comment_count>2</comment_count>
      <attachid>279836</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-05-25 16:36:35 -0700</bug_when>
    <thetext>Created attachment 279836
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196573</commentid>
    <comment_count>3</comment_count>
      <attachid>279841</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-05-25 17:05:42 -0700</bug_when>
    <thetext>Created attachment 279841
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196881</commentid>
    <comment_count>4</comment_count>
      <attachid>279841</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-05-26 15:51:06 -0700</bug_when>
    <thetext>Comment on attachment 279841
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentExtensionStore.h:45
&gt; +// These correspond with the error codes in UserContentExtensionStore::Error.
&gt; +typedef NS_ENUM(NSInteger, _WKUserContentExtensionStoreErrorCode) {

Instead of requiring these to stay in sync, we should explicitly convert from one to the other with a switch statement like we do for other errors.  Also, SPI headers should not refer to internals.

I also think this should be an extension to WKErrorCode and we should switch to using the WKError domain.  I believe you do that by using constants of type WKErrorCode, but am not sure.  I&apos;ll let Anders say.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/_WKUserContentExtensionStore.mm:68
&gt; +        EXPECT_EQ(error.code, _WKUserContentExtensionStoreErrorCode::CompileFailed);

This should test the domain as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196891</commentid>
    <comment_count>5</comment_count>
      <attachid>279920</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-05-26 16:04:52 -0700</bug_when>
    <thetext>Created attachment 279920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196894</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-05-26 16:09:58 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; I also think this should be an extension to WKErrorCode and we should switch
&gt; to using the WKError domain.  I believe you do that by using constants of
&gt; type WKErrorCode, but am not sure.  I&apos;ll let Anders say.
I disagree and have implemented it as a separate domain.  If Anders tells me otherwise, I&apos;ll change it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197123</commentid>
    <comment_count>7</comment_count>
      <attachid>279920</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-05-27 11:25:00 -0700</bug_when>
    <thetext>Comment on attachment 279920
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentExtensionStore.h:50
&gt; +    LookupFailed = 1,
&gt; +    VersionMismatch,
&gt; +    CompileFailed,
&gt; +    RemoveFailed,

These should be prefixed correctly,

_WKUserContentExtensionStoreErrorLookupFailed, _WKUserContentExtensionStoreErrorVersionMismatch etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197125</commentid>
    <comment_count>8</comment_count>
      <attachid>279976</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-05-27 11:29:54 -0700</bug_when>
    <thetext>Created attachment 279976
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197128</commentid>
    <comment_count>9</comment_count>
      <attachid>279976</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-05-27 11:33:17 -0700</bug_when>
    <thetext>Comment on attachment 279976
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentExtensionStore.h:44
&gt; +WK_EXTERN NSString * const _ContentExtensionsDomain WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);

Should be _WKUserContentExtensionsDomain.

&gt; Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm:87
&gt; +            auto code = toWKUserContentExtensionStoreErrorCode(API::UserContentExtensionStore::Error::CompileFailed);
&gt; +            rawHandler(nil, [NSError errorWithDomain:_ContentExtensionsDomain code:code userInfo:userInfo]);

No need to use toWKUserContentExtensionStoreErrorCode here - just pass the WebKit code directly.

&gt; Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm:126
&gt; +            auto code = toWKUserContentExtensionStoreErrorCode(API::UserContentExtensionStore::Error::RemoveFailed);
&gt; +            rawHandler([NSError errorWithDomain:_ContentExtensionsDomain code:code userInfo:userInfo]);

No need to use toWKUserContentExtensionStoreErrorCode here - just pass the WebKit code directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197136</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-05-27 11:50:01 -0700</bug_when>
    <thetext>Passing the WebKit code doesn&apos;t like converting an enum to an NSInteger, so I just used the new API codes.

http://trac.webkit.org/changeset/201457</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279820</attachid>
            <date>2016-05-25 14:49:51 -0700</date>
            <delta_ts>2016-05-25 16:36:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158095-20160525145100.patch</filename>
            <type>text/plain</type>
            <size>1957</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMTQwMikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE2LTA1LTI1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXhwb3NlIGNv
bnRlbnQgZXh0ZW5zaW9uIGZhaWx1cmUgZXJyb3IgY29kZXMgaW4gU1BJCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwOTUKKyAgICAgICAgcmRhcjov
L3Byb2JsZW0vMjY0NzU2NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25T
dG9yZS5oOgorCiAyMDE2LTA1LTI1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgRml4IENNYWtlIGJ1aWxkLgpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlLmgJKHJldmlzaW9uIDIwMTM4NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2
ICs0Miw3IEBAIGNsYXNzIFVzZXJDb250ZW50RXh0ZW5zaW9uOwogCiBjbGFzcyBVc2VyQ29udGVu
dEV4dGVuc2lvblN0b3JlIGZpbmFsIDogcHVibGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpV
c2VyQ29udGVudEV4dGVuc2lvblN0b3JlPiB7CiBwdWJsaWM6CisgICAgLy8gVGhlc2Ugc2hvdWxk
IGNvcnJlc3BvbmQgd2l0aCB0aGUgdmFsdWVzIGluIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3Rv
cmUKICAgICBlbnVtIGNsYXNzIEVycm9yIHsKICAgICAgICAgTG9va3VwRmFpbGVkID0gMSwKICAg
ICAgICAgVmVyc2lvbk1pc21hdGNoLApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlLmgJKHJldmlzaW9uIDIwMTM4NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00
MSw0ICs0MSwxMiBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTEsIDlfMCkKIAogQGVuZAogCisv
LyBUaGVzZSBjb3JyZXNwb25kIHdpdGggdGhlIGVycm9yIGNvZGVzIGluIFVzZXJDb250ZW50RXh0
ZW5zaW9uU3RvcmU6OkVycm9yLgordHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLVXNlckNv
bnRlbnRFeHRlbnNpb25TdG9yZUVycm9yQ29kZSkgeworICAgIExvb2t1cEZhaWxlZCA9IDEsCisg
ICAgVmVyc2lvbk1pc21hdGNoLAorICAgIENvbXBpbGVGYWlsZWQsCisgICAgUmVtb3ZlRmFpbGVk
LAorfSBXS19FTlVNX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKwogI2VuZGlm
IC8vIFdLX0FQSV9FTkFCTEVECg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279836</attachid>
            <date>2016-05-25 16:36:35 -0700</date>
            <delta_ts>2016-05-25 17:05:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158095-20160525163743.patch</filename>
            <type>text/plain</type>
            <size>13491</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMTQwMikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE2LTA1LTI1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXhwb3NlIGNv
bnRlbnQgZXh0ZW5zaW9uIGZhaWx1cmUgZXJyb3IgY29kZXMgaW4gU1BJCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwOTUKKyAgICAgICAgcmRhcjov
L3Byb2JsZW0vMjY0NzU2NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5j
cHA6CisgICAgICAgIChBUEk6OlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OmludmFsaWRhdGVD
b250ZW50RXh0ZW5zaW9uVmVyc2lvbik6CisgICAgICAgIEFkZGVkIGZvciB0ZXN0aW5nLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5o
OgorICAgICAgICBBZGRlZCB0aGUgbmV3IGVudW0sIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3Rv
cmVFcnJvckNvZGUuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVu
dEV4dGVuc2lvblN0b3JlLm1tOgorICAgICAgICAoLVtfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlIGNvbXBpbGVDb250ZW50RXh0ZW5zaW9uRm9ySWRlbnRpZmllcjplbmNvZGVkQ29udGVudEV4
dGVuc2lvbjpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgU29tZXRpbWVzIHRoZSBlcnJv
ciBjb2RlIHJldHVybmVkIGJ5IFVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OmNvbXBpbGVDb250
ZW50RXh0ZW5zaW9uIGhhcyB0aGUgZXJyb3IgY29kZSBmcm9tIGNvbXBpbGVSdWxlTGlzdC4KKyAg
ICAgICAgV2hlbiB0aGlzIGhhcHBlbnMsIHdlIHdhbnQgdG8gZ2V0IHRoZSBtZXNzYWdlIGZyb20g
dGhlIGludGVybmFsIGNvbXBpbGVyIGVycm9yLCBidXQgd2Ugd2FudCB0aGUgTlNFcnJvcidzIGNv
ZGUgdG8gYWx3YXlzIGJlIENvbXBpbGVGYWlsZWQuCisgICAgICAgICgtW19XS1VzZXJDb250ZW50
RXh0ZW5zaW9uU3RvcmUgX2ludmFsaWRhdGVDb250ZW50RXh0ZW5zaW9uVmVyc2lvbkZvcklkZW50
aWZpZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4
dGVuc2lvblN0b3JlUHJpdmF0ZS5oOgorICAgICAgICBBZGRlZCBuZXcgaW52YWxpZGF0b3IgZm9y
IHRlc3RpbmcuCisKIDIwMTYtMDUtMjUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggQ01ha2UgYnVpbGQuCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZS5jcHAJKHJldmlzaW9uIDIwMTM4NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUyLDcgKzUyLDcgQEAgVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSYgVXNlckNvbnRlbnRF
eAogICAgIHJldHVybiAqZGVmYXVsdFN0b3JlOwogfQogCi1SZWY8VXNlckNvbnRlbnRFeHRlbnNp
b25TdG9yZT4gVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZTo6c3RvcmVXaXRoUGF0aChjb25zdCBX
VEY6OlN0cmluZyYgc3RvcmVQYXRoKQorUmVmPFVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU+IFVz
ZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OnN0b3JlV2l0aFBhdGgoY29uc3QgU3RyaW5nJiBzdG9y
ZVBhdGgpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVXNlckNvbnRlbnRFeHRlbnNpb25T
dG9yZShzdG9yZVBhdGgpKTsKIH0KQEAgLTYyLDcgKzYyLDcgQEAgVXNlckNvbnRlbnRFeHRlbnNp
b25TdG9yZTo6VXNlckNvbnRlbnRFeAogewogfQogCi1Vc2VyQ29udGVudEV4dGVuc2lvblN0b3Jl
OjpVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlKGNvbnN0IFdURjo6U3RyaW5nJiBzdG9yZVBhdGgp
CitVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlKGNv
bnN0IFN0cmluZyYgc3RvcmVQYXRoKQogICAgIDogbV9zdG9yZVBhdGgoc3RvcmVQYXRoKQogICAg
ICwgbV9jb21waWxlUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIlVzZXJDb250ZW50RXh0ZW5zaW9u
U3RvcmUgQ29tcGlsZSBRdWV1ZSIsIFdvcmtRdWV1ZTo6VHlwZTo6Q29uY3VycmVudCkpCiAgICAg
LCBtX3JlYWRRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiVXNlckNvbnRlbnRFeHRlbnNpb25TdG9y
ZSBSZWFkIFF1ZXVlIikpCkBAIC0zMDQsNyArMzA0LDcgQEAgc3RhdGljIFJlZlB0cjxBUEk6OlVz
ZXJDb250ZW50RXh0ZW5zaW9uPgogICAgIHJldHVybiBBUEk6OlVzZXJDb250ZW50RXh0ZW5zaW9u
OjpjcmVhdGUoaWRlbnRpZmllciwgV1RGTW92ZShjb21waWxlZENvbnRlbnRFeHRlbnNpb24pKTsK
IH0KIAotdm9pZCBVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpsb29rdXBDb250ZW50RXh0ZW5z
aW9uKGNvbnN0IFdURjo6U3RyaW5nJiBpZGVudGlmaWVyLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUmVm
UHRyPEFQSTo6VXNlckNvbnRlbnRFeHRlbnNpb24+LCBzdGQ6OmVycm9yX2NvZGUpPiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZTo6bG9va3VwQ29udGVu
dEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIHN0ZDo6ZnVuY3Rpb248dm9pZChS
ZWZQdHI8QVBJOjpVc2VyQ29udGVudEV4dGVuc2lvbj4sIHN0ZDo6ZXJyb3JfY29kZSk+IGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIFJlZlB0cjxVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlPiBz
ZWxmKHRoaXMpOwogICAgIFN0cmluZ0NhcHR1cmUgaWRlbnRpZmllckNhcHR1cmUoaWRlbnRpZmll
cik7CkBAIC0zMzYsNyArMzM2LDcgQEAgdm9pZCBVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjps
b29rdXBDbwogICAgIH0pOwogfQogCi12b2lkIFVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OmNv
bXBpbGVDb250ZW50RXh0ZW5zaW9uKGNvbnN0IFdURjo6U3RyaW5nJiBpZGVudGlmaWVyLCBXVEY6
OlN0cmluZyYmIGpzb24sIHN0ZDo6ZnVuY3Rpb248dm9pZChSZWZQdHI8QVBJOjpVc2VyQ29udGVu
dEV4dGVuc2lvbj4sIHN0ZDo6ZXJyb3JfY29kZSk+IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBV
c2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpjb21waWxlQ29udGVudEV4dGVuc2lvbihjb25zdCBT
dHJpbmcmIGlkZW50aWZpZXIsIFN0cmluZyYmIGpzb24sIHN0ZDo6ZnVuY3Rpb248dm9pZChSZWZQ
dHI8QVBJOjpVc2VyQ29udGVudEV4dGVuc2lvbj4sIHN0ZDo6ZXJyb3JfY29kZSk+IGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIFJlZlB0cjxVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlPiBzZWxm
KHRoaXMpOwogICAgIFN0cmluZ0NhcHR1cmUgaWRlbnRpZmllckNhcHR1cmUoaWRlbnRpZmllcik7
CkBAIC0zNjMsNyArMzYzLDcgQEAgdm9pZCBVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpjb21w
aWxlQwogICAgIH0pOwogfQogCi12b2lkIFVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OnJlbW92
ZUNvbnRlbnRFeHRlbnNpb24oY29uc3QgV1RGOjpTdHJpbmcmIGlkZW50aWZpZXIsIHN0ZDo6ZnVu
Y3Rpb248dm9pZChzdGQ6OmVycm9yX2NvZGUpPiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgVXNl
ckNvbnRlbnRFeHRlbnNpb25TdG9yZTo6cmVtb3ZlQ29udGVudEV4dGVuc2lvbihjb25zdCBTdHJp
bmcmIGlkZW50aWZpZXIsIHN0ZDo6ZnVuY3Rpb248dm9pZChzdGQ6OmVycm9yX2NvZGUpPiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBSZWZQdHI8VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZT4g
c2VsZih0aGlzKTsKICAgICBTdHJpbmdDYXB0dXJlIGlkZW50aWZpZXJDYXB0dXJlKGlkZW50aWZp
ZXIpOwpAQCAtMzkxLDYgKzM5MSwxNyBAQCB2b2lkIFVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6
OnN5bmNocm9uCiAgICAgICAgIFdlYkNvcmU6OmRlbGV0ZUZpbGUocGF0aCk7CiB9CiAKK3ZvaWQg
VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZTo6aW52YWxpZGF0ZUNvbnRlbnRFeHRlbnNpb25WZXJz
aW9uKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGZpbGUgPSBXZWJDb3Jl
OjpvcGVuRmlsZShjb25zdHJ1Y3RlZFBhdGgobV9zdG9yZVBhdGgsIGlkZW50aWZpZXIpLCBXZWJD
b3JlOjpPcGVuRm9yV3JpdGUpOworICAgIGlmIChmaWxlID09IFdlYkNvcmU6OmludmFsaWRQbGF0
Zm9ybUZpbGVIYW5kbGUpCisgICAgICAgIHJldHVybjsKKyAgICBDb250ZW50RXh0ZW5zaW9uTWV0
YURhdGEgaW52YWxpZEhlYWRlciA9IHswLCAwLCAwLCAwLCAwfTsKKyAgICBhdXRvIGJ5dGVzV3Jp
dHRlbiA9IFdlYkNvcmU6OndyaXRlVG9GaWxlKGZpbGUsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KCZpbnZhbGlkSGVhZGVyKSwgc2l6ZW9mKGludmFsaWRIZWFkZXIpKTsKKyAgICBBU1NF
UlQoYnl0ZXNXcml0dGVuID09IHNpemVvZihpbnZhbGlkSGVhZGVyKSk7CisgICAgV2ViQ29yZTo6
Y2xvc2VGaWxlKGZpbGUpOworfQorICAgIAogY29uc3Qgc3RkOjplcnJvcl9jYXRlZ29yeSYgdXNl
ckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yQ2F0ZWdvcnkoKQogewogICAgIGNsYXNzIFVzZXJD
b250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvckNhdGVnb3J5IDogcHVibGljIHN0ZDo6ZXJyb3JfY2F0
ZWdvcnkgewpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVu
dEV4dGVuc2lvblN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9BUElVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmgJKHJldmlzaW9uIDIwMTM4NykKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9y
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIGNsYXNzIFVzZXJDb250ZW50RXh0
ZW5zaW9uOwogCiBjbGFzcyBVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIGZpbmFsIDogcHVibGlj
IE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlPiB7CiBw
dWJsaWM6CisgICAgLy8gVGhlc2Ugc2hvdWxkIGNvcnJlc3BvbmQgd2l0aCB0aGUgdmFsdWVzIGlu
IF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUKICAgICBlbnVtIGNsYXNzIEVycm9yIHsKICAg
ICAgICAgTG9va3VwRmFpbGVkID0gMSwKICAgICAgICAgVmVyc2lvbk1pc21hdGNoLApAQCAtNTQs
MjMgKzU1LDI0IEBAIHB1YmxpYzoKICAgICBjb25zdCBzdGF0aWMgdWludDMyX3QgQ3VycmVudENv
bnRlbnRFeHRlbnNpb25GaWxlVmVyc2lvbiA9IDc7CiAKICAgICBzdGF0aWMgVXNlckNvbnRlbnRF
eHRlbnNpb25TdG9yZSYgZGVmYXVsdFN0b3JlKCk7Ci0gICAgc3RhdGljIFJlZjxVc2VyQ29udGVu
dEV4dGVuc2lvblN0b3JlPiBzdG9yZVdpdGhQYXRoKGNvbnN0IFdURjo6U3RyaW5nJiBzdG9yZVBh
dGgpOworICAgIHN0YXRpYyBSZWY8VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZT4gc3RvcmVXaXRo
UGF0aChjb25zdCBTdHJpbmcmIHN0b3JlUGF0aCk7CiAKICAgICBleHBsaWNpdCBVc2VyQ29udGVu
dEV4dGVuc2lvblN0b3JlKCk7Ci0gICAgZXhwbGljaXQgVXNlckNvbnRlbnRFeHRlbnNpb25TdG9y
ZShjb25zdCBXVEY6OlN0cmluZyYgc3RvcmVQYXRoKTsKKyAgICBleHBsaWNpdCBVc2VyQ29udGVu
dEV4dGVuc2lvblN0b3JlKGNvbnN0IFN0cmluZyYgc3RvcmVQYXRoKTsKICAgICB2aXJ0dWFsIH5V
c2VyQ29udGVudEV4dGVuc2lvblN0b3JlKCk7CiAKLSAgICB2b2lkIGNvbXBpbGVDb250ZW50RXh0
ZW5zaW9uKGNvbnN0IFdURjo6U3RyaW5nJiBpZGVudGlmaWVyLCBXVEY6OlN0cmluZyYmIGpzb24s
IHN0ZDo6ZnVuY3Rpb248dm9pZChSZWZQdHI8QVBJOjpVc2VyQ29udGVudEV4dGVuc2lvbj4sIHN0
ZDo6ZXJyb3JfY29kZSk+KTsKLSAgICB2b2lkIGxvb2t1cENvbnRlbnRFeHRlbnNpb24oY29uc3Qg
V1RGOjpTdHJpbmcmIGlkZW50aWZpZXIsIHN0ZDo6ZnVuY3Rpb248dm9pZChSZWZQdHI8QVBJOjpV
c2VyQ29udGVudEV4dGVuc2lvbj4sIHN0ZDo6ZXJyb3JfY29kZSk+KTsKLSAgICB2b2lkIHJlbW92
ZUNvbnRlbnRFeHRlbnNpb24oY29uc3QgV1RGOjpTdHJpbmcmIGlkZW50aWZpZXIsIHN0ZDo6ZnVu
Y3Rpb248dm9pZChzdGQ6OmVycm9yX2NvZGUpPik7CisgICAgdm9pZCBjb21waWxlQ29udGVudEV4
dGVuc2lvbihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIFN0cmluZyYmIGpzb24sIHN0ZDo6ZnVu
Y3Rpb248dm9pZChSZWZQdHI8QVBJOjpVc2VyQ29udGVudEV4dGVuc2lvbj4sIHN0ZDo6ZXJyb3Jf
Y29kZSk+KTsKKyAgICB2b2lkIGxvb2t1cENvbnRlbnRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBp
ZGVudGlmaWVyLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUmVmUHRyPEFQSTo6VXNlckNvbnRlbnRFeHRl
bnNpb24+LCBzdGQ6OmVycm9yX2NvZGUpPik7CisgICAgdm9pZCByZW1vdmVDb250ZW50RXh0ZW5z
aW9uKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgc3RkOjpmdW5jdGlvbjx2b2lkKHN0ZDo6ZXJy
b3JfY29kZSk+KTsKIAogICAgIC8vIEZvciB0ZXN0aW5nIG9ubHkuCiAgICAgdm9pZCBzeW5jaHJv
bm91c1JlbW92ZUFsbENvbnRlbnRFeHRlbnNpb25zKCk7CisgICAgdm9pZCBpbnZhbGlkYXRlQ29u
dGVudEV4dGVuc2lvblZlcnNpb24oY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKTsKIAogcHJpdmF0
ZToKLSAgICBXVEY6OlN0cmluZyBkZWZhdWx0U3RvcmVQYXRoKCk7CisgICAgU3RyaW5nIGRlZmF1
bHRTdG9yZVBhdGgoKTsKIAotICAgIGNvbnN0IFdURjo6U3RyaW5nIG1fc3RvcmVQYXRoOworICAg
IGNvbnN0IFN0cmluZyBtX3N0b3JlUGF0aDsKICAgICBSZWY8V1RGOjpXb3JrUXVldWU+IG1fY29t
cGlsZVF1ZXVlOwogICAgIFJlZjxXVEY6OldvcmtRdWV1ZT4gbV9yZWFkUXVldWU7CiAgICAgUmVm
PFdURjo6V29ya1F1ZXVlPiBtX3JlbW92ZVF1ZXVlOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4
dGVuc2lvblN0b3JlLmgJKHJldmlzaW9uIDIwMTM4NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MSw0ICs0MSwxMiBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTEsIDlfMCkKIAog
QGVuZAogCisvLyBUaGVzZSBjb3JyZXNwb25kIHdpdGggdGhlIGVycm9yIGNvZGVzIGluIFVzZXJD
b250ZW50RXh0ZW5zaW9uU3RvcmU6OkVycm9yLgordHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwg
X1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yQ29kZSkgeworICAgIExvb2t1cEZhaWxl
ZCA9IDEsCisgICAgVmVyc2lvbk1pc21hdGNoLAorICAgIENvbXBpbGVGYWlsZWQsCisgICAgUmVt
b3ZlRmFpbGVkLAorfSBXS19FTlVNX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsK
KwogI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4dGVu
c2lvblN0b3JlLm1tCShyZXZpc2lvbiAyMDEzODcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTY1LDcgKzY1LDcgQEAgLSAodm9pZCljb21waWxlQ29udGVudEV4dGVuc2lvbkZvcklk
ZW50aQogICAgICAgICAgICAgYXV0byByYXdIYW5kbGVyID0gKHZvaWQgKF4pKF9XS1VzZXJDb250
ZW50RmlsdGVyICosIE5TRXJyb3IgKikpaGFuZGxlci5nZXQoKTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgYXV0byB1c2VySW5mbyA9IEB7TlNIZWxwQW5jaG9yRXJyb3JLZXk6IFtOU1N0cmlu
ZyBzdHJpbmdXaXRoRm9ybWF0OkAiRXh0ZW5zaW9uIGNvbXBpbGF0aW9uIGZhaWxlZDogJXMiLCBl
cnJvci5tZXNzYWdlKCkuY19zdHIoKV19OwotICAgICAgICAgICAgcmF3SGFuZGxlcihuaWwsIFtO
U0Vycm9yIGVycm9yV2l0aERvbWFpbjpAIkNvbnRlbnRFeHRlbnNpb25zRG9tYWluIiBjb2RlOmVy
cm9yLnZhbHVlKCkgdXNlckluZm86dXNlckluZm9dKTsKKyAgICAgICAgICAgIHJhd0hhbmRsZXIo
bmlsLCBbTlNFcnJvciBlcnJvcldpdGhEb21haW46QCJDb250ZW50RXh0ZW5zaW9uc0RvbWFpbiIg
Y29kZTpfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlRXJyb3JDb2RlOjpDb21waWxlRmFpbGVk
IHVzZXJJbmZvOnVzZXJJbmZvXSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApA
QCAtMTI4LDYgKzEyOCwxMSBAQCAtICh2b2lkKV9yZW1vdmVBbGxDb250ZW50RXh0ZW5zaW9ucwog
ICAgIF91c2VyQ29udGVudEV4dGVuc2lvblN0b3JlLT5zeW5jaHJvbm91c1JlbW92ZUFsbENvbnRl
bnRFeHRlbnNpb25zKCk7CiB9CiAKKy0gKHZvaWQpX2ludmFsaWRhdGVDb250ZW50RXh0ZW5zaW9u
VmVyc2lvbkZvcklkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllcgoreworICAgIF91c2Vy
Q29udGVudEV4dGVuc2lvblN0b3JlLT5pbnZhbGlkYXRlQ29udGVudEV4dGVuc2lvblZlcnNpb24o
aWRlbnRpZmllcik7Cit9CisKIEBlbmQKIAogI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RXh0ZW5z
aW9uU3RvcmVQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlUHJpdmF0ZS5oCShyZXZpc2lv
biAyMDEzODcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJD
b250ZW50RXh0ZW5zaW9uU3RvcmVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMx
LDcgQEAKIAogLy8gRm9yIHRlc3Rpbmcgb25seS4KIC0gKHZvaWQpX3JlbW92ZUFsbENvbnRlbnRF
eHRlbnNpb25zOworLSAodm9pZClfaW52YWxpZGF0ZUNvbnRlbnRFeHRlbnNpb25WZXJzaW9uRm9y
SWRlbnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyOwogCiBAZW5kCiAKSW5kZXg6IFRvb2xz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMTQw
OSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisy
MDE2LTA1LTI1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgRXhwb3NlIGNvbnRlbnQgZXh0ZW5zaW9uIGZhaWx1cmUgZXJyb3IgY29kZXMgaW4g
U1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgw
OTUKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMjY0NzU2NTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUubW06CisgICAgICAgIChURVNUX0Yp
OgorICAgICAgICBBZGQgdGVzdHMgdGhhdCB1c2UgdGhlIG5ldyBlbnVtLgorCiAyMDE2LTA1LTI1
ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgR2V0IHJp
ZCBvZiBXVEYvRnVuY3Rpb25hbC5oCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL19XS1VzZXJDb250ZW50RXh0
ZW5zaW9uU3RvcmUubW0JKHJldmlzaW9uIDIwMTM4NykKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0JKHdvcmtp
bmcgY29weSkKQEAgLTY1LDYgKzY1LDcgQEAgVEVTVF9GKF9XS1VzZXJDb250ZW50RXh0ZW5zaW9u
U3RvcmVUZXN0LAogICAgIAogICAgICAgICBFWFBFQ1RfTlVMTChmaWx0ZXIpOwogICAgICAgICBF
WFBFQ1RfTk9UX05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1RfRVEoZXJyb3IuY29kZSwgX1dL
VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yQ29kZTo6Q29tcGlsZUZhaWxlZCk7CiAgICAg
ICAgIEVYUEVDVF9TVFJFUSgiRXh0ZW5zaW9uIGNvbXBpbGF0aW9uIGZhaWxlZDogRmFpbGVkIHRv
IHBhcnNlIHRoZSBKU09OIFN0cmluZy4iLCBbW2Vycm9yIGhlbHBBbmNob3JdIFVURjhTdHJpbmdd
KTsKIAogICAgICAgICBkb25lQ29tcGlsaW5nID0gdHJ1ZTsKQEAgLTEwMiw4ICsxMDMsMzggQEAg
VEVTVF9GKF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVUZXN0LAogICAgIAogICAgICAgICBF
WFBFQ1RfTlVMTChmaWx0ZXIpOwogICAgICAgICBFWFBFQ1RfTk9UX05VTEwoZXJyb3IpOworICAg
ICAgICBFWFBFQ1RfRVEoZXJyb3IuY29kZSwgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVy
cm9yQ29kZTo6TG9va3VwRmFpbGVkKTsKICAgICAgICAgRVhQRUNUX1NUUkVRKCJFeHRlbnNpb24g
bG9va3VwIGZhaWxlZDogVW5zcGVjaWZpZWQgZXJyb3IgZHVyaW5nIGxvb2t1cC4iLCBbW2Vycm9y
IGhlbHBBbmNob3JdIFVURjhTdHJpbmddKTsKKyAgICAgICAgCisgICAgICAgIGRvbmVMb29raW5n
VXAgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUxv
b2tpbmdVcCk7Cit9CisKK1RFU1RfRihfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlVGVzdCwg
VmVyc2lvbk1pc21hdGNoKQoreworICAgIF9fYmxvY2sgYm9vbCBkb25lQ29tcGlsaW5nID0gZmFs
c2U7CisgICAgW1tfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIGRlZmF1bHRTdG9yZV0gY29t
cGlsZUNvbnRlbnRFeHRlbnNpb25Gb3JJZGVudGlmaWVyOkAiVGVzdEV4dGVuc2lvbiIgZW5jb2Rl
ZENvbnRlbnRFeHRlbnNpb246YmFzaWNGaWx0ZXIgY29tcGxldGlvbkhhbmRsZXI6XihfV0tVc2Vy
Q29udGVudEZpbHRlciAqZmlsdGVyLCBOU0Vycm9yICplcnJvcikKKyAgICB7CisgICAgICAgIAor
ICAgICAgICBFWFBFQ1RfTk9UX05VTEwoZmlsdGVyKTsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJy
b3IpOworICAgICAgICAKKyAgICAgICAgZG9uZUNvbXBpbGluZyA9IHRydWU7CisgICAgfV07Cisg
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lQ29tcGlsaW5nKTsKIAorICAgIFtbX1dL
VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBkZWZhdWx0U3RvcmVdIF9pbnZhbGlkYXRlQ29udGVu
dEV4dGVuc2lvblZlcnNpb25Gb3JJZGVudGlmaWVyOkAiVGVzdEV4dGVuc2lvbiJdOworICAgIAor
ICAgIF9fYmxvY2sgYm9vbCBkb25lTG9va2luZ1VwID0gZmFsc2U7CisgICAgW1tfV0tVc2VyQ29u
dGVudEV4dGVuc2lvblN0b3JlIGRlZmF1bHRTdG9yZV0gbG9va3VwQ29udGVudEV4dGVuc2lvbkZv
cklkZW50aWZpZXI6QCJUZXN0RXh0ZW5zaW9uIiBjb21wbGV0aW9uSGFuZGxlcjpeKF9XS1VzZXJD
b250ZW50RmlsdGVyICpmaWx0ZXIsIE5TRXJyb3IgKmVycm9yKQorICAgIHsKKyAgICAgICAgCisg
ICAgICAgIEVYUEVDVF9OVUxMKGZpbHRlcik7CisgICAgICAgIEVYUEVDVF9OT1RfTlVMTChlcnJv
cik7CisgICAgICAgIEVYUEVDVF9FUShlcnJvci5jb2RlLCBfV0tVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlRXJyb3JDb2RlOjpWZXJzaW9uTWlzbWF0Y2gpOworICAgICAgICBFWFBFQ1RfU1RSRVEo
IkV4dGVuc2lvbiBsb29rdXAgZmFpbGVkOiBWZXJzaW9uIG9mIGZpbGUgZG9lcyBub3QgbWF0Y2gg
dmVyc2lvbiBvZiBpbnRlcnByZXRlci4iLCBbW2Vycm9yIGhlbHBBbmNob3JdIFVURjhTdHJpbmdd
KTsKKyAgICAgICAgCiAgICAgICAgIGRvbmVMb29raW5nVXAgPSB0cnVlOwogICAgIH1dOwogICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUxvb2tpbmdVcCk7CkBAIC0xMzUsNiArMTY2
LDcgQEAgVEVTVF9GKF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVUZXN0LAogICAgIF9fYmxv
Y2sgYm9vbCBkb25lUmVtb3ZpbmcgPSBmYWxzZTsKICAgICBbW19XS1VzZXJDb250ZW50RXh0ZW5z
aW9uU3RvcmUgZGVmYXVsdFN0b3JlXSByZW1vdmVDb250ZW50RXh0ZW5zaW9uRm9ySWRlbnRpZmll
cjpAIkRvZXNOb3RFeGlzdCIgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICplcnJvcikgewog
ICAgICAgICBFWFBFQ1RfTk9UX05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1RfRVEoZXJyb3Iu
Y29kZSwgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yQ29kZTo6UmVtb3ZlRmFpbGVk
KTsKICAgICAgICAgRVhQRUNUX1NUUkVRKCJFeHRlbnNpb24gcmVtb3ZhbCBmYWlsZWQ6IFVuc3Bl
Y2lmaWVkIGVycm9yIGR1cmluZyByZW1vdmUuIiwgW1tlcnJvciBoZWxwQW5jaG9yXSBVVEY4U3Ry
aW5nXSk7CiAKICAgICAgICAgZG9uZVJlbW92aW5nID0gdHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279841</attachid>
            <date>2016-05-25 17:05:42 -0700</date>
            <delta_ts>2016-05-26 16:04:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158095-20160525170651.patch</filename>
            <type>text/plain</type>
            <size>13512</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMTQwMikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE2LTA1LTI1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXhwb3NlIGNv
bnRlbnQgZXh0ZW5zaW9uIGZhaWx1cmUgZXJyb3IgY29kZXMgaW4gU1BJCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwOTUKKyAgICAgICAgcmRhcjov
L3Byb2JsZW0vMjY0NzU2NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5j
cHA6CisgICAgICAgIChBUEk6OlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OmludmFsaWRhdGVD
b250ZW50RXh0ZW5zaW9uVmVyc2lvbik6CisgICAgICAgIEFkZGVkIGZvciB0ZXN0aW5nLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5o
OgorICAgICAgICBBZGRlZCB0aGUgbmV3IGVudW0sIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3Rv
cmVFcnJvckNvZGUuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVu
dEV4dGVuc2lvblN0b3JlLm1tOgorICAgICAgICAoLVtfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlIGNvbXBpbGVDb250ZW50RXh0ZW5zaW9uRm9ySWRlbnRpZmllcjplbmNvZGVkQ29udGVudEV4
dGVuc2lvbjpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgU29tZXRpbWVzIHRoZSBlcnJv
ciBjb2RlIHJldHVybmVkIGJ5IFVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OmNvbXBpbGVDb250
ZW50RXh0ZW5zaW9uIGhhcyB0aGUgZXJyb3IgY29kZSBmcm9tIGNvbXBpbGVSdWxlTGlzdC4KKyAg
ICAgICAgV2hlbiB0aGlzIGhhcHBlbnMsIHdlIHdhbnQgdG8gZ2V0IHRoZSBtZXNzYWdlIGZyb20g
dGhlIGludGVybmFsIGNvbXBpbGVyIGVycm9yLCBidXQgd2Ugd2FudCB0aGUgTlNFcnJvcidzIGNv
ZGUgdG8gYWx3YXlzIGJlIENvbXBpbGVGYWlsZWQuCisgICAgICAgICgtW19XS1VzZXJDb250ZW50
RXh0ZW5zaW9uU3RvcmUgX2ludmFsaWRhdGVDb250ZW50RXh0ZW5zaW9uVmVyc2lvbkZvcklkZW50
aWZpZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4
dGVuc2lvblN0b3JlUHJpdmF0ZS5oOgorICAgICAgICBBZGRlZCBuZXcgaW52YWxpZGF0b3IgZm9y
IHRlc3RpbmcuCisKIDIwMTYtMDUtMjUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggQ01ha2UgYnVpbGQuCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZS5jcHAJKHJldmlzaW9uIDIwMTM4NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUyLDcgKzUyLDcgQEAgVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSYgVXNlckNvbnRlbnRF
eAogICAgIHJldHVybiAqZGVmYXVsdFN0b3JlOwogfQogCi1SZWY8VXNlckNvbnRlbnRFeHRlbnNp
b25TdG9yZT4gVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZTo6c3RvcmVXaXRoUGF0aChjb25zdCBX
VEY6OlN0cmluZyYgc3RvcmVQYXRoKQorUmVmPFVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU+IFVz
ZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OnN0b3JlV2l0aFBhdGgoY29uc3QgU3RyaW5nJiBzdG9y
ZVBhdGgpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVXNlckNvbnRlbnRFeHRlbnNpb25T
dG9yZShzdG9yZVBhdGgpKTsKIH0KQEAgLTYyLDcgKzYyLDcgQEAgVXNlckNvbnRlbnRFeHRlbnNp
b25TdG9yZTo6VXNlckNvbnRlbnRFeAogewogfQogCi1Vc2VyQ29udGVudEV4dGVuc2lvblN0b3Jl
OjpVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlKGNvbnN0IFdURjo6U3RyaW5nJiBzdG9yZVBhdGgp
CitVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlKGNv
bnN0IFN0cmluZyYgc3RvcmVQYXRoKQogICAgIDogbV9zdG9yZVBhdGgoc3RvcmVQYXRoKQogICAg
ICwgbV9jb21waWxlUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIlVzZXJDb250ZW50RXh0ZW5zaW9u
U3RvcmUgQ29tcGlsZSBRdWV1ZSIsIFdvcmtRdWV1ZTo6VHlwZTo6Q29uY3VycmVudCkpCiAgICAg
LCBtX3JlYWRRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiVXNlckNvbnRlbnRFeHRlbnNpb25TdG9y
ZSBSZWFkIFF1ZXVlIikpCkBAIC0zMDQsNyArMzA0LDcgQEAgc3RhdGljIFJlZlB0cjxBUEk6OlVz
ZXJDb250ZW50RXh0ZW5zaW9uPgogICAgIHJldHVybiBBUEk6OlVzZXJDb250ZW50RXh0ZW5zaW9u
OjpjcmVhdGUoaWRlbnRpZmllciwgV1RGTW92ZShjb21waWxlZENvbnRlbnRFeHRlbnNpb24pKTsK
IH0KIAotdm9pZCBVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpsb29rdXBDb250ZW50RXh0ZW5z
aW9uKGNvbnN0IFdURjo6U3RyaW5nJiBpZGVudGlmaWVyLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUmVm
UHRyPEFQSTo6VXNlckNvbnRlbnRFeHRlbnNpb24+LCBzdGQ6OmVycm9yX2NvZGUpPiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZTo6bG9va3VwQ29udGVu
dEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIHN0ZDo6ZnVuY3Rpb248dm9pZChS
ZWZQdHI8QVBJOjpVc2VyQ29udGVudEV4dGVuc2lvbj4sIHN0ZDo6ZXJyb3JfY29kZSk+IGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIFJlZlB0cjxVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlPiBz
ZWxmKHRoaXMpOwogICAgIFN0cmluZ0NhcHR1cmUgaWRlbnRpZmllckNhcHR1cmUoaWRlbnRpZmll
cik7CkBAIC0zMzYsNyArMzM2LDcgQEAgdm9pZCBVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjps
b29rdXBDbwogICAgIH0pOwogfQogCi12b2lkIFVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OmNv
bXBpbGVDb250ZW50RXh0ZW5zaW9uKGNvbnN0IFdURjo6U3RyaW5nJiBpZGVudGlmaWVyLCBXVEY6
OlN0cmluZyYmIGpzb24sIHN0ZDo6ZnVuY3Rpb248dm9pZChSZWZQdHI8QVBJOjpVc2VyQ29udGVu
dEV4dGVuc2lvbj4sIHN0ZDo6ZXJyb3JfY29kZSk+IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBV
c2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpjb21waWxlQ29udGVudEV4dGVuc2lvbihjb25zdCBT
dHJpbmcmIGlkZW50aWZpZXIsIFN0cmluZyYmIGpzb24sIHN0ZDo6ZnVuY3Rpb248dm9pZChSZWZQ
dHI8QVBJOjpVc2VyQ29udGVudEV4dGVuc2lvbj4sIHN0ZDo6ZXJyb3JfY29kZSk+IGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIFJlZlB0cjxVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlPiBzZWxm
KHRoaXMpOwogICAgIFN0cmluZ0NhcHR1cmUgaWRlbnRpZmllckNhcHR1cmUoaWRlbnRpZmllcik7
CkBAIC0zNjMsNyArMzYzLDcgQEAgdm9pZCBVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpjb21w
aWxlQwogICAgIH0pOwogfQogCi12b2lkIFVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OnJlbW92
ZUNvbnRlbnRFeHRlbnNpb24oY29uc3QgV1RGOjpTdHJpbmcmIGlkZW50aWZpZXIsIHN0ZDo6ZnVu
Y3Rpb248dm9pZChzdGQ6OmVycm9yX2NvZGUpPiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgVXNl
ckNvbnRlbnRFeHRlbnNpb25TdG9yZTo6cmVtb3ZlQ29udGVudEV4dGVuc2lvbihjb25zdCBTdHJp
bmcmIGlkZW50aWZpZXIsIHN0ZDo6ZnVuY3Rpb248dm9pZChzdGQ6OmVycm9yX2NvZGUpPiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBSZWZQdHI8VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZT4g
c2VsZih0aGlzKTsKICAgICBTdHJpbmdDYXB0dXJlIGlkZW50aWZpZXJDYXB0dXJlKGlkZW50aWZp
ZXIpOwpAQCAtMzkxLDYgKzM5MSwxNyBAQCB2b2lkIFVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6
OnN5bmNocm9uCiAgICAgICAgIFdlYkNvcmU6OmRlbGV0ZUZpbGUocGF0aCk7CiB9CiAKK3ZvaWQg
VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZTo6aW52YWxpZGF0ZUNvbnRlbnRFeHRlbnNpb25WZXJz
aW9uKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGZpbGUgPSBXZWJDb3Jl
OjpvcGVuRmlsZShjb25zdHJ1Y3RlZFBhdGgobV9zdG9yZVBhdGgsIGlkZW50aWZpZXIpLCBXZWJD
b3JlOjpPcGVuRm9yV3JpdGUpOworICAgIGlmIChmaWxlID09IFdlYkNvcmU6OmludmFsaWRQbGF0
Zm9ybUZpbGVIYW5kbGUpCisgICAgICAgIHJldHVybjsKKyAgICBDb250ZW50RXh0ZW5zaW9uTWV0
YURhdGEgaW52YWxpZEhlYWRlciA9IHswLCAwLCAwLCAwLCAwfTsKKyAgICBhdXRvIGJ5dGVzV3Jp
dHRlbiA9IFdlYkNvcmU6OndyaXRlVG9GaWxlKGZpbGUsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KCZpbnZhbGlkSGVhZGVyKSwgc2l6ZW9mKGludmFsaWRIZWFkZXIpKTsKKyAgICBBU1NF
UlRfVU5VU0VEKGJ5dGVzV3JpdHRlbiwgYnl0ZXNXcml0dGVuID09IHNpemVvZihpbnZhbGlkSGVh
ZGVyKSk7CisgICAgV2ViQ29yZTo6Y2xvc2VGaWxlKGZpbGUpOworfQorICAgIAogY29uc3Qgc3Rk
OjplcnJvcl9jYXRlZ29yeSYgdXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yQ2F0ZWdvcnko
KQogewogICAgIGNsYXNzIFVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvckNhdGVnb3J5IDog
cHVibGljIHN0ZDo6ZXJyb3JfY2F0ZWdvcnkgewpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9BUElVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmgJ
KHJldmlzaW9uIDIwMTM4NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNl
ckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBA
IGNsYXNzIFVzZXJDb250ZW50RXh0ZW5zaW9uOwogCiBjbGFzcyBVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlIGZpbmFsIDogcHVibGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpVc2VyQ29udGVu
dEV4dGVuc2lvblN0b3JlPiB7CiBwdWJsaWM6CisgICAgLy8gVGhlc2Ugc2hvdWxkIGNvcnJlc3Bv
bmQgd2l0aCB0aGUgdmFsdWVzIGluIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUKICAgICBl
bnVtIGNsYXNzIEVycm9yIHsKICAgICAgICAgTG9va3VwRmFpbGVkID0gMSwKICAgICAgICAgVmVy
c2lvbk1pc21hdGNoLApAQCAtNTQsMjMgKzU1LDI0IEBAIHB1YmxpYzoKICAgICBjb25zdCBzdGF0
aWMgdWludDMyX3QgQ3VycmVudENvbnRlbnRFeHRlbnNpb25GaWxlVmVyc2lvbiA9IDc7CiAKICAg
ICBzdGF0aWMgVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSYgZGVmYXVsdFN0b3JlKCk7Ci0gICAg
c3RhdGljIFJlZjxVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlPiBzdG9yZVdpdGhQYXRoKGNvbnN0
IFdURjo6U3RyaW5nJiBzdG9yZVBhdGgpOworICAgIHN0YXRpYyBSZWY8VXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZT4gc3RvcmVXaXRoUGF0aChjb25zdCBTdHJpbmcmIHN0b3JlUGF0aCk7CiAKICAg
ICBleHBsaWNpdCBVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlKCk7Ci0gICAgZXhwbGljaXQgVXNl
ckNvbnRlbnRFeHRlbnNpb25TdG9yZShjb25zdCBXVEY6OlN0cmluZyYgc3RvcmVQYXRoKTsKKyAg
ICBleHBsaWNpdCBVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlKGNvbnN0IFN0cmluZyYgc3RvcmVQ
YXRoKTsKICAgICB2aXJ0dWFsIH5Vc2VyQ29udGVudEV4dGVuc2lvblN0b3JlKCk7CiAKLSAgICB2
b2lkIGNvbXBpbGVDb250ZW50RXh0ZW5zaW9uKGNvbnN0IFdURjo6U3RyaW5nJiBpZGVudGlmaWVy
LCBXVEY6OlN0cmluZyYmIGpzb24sIHN0ZDo6ZnVuY3Rpb248dm9pZChSZWZQdHI8QVBJOjpVc2Vy
Q29udGVudEV4dGVuc2lvbj4sIHN0ZDo6ZXJyb3JfY29kZSk+KTsKLSAgICB2b2lkIGxvb2t1cENv
bnRlbnRFeHRlbnNpb24oY29uc3QgV1RGOjpTdHJpbmcmIGlkZW50aWZpZXIsIHN0ZDo6ZnVuY3Rp
b248dm9pZChSZWZQdHI8QVBJOjpVc2VyQ29udGVudEV4dGVuc2lvbj4sIHN0ZDo6ZXJyb3JfY29k
ZSk+KTsKLSAgICB2b2lkIHJlbW92ZUNvbnRlbnRFeHRlbnNpb24oY29uc3QgV1RGOjpTdHJpbmcm
IGlkZW50aWZpZXIsIHN0ZDo6ZnVuY3Rpb248dm9pZChzdGQ6OmVycm9yX2NvZGUpPik7CisgICAg
dm9pZCBjb21waWxlQ29udGVudEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIFN0
cmluZyYmIGpzb24sIHN0ZDo6ZnVuY3Rpb248dm9pZChSZWZQdHI8QVBJOjpVc2VyQ29udGVudEV4
dGVuc2lvbj4sIHN0ZDo6ZXJyb3JfY29kZSk+KTsKKyAgICB2b2lkIGxvb2t1cENvbnRlbnRFeHRl
bnNpb24oY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUmVmUHRy
PEFQSTo6VXNlckNvbnRlbnRFeHRlbnNpb24+LCBzdGQ6OmVycm9yX2NvZGUpPik7CisgICAgdm9p
ZCByZW1vdmVDb250ZW50RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgc3RkOjpm
dW5jdGlvbjx2b2lkKHN0ZDo6ZXJyb3JfY29kZSk+KTsKIAogICAgIC8vIEZvciB0ZXN0aW5nIG9u
bHkuCiAgICAgdm9pZCBzeW5jaHJvbm91c1JlbW92ZUFsbENvbnRlbnRFeHRlbnNpb25zKCk7Cisg
ICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudEV4dGVuc2lvblZlcnNpb24oY29uc3QgU3RyaW5nJiBp
ZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKLSAgICBXVEY6OlN0cmluZyBkZWZhdWx0U3RvcmVQYXRo
KCk7CisgICAgU3RyaW5nIGRlZmF1bHRTdG9yZVBhdGgoKTsKIAotICAgIGNvbnN0IFdURjo6U3Ry
aW5nIG1fc3RvcmVQYXRoOworICAgIGNvbnN0IFN0cmluZyBtX3N0b3JlUGF0aDsKICAgICBSZWY8
V1RGOjpXb3JrUXVldWU+IG1fY29tcGlsZVF1ZXVlOwogICAgIFJlZjxXVEY6OldvcmtRdWV1ZT4g
bV9yZWFkUXVldWU7CiAgICAgUmVmPFdURjo6V29ya1F1ZXVlPiBtX3JlbW92ZVF1ZXVlOwpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4dGVu
c2lvblN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmgJKHJldmlzaW9uIDIwMTM4NykKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNp
b25TdG9yZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw0ICs0MSwxMiBAQCBXS19DTEFTU19BVkFJ
TEFCTEUoMTBfMTEsIDlfMCkKIAogQGVuZAogCisvLyBUaGVzZSBjb3JyZXNwb25kIHdpdGggdGhl
IGVycm9yIGNvZGVzIGluIFVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OkVycm9yLgordHlwZWRl
ZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yQ29k
ZSkgeworICAgIExvb2t1cEZhaWxlZCA9IDEsCisgICAgVmVyc2lvbk1pc21hdGNoLAorICAgIENv
bXBpbGVGYWlsZWQsCisgICAgUmVtb3ZlRmFpbGVkLAorfSBXS19FTlVNX0FWQUlMQUJMRShXS19N
QUNfVEJBLCBXS19JT1NfVEJBKTsKKwogI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9u
U3RvcmUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLm1tCShyZXZpc2lvbiAyMDEzODcpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9u
U3RvcmUubW0JKHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDcgQEAgLSAodm9pZCljb21waWxl
Q29udGVudEV4dGVuc2lvbkZvcklkZW50aQogICAgICAgICAgICAgYXV0byByYXdIYW5kbGVyID0g
KHZvaWQgKF4pKF9XS1VzZXJDb250ZW50RmlsdGVyICosIE5TRXJyb3IgKikpaGFuZGxlci5nZXQo
KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgYXV0byB1c2VySW5mbyA9IEB7TlNIZWxwQW5j
aG9yRXJyb3JLZXk6IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiRXh0ZW5zaW9uIGNvbXBp
bGF0aW9uIGZhaWxlZDogJXMiLCBlcnJvci5tZXNzYWdlKCkuY19zdHIoKV19OwotICAgICAgICAg
ICAgcmF3SGFuZGxlcihuaWwsIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpAIkNvbnRlbnRFeHRl
bnNpb25zRG9tYWluIiBjb2RlOmVycm9yLnZhbHVlKCkgdXNlckluZm86dXNlckluZm9dKTsKKyAg
ICAgICAgICAgIHJhd0hhbmRsZXIobmlsLCBbTlNFcnJvciBlcnJvcldpdGhEb21haW46QCJDb250
ZW50RXh0ZW5zaW9uc0RvbWFpbiIgY29kZTpfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlRXJy
b3JDb2RlOjpDb21waWxlRmFpbGVkIHVzZXJJbmZvOnVzZXJJbmZvXSk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIApAQCAtMTI4LDYgKzEyOCwxMSBAQCAtICh2b2lkKV9yZW1vdmVB
bGxDb250ZW50RXh0ZW5zaW9ucwogICAgIF91c2VyQ29udGVudEV4dGVuc2lvblN0b3JlLT5zeW5j
aHJvbm91c1JlbW92ZUFsbENvbnRlbnRFeHRlbnNpb25zKCk7CiB9CiAKKy0gKHZvaWQpX2ludmFs
aWRhdGVDb250ZW50RXh0ZW5zaW9uVmVyc2lvbkZvcklkZW50aWZpZXI6KE5TU3RyaW5nICopaWRl
bnRpZmllcgoreworICAgIF91c2VyQ29udGVudEV4dGVuc2lvblN0b3JlLT5pbnZhbGlkYXRlQ29u
dGVudEV4dGVuc2lvblZlcnNpb24oaWRlbnRpZmllcik7Cit9CisKIEBlbmQKIAogI2VuZGlmIC8v
IFdLX0FQSV9FTkFCTEVECkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDEzODcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVQcml2YXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKIAogLy8gRm9yIHRlc3Rpbmcgb25seS4KIC0gKHZv
aWQpX3JlbW92ZUFsbENvbnRlbnRFeHRlbnNpb25zOworLSAodm9pZClfaW52YWxpZGF0ZUNvbnRl
bnRFeHRlbnNpb25WZXJzaW9uRm9ySWRlbnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyOwog
CiBAZW5kCiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDIwMTQwOSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE1IEBACisyMDE2LTA1LTI1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXhwb3NlIGNvbnRlbnQgZXh0ZW5zaW9uIGZh
aWx1cmUgZXJyb3IgY29kZXMgaW4gU1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTgwOTUKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMjY0NzU2NTEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUu
bW06CisgICAgICAgIChURVNUX0YpOgorICAgICAgICBBZGQgdGVzdHMgdGhhdCB1c2UgdGhlIG5l
dyBlbnVtLgorCiAyMDE2LTA1LTI1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5j
b20+CiAKICAgICAgICAgR2V0IHJpZCBvZiBXVEYvRnVuY3Rpb25hbC5oCkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0JKHJldmlzaW9uIDIwMTM4NykKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL19XS1VzZXJDb250ZW50RXh0
ZW5zaW9uU3RvcmUubW0JKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDcgQEAgVEVTVF9GKF9X
S1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVUZXN0LAogICAgIAogICAgICAgICBFWFBFQ1RfTlVM
TChmaWx0ZXIpOwogICAgICAgICBFWFBFQ1RfTk9UX05VTEwoZXJyb3IpOworICAgICAgICBFWFBF
Q1RfRVEoZXJyb3IuY29kZSwgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yQ29kZTo6
Q29tcGlsZUZhaWxlZCk7CiAgICAgICAgIEVYUEVDVF9TVFJFUSgiRXh0ZW5zaW9uIGNvbXBpbGF0
aW9uIGZhaWxlZDogRmFpbGVkIHRvIHBhcnNlIHRoZSBKU09OIFN0cmluZy4iLCBbW2Vycm9yIGhl
bHBBbmNob3JdIFVURjhTdHJpbmddKTsKIAogICAgICAgICBkb25lQ29tcGlsaW5nID0gdHJ1ZTsK
QEAgLTEwMiw4ICsxMDMsMzggQEAgVEVTVF9GKF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVU
ZXN0LAogICAgIAogICAgICAgICBFWFBFQ1RfTlVMTChmaWx0ZXIpOwogICAgICAgICBFWFBFQ1Rf
Tk9UX05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1RfRVEoZXJyb3IuY29kZSwgX1dLVXNlckNv
bnRlbnRFeHRlbnNpb25TdG9yZUVycm9yQ29kZTo6TG9va3VwRmFpbGVkKTsKICAgICAgICAgRVhQ
RUNUX1NUUkVRKCJFeHRlbnNpb24gbG9va3VwIGZhaWxlZDogVW5zcGVjaWZpZWQgZXJyb3IgZHVy
aW5nIGxvb2t1cC4iLCBbW2Vycm9yIGhlbHBBbmNob3JdIFVURjhTdHJpbmddKTsKKyAgICAgICAg
CisgICAgICAgIGRvbmVMb29raW5nVXAgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZUxvb2tpbmdVcCk7Cit9CisKK1RFU1RfRihfV0tVc2VyQ29udGVu
dEV4dGVuc2lvblN0b3JlVGVzdCwgVmVyc2lvbk1pc21hdGNoKQoreworICAgIF9fYmxvY2sgYm9v
bCBkb25lQ29tcGlsaW5nID0gZmFsc2U7CisgICAgW1tfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlIGRlZmF1bHRTdG9yZV0gY29tcGlsZUNvbnRlbnRFeHRlbnNpb25Gb3JJZGVudGlmaWVyOkAi
VGVzdEV4dGVuc2lvbiIgZW5jb2RlZENvbnRlbnRFeHRlbnNpb246YmFzaWNGaWx0ZXIgY29tcGxl
dGlvbkhhbmRsZXI6XihfV0tVc2VyQ29udGVudEZpbHRlciAqZmlsdGVyLCBOU0Vycm9yICplcnJv
cikKKyAgICB7CisgICAgICAgIAorICAgICAgICBFWFBFQ1RfTk9UX05VTEwoZmlsdGVyKTsKKyAg
ICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICAKKyAgICAgICAgZG9uZUNvbXBpbGlu
ZyA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lQ29t
cGlsaW5nKTsKIAorICAgIFtbX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBkZWZhdWx0U3Rv
cmVdIF9pbnZhbGlkYXRlQ29udGVudEV4dGVuc2lvblZlcnNpb25Gb3JJZGVudGlmaWVyOkAiVGVz
dEV4dGVuc2lvbiJdOworICAgIAorICAgIF9fYmxvY2sgYm9vbCBkb25lTG9va2luZ1VwID0gZmFs
c2U7CisgICAgW1tfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIGRlZmF1bHRTdG9yZV0gbG9v
a3VwQ29udGVudEV4dGVuc2lvbkZvcklkZW50aWZpZXI6QCJUZXN0RXh0ZW5zaW9uIiBjb21wbGV0
aW9uSGFuZGxlcjpeKF9XS1VzZXJDb250ZW50RmlsdGVyICpmaWx0ZXIsIE5TRXJyb3IgKmVycm9y
KQorICAgIHsKKyAgICAgICAgCisgICAgICAgIEVYUEVDVF9OVUxMKGZpbHRlcik7CisgICAgICAg
IEVYUEVDVF9OT1RfTlVMTChlcnJvcik7CisgICAgICAgIEVYUEVDVF9FUShlcnJvci5jb2RlLCBf
V0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlRXJyb3JDb2RlOjpWZXJzaW9uTWlzbWF0Y2gpOwor
ICAgICAgICBFWFBFQ1RfU1RSRVEoIkV4dGVuc2lvbiBsb29rdXAgZmFpbGVkOiBWZXJzaW9uIG9m
IGZpbGUgZG9lcyBub3QgbWF0Y2ggdmVyc2lvbiBvZiBpbnRlcnByZXRlci4iLCBbW2Vycm9yIGhl
bHBBbmNob3JdIFVURjhTdHJpbmddKTsKKyAgICAgICAgCiAgICAgICAgIGRvbmVMb29raW5nVXAg
PSB0cnVlOwogICAgIH1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUxvb2tp
bmdVcCk7CkBAIC0xMzUsNiArMTY2LDcgQEAgVEVTVF9GKF9XS1VzZXJDb250ZW50RXh0ZW5zaW9u
U3RvcmVUZXN0LAogICAgIF9fYmxvY2sgYm9vbCBkb25lUmVtb3ZpbmcgPSBmYWxzZTsKICAgICBb
W19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgZGVmYXVsdFN0b3JlXSByZW1vdmVDb250ZW50
RXh0ZW5zaW9uRm9ySWRlbnRpZmllcjpAIkRvZXNOb3RFeGlzdCIgY29tcGxldGlvbkhhbmRsZXI6
XihOU0Vycm9yICplcnJvcikgewogICAgICAgICBFWFBFQ1RfTk9UX05VTEwoZXJyb3IpOworICAg
ICAgICBFWFBFQ1RfRVEoZXJyb3IuY29kZSwgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVy
cm9yQ29kZTo6UmVtb3ZlRmFpbGVkKTsKICAgICAgICAgRVhQRUNUX1NUUkVRKCJFeHRlbnNpb24g
cmVtb3ZhbCBmYWlsZWQ6IFVuc3BlY2lmaWVkIGVycm9yIGR1cmluZyByZW1vdmUuIiwgW1tlcnJv
ciBoZWxwQW5jaG9yXSBVVEY4U3RyaW5nXSk7CiAKICAgICAgICAgZG9uZVJlbW92aW5nID0gdHJ1
ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279920</attachid>
            <date>2016-05-26 16:04:52 -0700</date>
            <delta_ts>2016-05-27 11:29:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158095-20160526160602.patch</filename>
            <type>text/plain</type>
            <size>12676</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMTI3NSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE2LTA1LTI2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXhwb3NlIGNv
bnRlbnQgZXh0ZW5zaW9uIGZhaWx1cmUgZXJyb3IgY29kZXMgaW4gU1BJCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwOTUKKyAgICAgICAgcmRhcjov
L3Byb2JsZW0vMjY0NzU2NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5j
cHA6CisgICAgICAgIChBUEk6OlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OnN5bmNocm9ub3Vz
UmVtb3ZlQWxsQ29udGVudEV4dGVuc2lvbnMpOgorICAgICAgICAoQVBJOjpVc2VyQ29udGVudEV4
dGVuc2lvblN0b3JlOjppbnZhbGlkYXRlQ29udGVudEV4dGVuc2lvblZlcnNpb24pOgorICAgICAg
ICBBZGRlZCBmb3IgdGVzdGluZy4KKyAgICAgICAgKEFQSTo6dXNlckNvbnRlbnRFeHRlbnNpb25T
dG9yZUVycm9yQ2F0ZWdvcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRl
bnRFeHRlbnNpb25TdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNl
ckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oOgorICAgICAgICBBZGRlZCB0aGUgbmV3IGVudW0sIF9X
S1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvckNvZGUuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLm1tOgorICAgICAgICAodG9X
S1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvckNvZGUpOgorICAgICAgICAoLVtfV0tVc2Vy
Q29udGVudEV4dGVuc2lvblN0b3JlIGRlYWxsb2NdKToKKyAgICAgICAgKC1bX1dLVXNlckNvbnRl
bnRFeHRlbnNpb25TdG9yZSBjb21waWxlQ29udGVudEV4dGVuc2lvbkZvcklkZW50aWZpZXI6ZW5j
b2RlZENvbnRlbnRFeHRlbnNpb246Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgIFNvbWV0
aW1lcyB0aGUgZXJyb3IgY29kZSByZXR1cm5lZCBieSBVc2VyQ29udGVudEV4dGVuc2lvblN0b3Jl
Ojpjb21waWxlQ29udGVudEV4dGVuc2lvbiBoYXMgdGhlIGVycm9yIGNvZGUgZnJvbSBjb21waWxl
UnVsZUxpc3QuCisgICAgICAgIFdoZW4gdGhpcyBoYXBwZW5zLCB3ZSB3YW50IHRvIGdldCB0aGUg
bWVzc2FnZSBmcm9tIHRoZSBpbnRlcm5hbCBjb21waWxlciBlcnJvciwgYnV0IHdlIHdhbnQgdGhl
IE5TRXJyb3IncyBjb2RlIHRvIGFsd2F5cyBiZSBDb21waWxlRmFpbGVkLgorICAgICAgICAoLVtf
V0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIGxvb2t1cENvbnRlbnRFeHRlbnNpb25Gb3JJZGVu
dGlmaWVyOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtfV0tVc2VyQ29udGVudEV4
dGVuc2lvblN0b3JlIHJlbW92ZUNvbnRlbnRFeHRlbnNpb25Gb3JJZGVudGlmaWVyOmNvbXBsZXRp
b25IYW5kbGVyOl0pOgorICAgICAgICAoLVtfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIF9y
ZW1vdmVBbGxDb250ZW50RXh0ZW5zaW9uc10pOgorICAgICAgICAoLVtfV0tVc2VyQ29udGVudEV4
dGVuc2lvblN0b3JlIF9pbnZhbGlkYXRlQ29udGVudEV4dGVuc2lvblZlcnNpb25Gb3JJZGVudGlm
aWVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZVByaXZhdGUuaDoKKyAgICAgICAgQWRkZWQgbmV3IGludmFsaWRhdG9yIGZvciB0
ZXN0aW5nLgorCiAyMDE2LTA1LTIzICBNaWd1ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+
CiAKICAgICAgICAgW1RocmVhZGVkQ29tcG9zaXRvcl0gRW5zdXJlIHRoYXQgdGhlIEJpdG1hcFRl
eHR1cmUgdXNlZCBieSBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUgbWF0Y2hlcyB0aGUgb3Bh
Y2l0eSBvZiB0aGUgcGFpbnRlZCBzdXJmYWNlCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0FQSVVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5j
cHAJKHJldmlzaW9uIDIwMTI3NSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJ
VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5MSw2ICsz
OTEsMTcgQEAgdm9pZCBVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpzeW5jaHJvbgogICAgICAg
ICBXZWJDb3JlOjpkZWxldGVGaWxlKHBhdGgpOwogfQogCit2b2lkIFVzZXJDb250ZW50RXh0ZW5z
aW9uU3RvcmU6OmludmFsaWRhdGVDb250ZW50RXh0ZW5zaW9uVmVyc2lvbihjb25zdCBXVEY6OlN0
cmluZyYgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGZpbGUgPSBXZWJDb3JlOjpvcGVuRmlsZShj
b25zdHJ1Y3RlZFBhdGgobV9zdG9yZVBhdGgsIGlkZW50aWZpZXIpLCBXZWJDb3JlOjpPcGVuRm9y
V3JpdGUpOworICAgIGlmIChmaWxlID09IFdlYkNvcmU6OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5k
bGUpCisgICAgICAgIHJldHVybjsKKyAgICBDb250ZW50RXh0ZW5zaW9uTWV0YURhdGEgaW52YWxp
ZEhlYWRlciA9IHswLCAwLCAwLCAwLCAwfTsKKyAgICBhdXRvIGJ5dGVzV3JpdHRlbiA9IFdlYkNv
cmU6OndyaXRlVG9GaWxlKGZpbGUsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KCZpbnZh
bGlkSGVhZGVyKSwgc2l6ZW9mKGludmFsaWRIZWFkZXIpKTsKKyAgICBBU1NFUlRfVU5VU0VEKGJ5
dGVzV3JpdHRlbiwgYnl0ZXNXcml0dGVuID09IHNpemVvZihpbnZhbGlkSGVhZGVyKSk7CisgICAg
V2ViQ29yZTo6Y2xvc2VGaWxlKGZpbGUpOworfQorICAgIAogY29uc3Qgc3RkOjplcnJvcl9jYXRl
Z29yeSYgdXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yQ2F0ZWdvcnkoKQogewogICAgIGNs
YXNzIFVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvckNhdGVnb3J5IDogcHVibGljIHN0ZDo6
ZXJyb3JfY2F0ZWdvcnkgewpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElV
c2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmgJKHJldmlzaW9uIDIw
MTI3NSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02Niw2ICs2Niw3IEBAIHB1YmxpYzoKIAog
ICAgIC8vIEZvciB0ZXN0aW5nIG9ubHkuCiAgICAgdm9pZCBzeW5jaHJvbm91c1JlbW92ZUFsbENv
bnRlbnRFeHRlbnNpb25zKCk7CisgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudEV4dGVuc2lvblZl
cnNpb24oY29uc3QgV1RGOjpTdHJpbmcmIGlkZW50aWZpZXIpOwogCiBwcml2YXRlOgogICAgIFdU
Rjo6U3RyaW5nIGRlZmF1bHRTdG9yZVBhdGgoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZS5oCShyZXZpc2lvbiAyMDEyNzUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuaAkod29ya2luZyBjb3B5
KQpAQCAtNDEsNCArNDEsMTMgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzExLCA5XzApCiAKIEBl
bmQKIAorV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX0NvbnRlbnRFeHRlbnNpb25zRG9tYWlu
IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKwordHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yQ29kZSkgeworICAg
IExvb2t1cEZhaWxlZCA9IDEsCisgICAgVmVyc2lvbk1pc21hdGNoLAorICAgIENvbXBpbGVGYWls
ZWQsCisgICAgUmVtb3ZlRmFpbGVkLAorfSBXS19FTlVNX0FWQUlMQUJMRShXS19NQUNfVEJBLCBX
S19JT1NfVEJBKTsKKwogI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2Vy
Q29udGVudEV4dGVuc2lvblN0b3JlLm1tCShyZXZpc2lvbiAyMDEyNzUpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0J
KHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDIyIEBACiAjaW1wb3J0ICJfV0tVc2VyQ29udGVu
dEZpbHRlckludGVybmFsLmgiCiAjaW1wb3J0IDxzdHJpbmc+CiAKK05TU3RyaW5nICogY29uc3Qg
X0NvbnRlbnRFeHRlbnNpb25zRG9tYWluID0gQCJDb250ZW50RXh0ZW5zaW9uc0RvbWFpbiI7CisK
K3N0YXRpYyBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlRXJyb3JDb2RlIHRvV0tVc2VyQ29u
dGVudEV4dGVuc2lvblN0b3JlRXJyb3JDb2RlKEFQSTo6VXNlckNvbnRlbnRFeHRlbnNpb25TdG9y
ZTo6RXJyb3IgZXJyb3IpCit7CisgICAgc3dpdGNoIChlcnJvcikgeworICAgIGNhc2UgQVBJOjpV
c2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpFcnJvcjo6TG9va3VwRmFpbGVkOgorICAgICAgICBy
ZXR1cm4gTG9va3VwRmFpbGVkOworICAgIGNhc2UgQVBJOjpVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlOjpFcnJvcjo6VmVyc2lvbk1pc21hdGNoOgorICAgICAgICByZXR1cm4gVmVyc2lvbk1pc21h
dGNoOworICAgIGNhc2UgQVBJOjpVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpFcnJvcjo6Q29t
cGlsZUZhaWxlZDoKKyAgICAgICAgcmV0dXJuIENvbXBpbGVGYWlsZWQ7CisgICAgY2FzZSBBUEk6
OlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OkVycm9yOjpSZW1vdmVGYWlsZWQ6CisgICAgICAg
IHJldHVybiBSZW1vdmVGYWlsZWQ7CisgICAgfQorfQorCiBAaW1wbGVtZW50YXRpb24gX1dLVXNl
ckNvbnRlbnRFeHRlbnNpb25TdG9yZQogCiAtICh2b2lkKWRlYWxsb2MKQEAgLTY1LDcgKzgxLDEw
IEBAIC0gKHZvaWQpY29tcGlsZUNvbnRlbnRFeHRlbnNpb25Gb3JJZGVudGkKICAgICAgICAgICAg
IGF1dG8gcmF3SGFuZGxlciA9ICh2b2lkICheKShfV0tVc2VyQ29udGVudEZpbHRlciAqLCBOU0Vy
cm9yICopKWhhbmRsZXIuZ2V0KCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGF1dG8gdXNl
ckluZm8gPSBAe05TSGVscEFuY2hvckVycm9yS2V5OiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1h
dDpAIkV4dGVuc2lvbiBjb21waWxhdGlvbiBmYWlsZWQ6ICVzIiwgZXJyb3IubWVzc2FnZSgpLmNf
c3RyKCldfTsKLSAgICAgICAgICAgIHJhd0hhbmRsZXIobmlsLCBbTlNFcnJvciBlcnJvcldpdGhE
b21haW46QCJDb250ZW50RXh0ZW5zaW9uc0RvbWFpbiIgY29kZTplcnJvci52YWx1ZSgpIHVzZXJJ
bmZvOnVzZXJJbmZvXSk7CisKKyAgICAgICAgICAgIC8vIGVycm9yLnZhbHVlKCkgY291bGQgaGF2
ZSBhIHNwZWNpZmljIGNvbXBpbGVyIGVycm9yLiBXZSB3YW50IHRvIHVzZSBlcnJvci5tZXNzYWdl
LCBidXQgaGVyZSB3ZSB3YW50IHRvIG9ubHkgaGF2ZSBDb21waWxlRmFpbGVkLgorICAgICAgICAg
ICAgYXV0byBjb2RlID0gdG9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvckNvZGUoQVBJ
OjpVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpFcnJvcjo6Q29tcGlsZUZhaWxlZCk7CisgICAg
ICAgICAgICByYXdIYW5kbGVyKG5pbCwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOl9Db250ZW50
RXh0ZW5zaW9uc0RvbWFpbiBjb2RlOmNvZGUgdXNlckluZm86dXNlckluZm9dKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC04Myw3ICsxMDIsOCBAQCAtICh2b2lkKWxvb2t1
cENvbnRlbnRFeHRlbnNpb25Gb3JJZGVudGlmCiAgICAgICAgICAgICBhdXRvIHJhd0hhbmRsZXIg
PSAodm9pZCAoXikoX1dLVXNlckNvbnRlbnRGaWx0ZXIgKiwgTlNFcnJvciAqKSloYW5kbGVyLmdl
dCgpOwogCiAgICAgICAgICAgICBhdXRvIHVzZXJJbmZvID0gQHtOU0hlbHBBbmNob3JFcnJvcktl
eTogW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJFeHRlbnNpb24gbG9va3VwIGZhaWxlZDog
JXMiLCBlcnJvci5tZXNzYWdlKCkuY19zdHIoKV19OwotICAgICAgICAgICAgcmF3SGFuZGxlcihu
aWwsIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpAIkNvbnRlbnRFeHRlbnNpb25zRG9tYWluIiBj
b2RlOmVycm9yLnZhbHVlKCkgdXNlckluZm86dXNlckluZm9dKTsKKyAgICAgICAgICAgIEFTU0VS
VChlcnJvci52YWx1ZSgpID09IExvb2t1cEZhaWxlZCB8fCBlcnJvci52YWx1ZSgpID09IFZlcnNp
b25NaXNtYXRjaCk7CisgICAgICAgICAgICByYXdIYW5kbGVyKG5pbCwgW05TRXJyb3IgZXJyb3JX
aXRoRG9tYWluOl9Db250ZW50RXh0ZW5zaW9uc0RvbWFpbiBjb2RlOmVycm9yLnZhbHVlKCkgdXNl
ckluZm86dXNlckluZm9dKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0x
MDEsNyArMTIxLDkgQEAgLSAodm9pZClyZW1vdmVDb250ZW50RXh0ZW5zaW9uRm9ySWRlbnRpZgog
ICAgICAgICAgICAgYXV0byByYXdIYW5kbGVyID0gKHZvaWQgKF4pKE5TRXJyb3IgKikpaGFuZGxl
ci5nZXQoKTsKIAogICAgICAgICAgICAgYXV0byB1c2VySW5mbyA9IEB7TlNIZWxwQW5jaG9yRXJy
b3JLZXk6IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiRXh0ZW5zaW9uIHJlbW92YWwgZmFp
bGVkOiAlcyIsIGVycm9yLm1lc3NhZ2UoKS5jX3N0cigpXX07Ci0gICAgICAgICAgICByYXdIYW5k
bGVyKFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpAIkNvbnRlbnRFeHRlbnNpb25zRG9tYWluIiBj
b2RlOmVycm9yLnZhbHVlKCkgdXNlckluZm86dXNlckluZm9dKTsKKyAgICAgICAgICAgIEFTU0VS
VChlcnJvci52YWx1ZSgpID09IFJlbW92ZUZhaWxlZCk7CisgICAgICAgICAgICBhdXRvIGNvZGUg
PSB0b1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yQ29kZShBUEk6OlVzZXJDb250ZW50
RXh0ZW5zaW9uU3RvcmU6OkVycm9yOjpSZW1vdmVGYWlsZWQpOworICAgICAgICAgICAgcmF3SGFu
ZGxlcihbTlNFcnJvciBlcnJvcldpdGhEb21haW46X0NvbnRlbnRFeHRlbnNpb25zRG9tYWluIGNv
ZGU6Y29kZSB1c2VySW5mbzp1c2VySW5mb10pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAKQEAgLTEyOCw2ICsxNTAsMTEgQEAgLSAodm9pZClfcmVtb3ZlQWxsQ29udGVudEV4dGVu
c2lvbnMKICAgICBfdXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS0+c3luY2hyb25vdXNSZW1vdmVB
bGxDb250ZW50RXh0ZW5zaW9ucygpOwogfQogCistICh2b2lkKV9pbnZhbGlkYXRlQ29udGVudEV4
dGVuc2lvblZlcnNpb25Gb3JJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXIKK3sKKyAg
ICBfdXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS0+aW52YWxpZGF0ZUNvbnRlbnRFeHRlbnNpb25W
ZXJzaW9uKGlkZW50aWZpZXIpOworfQorCiBAZW5kCiAKICNlbmRpZiAvLyBXS19BUElfRU5BQkxF
RApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVu
dEV4dGVuc2lvblN0b3JlUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVByaXZhdGUuaAko
cmV2aXNpb24gMjAxMjc1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MSw2ICszMSw3IEBACiAKIC8vIEZvciB0ZXN0aW5nIG9ubHkuCiAtICh2b2lkKV9yZW1vdmVBbGxD
b250ZW50RXh0ZW5zaW9uczsKKy0gKHZvaWQpX2ludmFsaWRhdGVDb250ZW50RXh0ZW5zaW9uVmVy
c2lvbkZvcklkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllcjsKIAogQGVuZAogCkluZGV4
OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lv
biAyMDE0MzYpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NiBAQAorMjAxNi0wNS0yNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgorCisgICAgICAgIEV4cG9zZSBjb250ZW50IGV4dGVuc2lvbiBmYWlsdXJlIGVycm9yIGNv
ZGVzIGluIFNQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU4MDk1CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzI2NDc1NjUxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLm1tOgorICAgICAgICAo
Y2hlY2tEb21haW4pOgorICAgICAgICAoVEVTVF9GKToKKyAgICAgICAgQWRkIHRlc3RzIHRoYXQg
dXNlIHRoZSBuZXcgZW51bS4KKwogMjAxNi0wNS0yNiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFt
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZml4IGFmdGVyIHIyMDE0Mjcu
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9fV0tVc2VyQ29u
dGVudEV4dGVuc2lvblN0b3JlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0JKHJldmlz
aW9uIDIwMTI5MCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL19X
S1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0JKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4
LDExIEBAIFRFU1RfRihfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlVGVzdCwKIAogc3RhdGlj
IE5TU3RyaW5nICppbnZhbGlkRmlsdGVyID0gQCJbIjsKIAorc3RhdGljIHZvaWQgY2hlY2tEb21h
aW4oTlNFcnJvciAqZXJyb3IpCit7CisgICAgRVhQRUNUX1NUUkVRKFtbZXJyb3IgZG9tYWluXSBV
VEY4U3RyaW5nXSwgW19Db250ZW50RXh0ZW5zaW9uc0RvbWFpbiBVVEY4U3RyaW5nXSk7Cit9CisK
IFRFU1RfRihfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlVGVzdCwgSW52YWxpZEV4dGVuc2lv
bikKIHsKICAgICBfX2Jsb2NrIGJvb2wgZG9uZUNvbXBpbGluZyA9IGZhbHNlOwpAQCAtNjUsNiAr
NzAsOCBAQCBURVNUX0YoX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVRlc3QsCiAgICAgCiAg
ICAgICAgIEVYUEVDVF9OVUxMKGZpbHRlcik7CiAgICAgICAgIEVYUEVDVF9OT1RfTlVMTChlcnJv
cik7CisgICAgICAgIGNoZWNrRG9tYWluKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX0VRKGVycm9y
LmNvZGUsIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvckNvZGU6OkNvbXBpbGVGYWls
ZWQpOwogICAgICAgICBFWFBFQ1RfU1RSRVEoIkV4dGVuc2lvbiBjb21waWxhdGlvbiBmYWlsZWQ6
IEZhaWxlZCB0byBwYXJzZSB0aGUgSlNPTiBTdHJpbmcuIiwgW1tlcnJvciBoZWxwQW5jaG9yXSBV
VEY4U3RyaW5nXSk7CiAKICAgICAgICAgZG9uZUNvbXBpbGluZyA9IHRydWU7CkBAIC0xMDIsOCAr
MTA5LDQwIEBAIFRFU1RfRihfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlVGVzdCwKICAgICAK
ICAgICAgICAgRVhQRUNUX05VTEwoZmlsdGVyKTsKICAgICAgICAgRVhQRUNUX05PVF9OVUxMKGVy
cm9yKTsKKyAgICAgICAgY2hlY2tEb21haW4oZXJyb3IpOworICAgICAgICBFWFBFQ1RfRVEoZXJy
b3IuY29kZSwgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yQ29kZTo6TG9va3VwRmFp
bGVkKTsKICAgICAgICAgRVhQRUNUX1NUUkVRKCJFeHRlbnNpb24gbG9va3VwIGZhaWxlZDogVW5z
cGVjaWZpZWQgZXJyb3IgZHVyaW5nIGxvb2t1cC4iLCBbW2Vycm9yIGhlbHBBbmNob3JdIFVURjhT
dHJpbmddKTsKKyAgICAgICAgCisgICAgICAgIGRvbmVMb29raW5nVXAgPSB0cnVlOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUxvb2tpbmdVcCk7Cit9CiAKK1RF
U1RfRihfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlVGVzdCwgVmVyc2lvbk1pc21hdGNoKQor
eworICAgIF9fYmxvY2sgYm9vbCBkb25lQ29tcGlsaW5nID0gZmFsc2U7CisgICAgW1tfV0tVc2Vy
Q29udGVudEV4dGVuc2lvblN0b3JlIGRlZmF1bHRTdG9yZV0gY29tcGlsZUNvbnRlbnRFeHRlbnNp
b25Gb3JJZGVudGlmaWVyOkAiVGVzdEV4dGVuc2lvbiIgZW5jb2RlZENvbnRlbnRFeHRlbnNpb246
YmFzaWNGaWx0ZXIgY29tcGxldGlvbkhhbmRsZXI6XihfV0tVc2VyQ29udGVudEZpbHRlciAqZmls
dGVyLCBOU0Vycm9yICplcnJvcikKKyAgICB7CisgICAgICAgIAorICAgICAgICBFWFBFQ1RfTk9U
X05VTEwoZmlsdGVyKTsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICAKKyAg
ICAgICAgZG9uZUNvbXBpbGluZyA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lQ29tcGlsaW5nKTsKKworICAgIFtbX1dLVXNlckNvbnRlbnRFeHRlbnNp
b25TdG9yZSBkZWZhdWx0U3RvcmVdIF9pbnZhbGlkYXRlQ29udGVudEV4dGVuc2lvblZlcnNpb25G
b3JJZGVudGlmaWVyOkAiVGVzdEV4dGVuc2lvbiJdOworICAgIAorICAgIF9fYmxvY2sgYm9vbCBk
b25lTG9va2luZ1VwID0gZmFsc2U7CisgICAgW1tfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3Jl
IGRlZmF1bHRTdG9yZV0gbG9va3VwQ29udGVudEV4dGVuc2lvbkZvcklkZW50aWZpZXI6QCJUZXN0
RXh0ZW5zaW9uIiBjb21wbGV0aW9uSGFuZGxlcjpeKF9XS1VzZXJDb250ZW50RmlsdGVyICpmaWx0
ZXIsIE5TRXJyb3IgKmVycm9yKQorICAgIHsKKyAgICAgICAgCisgICAgICAgIEVYUEVDVF9OVUxM
KGZpbHRlcik7CisgICAgICAgIEVYUEVDVF9OT1RfTlVMTChlcnJvcik7CisgICAgICAgIGNoZWNr
RG9tYWluKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX0VRKGVycm9yLmNvZGUsIF9XS1VzZXJDb250
ZW50RXh0ZW5zaW9uU3RvcmVFcnJvckNvZGU6OlZlcnNpb25NaXNtYXRjaCk7CisgICAgICAgIEVY
UEVDVF9TVFJFUSgiRXh0ZW5zaW9uIGxvb2t1cCBmYWlsZWQ6IFZlcnNpb24gb2YgZmlsZSBkb2Vz
IG5vdCBtYXRjaCB2ZXJzaW9uIG9mIGludGVycHJldGVyLiIsIFtbZXJyb3IgaGVscEFuY2hvcl0g
VVRGOFN0cmluZ10pOworICAgICAgICAKICAgICAgICAgZG9uZUxvb2tpbmdVcCA9IHRydWU7CiAg
ICAgfV07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lTG9va2luZ1VwKTsKQEAg
LTEzNSw2ICsxNzQsOCBAQCBURVNUX0YoX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVRlc3Qs
CiAgICAgX19ibG9jayBib29sIGRvbmVSZW1vdmluZyA9IGZhbHNlOwogICAgIFtbX1dLVXNlckNv
bnRlbnRFeHRlbnNpb25TdG9yZSBkZWZhdWx0U3RvcmVdIHJlbW92ZUNvbnRlbnRFeHRlbnNpb25G
b3JJZGVudGlmaWVyOkAiRG9lc05vdEV4aXN0IiBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3Ig
KmVycm9yKSB7CiAgICAgICAgIEVYUEVDVF9OT1RfTlVMTChlcnJvcik7CisgICAgICAgIGNoZWNr
RG9tYWluKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX0VRKGVycm9yLmNvZGUsIF9XS1VzZXJDb250
ZW50RXh0ZW5zaW9uU3RvcmVFcnJvckNvZGU6OlJlbW92ZUZhaWxlZCk7CiAgICAgICAgIEVYUEVD
VF9TVFJFUSgiRXh0ZW5zaW9uIHJlbW92YWwgZmFpbGVkOiBVbnNwZWNpZmllZCBlcnJvciBkdXJp
bmcgcmVtb3ZlLiIsIFtbZXJyb3IgaGVscEFuY2hvcl0gVVRGOFN0cmluZ10pOwogCiAgICAgICAg
IGRvbmVSZW1vdmluZyA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279976</attachid>
            <date>2016-05-27 11:29:54 -0700</date>
            <delta_ts>2016-05-27 11:33:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158095-20160527113109.patch</filename>
            <type>text/plain</type>
            <size>13015</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMTI3NSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE2LTA1LTI3ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXhwb3NlIGNv
bnRlbnQgZXh0ZW5zaW9uIGZhaWx1cmUgZXJyb3IgY29kZXMgaW4gU1BJCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwOTUKKyAgICAgICAgcmRhcjov
L3Byb2JsZW0vMjY0NzU2NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5j
cHA6CisgICAgICAgIChBUEk6OlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OnN5bmNocm9ub3Vz
UmVtb3ZlQWxsQ29udGVudEV4dGVuc2lvbnMpOgorICAgICAgICAoQVBJOjpVc2VyQ29udGVudEV4
dGVuc2lvblN0b3JlOjppbnZhbGlkYXRlQ29udGVudEV4dGVuc2lvblZlcnNpb24pOgorICAgICAg
ICBBZGRlZCBmb3IgdGVzdGluZy4KKyAgICAgICAgKEFQSTo6dXNlckNvbnRlbnRFeHRlbnNpb25T
dG9yZUVycm9yQ2F0ZWdvcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRl
bnRFeHRlbnNpb25TdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNl
ckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oOgorICAgICAgICBBZGRlZCB0aGUgbmV3IGVudW0sIF9X
S1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvckNvZGUuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLm1tOgorICAgICAgICAodG9X
S1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvckNvZGUpOgorICAgICAgICAoLVtfV0tVc2Vy
Q29udGVudEV4dGVuc2lvblN0b3JlIGRlYWxsb2NdKToKKyAgICAgICAgKC1bX1dLVXNlckNvbnRl
bnRFeHRlbnNpb25TdG9yZSBjb21waWxlQ29udGVudEV4dGVuc2lvbkZvcklkZW50aWZpZXI6ZW5j
b2RlZENvbnRlbnRFeHRlbnNpb246Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgIFNvbWV0
aW1lcyB0aGUgZXJyb3IgY29kZSByZXR1cm5lZCBieSBVc2VyQ29udGVudEV4dGVuc2lvblN0b3Jl
Ojpjb21waWxlQ29udGVudEV4dGVuc2lvbiBoYXMgdGhlIGVycm9yIGNvZGUgZnJvbSBjb21waWxl
UnVsZUxpc3QuCisgICAgICAgIFdoZW4gdGhpcyBoYXBwZW5zLCB3ZSB3YW50IHRvIGdldCB0aGUg
bWVzc2FnZSBmcm9tIHRoZSBpbnRlcm5hbCBjb21waWxlciBlcnJvciwgYnV0IHdlIHdhbnQgdGhl
IE5TRXJyb3IncyBjb2RlIHRvIGFsd2F5cyBiZSBDb21waWxlRmFpbGVkLgorICAgICAgICAoLVtf
V0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIGxvb2t1cENvbnRlbnRFeHRlbnNpb25Gb3JJZGVu
dGlmaWVyOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtfV0tVc2VyQ29udGVudEV4
dGVuc2lvblN0b3JlIHJlbW92ZUNvbnRlbnRFeHRlbnNpb25Gb3JJZGVudGlmaWVyOmNvbXBsZXRp
b25IYW5kbGVyOl0pOgorICAgICAgICAoLVtfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIF9y
ZW1vdmVBbGxDb250ZW50RXh0ZW5zaW9uc10pOgorICAgICAgICAoLVtfV0tVc2VyQ29udGVudEV4
dGVuc2lvblN0b3JlIF9pbnZhbGlkYXRlQ29udGVudEV4dGVuc2lvblZlcnNpb25Gb3JJZGVudGlm
aWVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZVByaXZhdGUuaDoKKyAgICAgICAgQWRkZWQgbmV3IGludmFsaWRhdG9yIGZvciB0
ZXN0aW5nLgorCiAyMDE2LTA1LTIzICBNaWd1ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+
CiAKICAgICAgICAgW1RocmVhZGVkQ29tcG9zaXRvcl0gRW5zdXJlIHRoYXQgdGhlIEJpdG1hcFRl
eHR1cmUgdXNlZCBieSBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUgbWF0Y2hlcyB0aGUgb3Bh
Y2l0eSBvZiB0aGUgcGFpbnRlZCBzdXJmYWNlCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0FQSVVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5j
cHAJKHJldmlzaW9uIDIwMTI3NSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJ
VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5MSw2ICsz
OTEsMTcgQEAgdm9pZCBVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpzeW5jaHJvbgogICAgICAg
ICBXZWJDb3JlOjpkZWxldGVGaWxlKHBhdGgpOwogfQogCit2b2lkIFVzZXJDb250ZW50RXh0ZW5z
aW9uU3RvcmU6OmludmFsaWRhdGVDb250ZW50RXh0ZW5zaW9uVmVyc2lvbihjb25zdCBXVEY6OlN0
cmluZyYgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGZpbGUgPSBXZWJDb3JlOjpvcGVuRmlsZShj
b25zdHJ1Y3RlZFBhdGgobV9zdG9yZVBhdGgsIGlkZW50aWZpZXIpLCBXZWJDb3JlOjpPcGVuRm9y
V3JpdGUpOworICAgIGlmIChmaWxlID09IFdlYkNvcmU6OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5k
bGUpCisgICAgICAgIHJldHVybjsKKyAgICBDb250ZW50RXh0ZW5zaW9uTWV0YURhdGEgaW52YWxp
ZEhlYWRlciA9IHswLCAwLCAwLCAwLCAwfTsKKyAgICBhdXRvIGJ5dGVzV3JpdHRlbiA9IFdlYkNv
cmU6OndyaXRlVG9GaWxlKGZpbGUsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KCZpbnZh
bGlkSGVhZGVyKSwgc2l6ZW9mKGludmFsaWRIZWFkZXIpKTsKKyAgICBBU1NFUlRfVU5VU0VEKGJ5
dGVzV3JpdHRlbiwgYnl0ZXNXcml0dGVuID09IHNpemVvZihpbnZhbGlkSGVhZGVyKSk7CisgICAg
V2ViQ29yZTo6Y2xvc2VGaWxlKGZpbGUpOworfQorICAgIAogY29uc3Qgc3RkOjplcnJvcl9jYXRl
Z29yeSYgdXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yQ2F0ZWdvcnkoKQogewogICAgIGNs
YXNzIFVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvckNhdGVnb3J5IDogcHVibGljIHN0ZDo6
ZXJyb3JfY2F0ZWdvcnkgewpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElV
c2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmgJKHJldmlzaW9uIDIw
MTI3NSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02Niw2ICs2Niw3IEBAIHB1YmxpYzoKIAog
ICAgIC8vIEZvciB0ZXN0aW5nIG9ubHkuCiAgICAgdm9pZCBzeW5jaHJvbm91c1JlbW92ZUFsbENv
bnRlbnRFeHRlbnNpb25zKCk7CisgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudEV4dGVuc2lvblZl
cnNpb24oY29uc3QgV1RGOjpTdHJpbmcmIGlkZW50aWZpZXIpOwogCiBwcml2YXRlOgogICAgIFdU
Rjo6U3RyaW5nIGRlZmF1bHRTdG9yZVBhdGgoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZS5oCShyZXZpc2lvbiAyMDEyNzUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuaAkod29ya2luZyBjb3B5
KQpAQCAtNDEsNCArNDEsMTMgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzExLCA5XzApCiAKIEBl
bmQKIAorV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX0NvbnRlbnRFeHRlbnNpb25zRG9tYWlu
IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKwordHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yQ29kZSkgeworICAg
IF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvckxvb2t1cEZhaWxlZCA9IDEsCisgICAg
X1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yVmVyc2lvbk1pc21hdGNoLAorICAgIF9X
S1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvckNvbXBpbGVGYWlsZWQsCisgICAgX1dLVXNl
ckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yUmVtb3ZlRmFpbGVkLAorfSBXS19FTlVNX0FWQUlM
QUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKwogI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVE
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50
RXh0ZW5zaW9uU3RvcmUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLm1tCShyZXZpc2lvbiAyMDEy
NzUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50
RXh0ZW5zaW9uU3RvcmUubW0JKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDIyIEBACiAjaW1w
b3J0ICJfV0tVc2VyQ29udGVudEZpbHRlckludGVybmFsLmgiCiAjaW1wb3J0IDxzdHJpbmc+CiAK
K05TU3RyaW5nICogY29uc3QgX0NvbnRlbnRFeHRlbnNpb25zRG9tYWluID0gQCJDb250ZW50RXh0
ZW5zaW9uc0RvbWFpbiI7CisKK3N0YXRpYyBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlRXJy
b3JDb2RlIHRvV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlRXJyb3JDb2RlKEFQSTo6VXNlckNv
bnRlbnRFeHRlbnNpb25TdG9yZTo6RXJyb3IgZXJyb3IpCit7CisgICAgc3dpdGNoIChlcnJvcikg
eworICAgIGNhc2UgQVBJOjpVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpFcnJvcjo6TG9va3Vw
RmFpbGVkOgorICAgICAgICByZXR1cm4gX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9y
TG9va3VwRmFpbGVkOworICAgIGNhc2UgQVBJOjpVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpF
cnJvcjo6VmVyc2lvbk1pc21hdGNoOgorICAgICAgICByZXR1cm4gX1dLVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZUVycm9yVmVyc2lvbk1pc21hdGNoOworICAgIGNhc2UgQVBJOjpVc2VyQ29udGVu
dEV4dGVuc2lvblN0b3JlOjpFcnJvcjo6Q29tcGlsZUZhaWxlZDoKKyAgICAgICAgcmV0dXJuIF9X
S1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvckNvbXBpbGVGYWlsZWQ7CisgICAgY2FzZSBB
UEk6OlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OkVycm9yOjpSZW1vdmVGYWlsZWQ6CisgICAg
ICAgIHJldHVybiBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlRXJyb3JSZW1vdmVGYWlsZWQ7
CisgICAgfQorfQorCiBAaW1wbGVtZW50YXRpb24gX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9y
ZQogCiAtICh2b2lkKWRlYWxsb2MKQEAgLTY1LDcgKzgxLDEwIEBAIC0gKHZvaWQpY29tcGlsZUNv
bnRlbnRFeHRlbnNpb25Gb3JJZGVudGkKICAgICAgICAgICAgIGF1dG8gcmF3SGFuZGxlciA9ICh2
b2lkICheKShfV0tVc2VyQ29udGVudEZpbHRlciAqLCBOU0Vycm9yICopKWhhbmRsZXIuZ2V0KCk7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGF1dG8gdXNlckluZm8gPSBAe05TSGVscEFuY2hv
ckVycm9yS2V5OiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIkV4dGVuc2lvbiBjb21waWxh
dGlvbiBmYWlsZWQ6ICVzIiwgZXJyb3IubWVzc2FnZSgpLmNfc3RyKCldfTsKLSAgICAgICAgICAg
IHJhd0hhbmRsZXIobmlsLCBbTlNFcnJvciBlcnJvcldpdGhEb21haW46QCJDb250ZW50RXh0ZW5z
aW9uc0RvbWFpbiIgY29kZTplcnJvci52YWx1ZSgpIHVzZXJJbmZvOnVzZXJJbmZvXSk7CisKKyAg
ICAgICAgICAgIC8vIGVycm9yLnZhbHVlKCkgY291bGQgaGF2ZSBhIHNwZWNpZmljIGNvbXBpbGVy
IGVycm9yLiBXZSB3YW50IHRvIHVzZSBlcnJvci5tZXNzYWdlLCBidXQgaGVyZSB3ZSB3YW50IHRv
IG9ubHkgaGF2ZSBDb21waWxlRmFpbGVkLgorICAgICAgICAgICAgYXV0byBjb2RlID0gdG9XS1Vz
ZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvckNvZGUoQVBJOjpVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlOjpFcnJvcjo6Q29tcGlsZUZhaWxlZCk7CisgICAgICAgICAgICByYXdIYW5kbGVyKG5p
bCwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOl9Db250ZW50RXh0ZW5zaW9uc0RvbWFpbiBjb2Rl
OmNvZGUgdXNlckluZm86dXNlckluZm9dKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogCkBAIC04Myw3ICsxMDIsOCBAQCAtICh2b2lkKWxvb2t1cENvbnRlbnRFeHRlbnNpb25Gb3JJ
ZGVudGlmCiAgICAgICAgICAgICBhdXRvIHJhd0hhbmRsZXIgPSAodm9pZCAoXikoX1dLVXNlckNv
bnRlbnRGaWx0ZXIgKiwgTlNFcnJvciAqKSloYW5kbGVyLmdldCgpOwogCiAgICAgICAgICAgICBh
dXRvIHVzZXJJbmZvID0gQHtOU0hlbHBBbmNob3JFcnJvcktleTogW05TU3RyaW5nIHN0cmluZ1dp
dGhGb3JtYXQ6QCJFeHRlbnNpb24gbG9va3VwIGZhaWxlZDogJXMiLCBlcnJvci5tZXNzYWdlKCku
Y19zdHIoKV19OwotICAgICAgICAgICAgcmF3SGFuZGxlcihuaWwsIFtOU0Vycm9yIGVycm9yV2l0
aERvbWFpbjpAIkNvbnRlbnRFeHRlbnNpb25zRG9tYWluIiBjb2RlOmVycm9yLnZhbHVlKCkgdXNl
ckluZm86dXNlckluZm9dKTsKKyAgICAgICAgICAgIEFTU0VSVChlcnJvci52YWx1ZSgpID09IF9X
S1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvckxvb2t1cEZhaWxlZCB8fCBlcnJvci52YWx1
ZSgpID09IF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvclZlcnNpb25NaXNtYXRjaCk7
CisgICAgICAgICAgICByYXdIYW5kbGVyKG5pbCwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOl9D
b250ZW50RXh0ZW5zaW9uc0RvbWFpbiBjb2RlOmVycm9yLnZhbHVlKCkgdXNlckluZm86dXNlcklu
Zm9dKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0xMDEsNyArMTIxLDkg
QEAgLSAodm9pZClyZW1vdmVDb250ZW50RXh0ZW5zaW9uRm9ySWRlbnRpZgogICAgICAgICAgICAg
YXV0byByYXdIYW5kbGVyID0gKHZvaWQgKF4pKE5TRXJyb3IgKikpaGFuZGxlci5nZXQoKTsKIAog
ICAgICAgICAgICAgYXV0byB1c2VySW5mbyA9IEB7TlNIZWxwQW5jaG9yRXJyb3JLZXk6IFtOU1N0
cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiRXh0ZW5zaW9uIHJlbW92YWwgZmFpbGVkOiAlcyIsIGVy
cm9yLm1lc3NhZ2UoKS5jX3N0cigpXX07Ci0gICAgICAgICAgICByYXdIYW5kbGVyKFtOU0Vycm9y
IGVycm9yV2l0aERvbWFpbjpAIkNvbnRlbnRFeHRlbnNpb25zRG9tYWluIiBjb2RlOmVycm9yLnZh
bHVlKCkgdXNlckluZm86dXNlckluZm9dKTsKKyAgICAgICAgICAgIEFTU0VSVChlcnJvci52YWx1
ZSgpID09IF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvclJlbW92ZUZhaWxlZCk7Cisg
ICAgICAgICAgICBhdXRvIGNvZGUgPSB0b1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9y
Q29kZShBUEk6OlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OkVycm9yOjpSZW1vdmVGYWlsZWQp
OworICAgICAgICAgICAgcmF3SGFuZGxlcihbTlNFcnJvciBlcnJvcldpdGhEb21haW46X0NvbnRl
bnRFeHRlbnNpb25zRG9tYWluIGNvZGU6Y29kZSB1c2VySW5mbzp1c2VySW5mb10pOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTEyOCw2ICsxNTAsMTEgQEAgLSAodm9pZClf
cmVtb3ZlQWxsQ29udGVudEV4dGVuc2lvbnMKICAgICBfdXNlckNvbnRlbnRFeHRlbnNpb25TdG9y
ZS0+c3luY2hyb25vdXNSZW1vdmVBbGxDb250ZW50RXh0ZW5zaW9ucygpOwogfQogCistICh2b2lk
KV9pbnZhbGlkYXRlQ29udGVudEV4dGVuc2lvblZlcnNpb25Gb3JJZGVudGlmaWVyOihOU1N0cmlu
ZyAqKWlkZW50aWZpZXIKK3sKKyAgICBfdXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS0+aW52YWxp
ZGF0ZUNvbnRlbnRFeHRlbnNpb25WZXJzaW9uKGlkZW50aWZpZXIpOworfQorCiBAZW5kCiAKICNl
bmRpZiAvLyBXS19BUElfRU5BQkxFRApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlUHJpdmF0ZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZVByaXZhdGUuaAkocmV2aXNpb24gMjAxMjc1KQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlUHJpdmF0ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAKIC8vIEZvciB0ZXN0aW5nIG9ubHku
CiAtICh2b2lkKV9yZW1vdmVBbGxDb250ZW50RXh0ZW5zaW9uczsKKy0gKHZvaWQpX2ludmFsaWRh
dGVDb250ZW50RXh0ZW5zaW9uVmVyc2lvbkZvcklkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRp
ZmllcjsKIAogQGVuZAogCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDE0MzYpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxNi0wNS0yNiAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEV4cG9zZSBjb250ZW50IGV4dGVu
c2lvbiBmYWlsdXJlIGVycm9yIGNvZGVzIGluIFNQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MDk1CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzI2
NDc1NjUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlLm1tOgorICAgICAgICAoY2hlY2tEb21haW4pOgorICAgICAgICAoVEVTVF9GKToKKyAg
ICAgICAgQWRkIHRlc3RzIHRoYXQgdXNlIHRoZSBuZXcgZW51bS4KKwogMjAxNi0wNS0yNiAgQnJl
bnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIHRl
c3QgZml4IGFmdGVyIHIyMDE0MjcuCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL19XS1VzZXJDb250ZW50RXh0
ZW5zaW9uU3RvcmUubW0JKHJldmlzaW9uIDIwMTI5MCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0JKHdvcmtp
bmcgY29weSkKQEAgLTU4LDYgKzU4LDExIEBAIFRFU1RfRihfV0tVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlVGVzdCwKIAogc3RhdGljIE5TU3RyaW5nICppbnZhbGlkRmlsdGVyID0gQCJbIjsKIAor
c3RhdGljIHZvaWQgY2hlY2tEb21haW4oTlNFcnJvciAqZXJyb3IpCit7CisgICAgRVhQRUNUX1NU
UkVRKFtbZXJyb3IgZG9tYWluXSBVVEY4U3RyaW5nXSwgW19Db250ZW50RXh0ZW5zaW9uc0RvbWFp
biBVVEY4U3RyaW5nXSk7Cit9CisKIFRFU1RfRihfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3Jl
VGVzdCwgSW52YWxpZEV4dGVuc2lvbikKIHsKICAgICBfX2Jsb2NrIGJvb2wgZG9uZUNvbXBpbGlu
ZyA9IGZhbHNlOwpAQCAtNjUsNiArNzAsOCBAQCBURVNUX0YoX1dLVXNlckNvbnRlbnRFeHRlbnNp
b25TdG9yZVRlc3QsCiAgICAgCiAgICAgICAgIEVYUEVDVF9OVUxMKGZpbHRlcik7CiAgICAgICAg
IEVYUEVDVF9OT1RfTlVMTChlcnJvcik7CisgICAgICAgIGNoZWNrRG9tYWluKGVycm9yKTsKKyAg
ICAgICAgRVhQRUNUX0VRKGVycm9yLmNvZGUsIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVF
cnJvckNvbXBpbGVGYWlsZWQpOwogICAgICAgICBFWFBFQ1RfU1RSRVEoIkV4dGVuc2lvbiBjb21w
aWxhdGlvbiBmYWlsZWQ6IEZhaWxlZCB0byBwYXJzZSB0aGUgSlNPTiBTdHJpbmcuIiwgW1tlcnJv
ciBoZWxwQW5jaG9yXSBVVEY4U3RyaW5nXSk7CiAKICAgICAgICAgZG9uZUNvbXBpbGluZyA9IHRy
dWU7CkBAIC0xMDIsOCArMTA5LDQwIEBAIFRFU1RfRihfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlVGVzdCwKICAgICAKICAgICAgICAgRVhQRUNUX05VTEwoZmlsdGVyKTsKICAgICAgICAgRVhQ
RUNUX05PVF9OVUxMKGVycm9yKTsKKyAgICAgICAgY2hlY2tEb21haW4oZXJyb3IpOworICAgICAg
ICBFWFBFQ1RfRVEoZXJyb3IuY29kZSwgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9y
TG9va3VwRmFpbGVkKTsKICAgICAgICAgRVhQRUNUX1NUUkVRKCJFeHRlbnNpb24gbG9va3VwIGZh
aWxlZDogVW5zcGVjaWZpZWQgZXJyb3IgZHVyaW5nIGxvb2t1cC4iLCBbW2Vycm9yIGhlbHBBbmNo
b3JdIFVURjhTdHJpbmddKTsKKyAgICAgICAgCisgICAgICAgIGRvbmVMb29raW5nVXAgPSB0cnVl
OworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUxvb2tpbmdVcCk7
Cit9CiAKK1RFU1RfRihfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlVGVzdCwgVmVyc2lvbk1p
c21hdGNoKQoreworICAgIF9fYmxvY2sgYm9vbCBkb25lQ29tcGlsaW5nID0gZmFsc2U7CisgICAg
W1tfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIGRlZmF1bHRTdG9yZV0gY29tcGlsZUNvbnRl
bnRFeHRlbnNpb25Gb3JJZGVudGlmaWVyOkAiVGVzdEV4dGVuc2lvbiIgZW5jb2RlZENvbnRlbnRF
eHRlbnNpb246YmFzaWNGaWx0ZXIgY29tcGxldGlvbkhhbmRsZXI6XihfV0tVc2VyQ29udGVudEZp
bHRlciAqZmlsdGVyLCBOU0Vycm9yICplcnJvcikKKyAgICB7CisgICAgICAgIAorICAgICAgICBF
WFBFQ1RfTk9UX05VTEwoZmlsdGVyKTsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAg
ICAgICAKKyAgICAgICAgZG9uZUNvbXBpbGluZyA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lQ29tcGlsaW5nKTsKKworICAgIFtbX1dLVXNlckNvbnRl
bnRFeHRlbnNpb25TdG9yZSBkZWZhdWx0U3RvcmVdIF9pbnZhbGlkYXRlQ29udGVudEV4dGVuc2lv
blZlcnNpb25Gb3JJZGVudGlmaWVyOkAiVGVzdEV4dGVuc2lvbiJdOworICAgIAorICAgIF9fYmxv
Y2sgYm9vbCBkb25lTG9va2luZ1VwID0gZmFsc2U7CisgICAgW1tfV0tVc2VyQ29udGVudEV4dGVu
c2lvblN0b3JlIGRlZmF1bHRTdG9yZV0gbG9va3VwQ29udGVudEV4dGVuc2lvbkZvcklkZW50aWZp
ZXI6QCJUZXN0RXh0ZW5zaW9uIiBjb21wbGV0aW9uSGFuZGxlcjpeKF9XS1VzZXJDb250ZW50Rmls
dGVyICpmaWx0ZXIsIE5TRXJyb3IgKmVycm9yKQorICAgIHsKKyAgICAgICAgCisgICAgICAgIEVY
UEVDVF9OVUxMKGZpbHRlcik7CisgICAgICAgIEVYUEVDVF9OT1RfTlVMTChlcnJvcik7CisgICAg
ICAgIGNoZWNrRG9tYWluKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX0VRKGVycm9yLmNvZGUsIF9X
S1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvclZlcnNpb25NaXNtYXRjaCk7CisgICAgICAg
IEVYUEVDVF9TVFJFUSgiRXh0ZW5zaW9uIGxvb2t1cCBmYWlsZWQ6IFZlcnNpb24gb2YgZmlsZSBk
b2VzIG5vdCBtYXRjaCB2ZXJzaW9uIG9mIGludGVycHJldGVyLiIsIFtbZXJyb3IgaGVscEFuY2hv
cl0gVVRGOFN0cmluZ10pOworICAgICAgICAKICAgICAgICAgZG9uZUxvb2tpbmdVcCA9IHRydWU7
CiAgICAgfV07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lTG9va2luZ1VwKTsK
QEAgLTEzNSw2ICsxNzQsOCBAQCBURVNUX0YoX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVRl
c3QsCiAgICAgX19ibG9jayBib29sIGRvbmVSZW1vdmluZyA9IGZhbHNlOwogICAgIFtbX1dLVXNl
ckNvbnRlbnRFeHRlbnNpb25TdG9yZSBkZWZhdWx0U3RvcmVdIHJlbW92ZUNvbnRlbnRFeHRlbnNp
b25Gb3JJZGVudGlmaWVyOkAiRG9lc05vdEV4aXN0IiBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJy
b3IgKmVycm9yKSB7CiAgICAgICAgIEVYUEVDVF9OT1RfTlVMTChlcnJvcik7CisgICAgICAgIGNo
ZWNrRG9tYWluKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX0VRKGVycm9yLmNvZGUsIF9XS1VzZXJD
b250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvclJlbW92ZUZhaWxlZCk7CiAgICAgICAgIEVYUEVDVF9T
VFJFUSgiRXh0ZW5zaW9uIHJlbW92YWwgZmFpbGVkOiBVbnNwZWNpZmllZCBlcnJvciBkdXJpbmcg
cmVtb3ZlLiIsIFtbZXJyb3IgaGVscEFuY2hvcl0gVVRGOFN0cmluZ10pOwogCiAgICAgICAgIGRv
bmVSZW1vdmluZyA9IHRydWU7Cg==
</data>
<flag name="review"
          id="303977"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>