<?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>121584</bug_id>
          
          <creation_ts>2013-09-18 20:00:28 -0700</creation_ts>
          <short_desc>MediaStream API: update NavigatorUserMediaError object to match spec</short_desc>
          <delta_ts>2013-11-14 07:39:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>124288</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rakuco</cc>
    
    <cc>tommyw</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>930827</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-18 20:00:28 -0700</bug_when>
    <thetext>NavigatorUserMediaError should inherit from DOMError, should not have a &quot;message&quot; attribute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930828</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-18 20:00:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/15022765&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930839</commentid>
    <comment_count>2</comment_count>
      <attachid>212034</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-18 21:44:09 -0700</bug_when>
    <thetext>Created attachment 212034
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930840</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-18 21:47:04 -0700</bug_when>
    <thetext>Attachment 212034 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/mediastream/getusermedia-expected.txt&apos;, u&apos;LayoutTests/fast/mediastream/getusermedia.html&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/Modules/mediastream/NavigatorUserMediaError.cpp&apos;, u&apos;Source/WebCore/Modules/mediastream/NavigatorUserMediaError.h&apos;, u&apos;Source/WebCore/Modules/mediastream/NavigatorUserMediaError.idl&apos;, u&apos;Source/WebCore/Modules/mediastream/UserMediaRequest.cpp&apos;, u&apos;Source/WebCore/Modules/mediastream/UserMediaRequest.h&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/dom/DOMError.h&apos;, u&apos;Source/WebCore/platform/mediastream/MediaStreamSourcesQueryClient.h&apos;]&quot; exit_code: 1
Source/WebCore/Modules/mediastream/NavigatorUserMediaError.cpp:30:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930841</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-18 21:52:24 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Attachment 212034 [details] did not pass style-queue:
&gt; 
&gt; Source/WebCore/Modules/mediastream/NavigatorUserMediaError.cpp:30:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]

Oh the horror!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930939</commentid>
    <comment_count>5</comment_count>
      <attachid>212064</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-19 07:02:51 -0700</bug_when>
    <thetext>Created attachment 212064
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930997</commentid>
    <comment_count>6</comment_count>
      <attachid>212064</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-09-19 10:37:31 -0700</bug_when>
    <thetext>Comment on attachment 212064
Updated patch

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

&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.h:68
&gt; +    virtual PassRefPtr&lt;MediaConstraints&gt; videoConstraints() const  OVERRIDE;

Nit: two spaces before OVERRIDE

&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.h:69
&gt; +    virtual void didCompleteQuery(const MediaStreamSourceVector&amp; audioSources, const MediaStreamSourceVector&amp; videoSources)  OVERRIDE;

Here too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>931038</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-19 12:06:20 -0700</bug_when>
    <thetext>Committed r156108: https://trac.webkit.org/r156108</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933788</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-26 17:10:59 -0700</bug_when>
    <thetext>*** Bug 121404 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212034</attachid>
            <date>2013-09-18 21:44:09 -0700</date>
            <delta_ts>2013-09-19 07:02:51 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>navigaor_user_media_error_4.txt</filename>
            <type>text/plain</type>
            <size>25129</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NjA3OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDEzLTA5LTE4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQ
STogdXBkYXRlIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yIG9iamVjdCB0byBtYXRjaCBzcGVjCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjE1ODQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVz
dHMsIHVwZGF0ZWQgZ2V0dXNlcm1lZGlhLmh0bWwuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDogQWRkIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yLmNwcC4KKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOiBEaXR0by4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdh
dG9yVXNlck1lZGlhRXJyb3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yLmg6IERlcml2ZSBmcm9tIERPTUVycm9yLCBnZXQg
cmlkIG9mICJtZXNzYWdlIiBhdHRyaWJ1dGUuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5pZGw6IERpdHRvLgorCisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVz
ZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSk6IEFTQ0lJTGl0ZXJhbCAtPiBBdG9taWNTdHJpbmcuIFJl
bmFtZSBjb25zdHJhaW50IHBhcmFtZXRlcnMuCisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFS
ZXF1ZXN0OjpVc2VyTWVkaWFSZXF1ZXN0KTogUmVuYW1lIGNvbnN0cmFpbnQgcGFyYW1ldGVycy4K
KyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmF1ZGlvQ29uc3RyYWludHMpOiBS
ZXR1cm4gUGFzc1JlZlB0cjw+IGluc3RlYWQgb2YgcmF3IHB0ci4KKyAgICAgICAgKFdlYkNvcmU6
OlVzZXJNZWRpYVJlcXVlc3Q6OnZpZGVvQ29uc3RyYWludHMpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6Om93bmVyRG9jdW1lbnQpOiBDbGVhbiB1cCBzdHlsZS4K
KyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OnN1Y2NlZWQpOiAKKyAgICAgICAg
KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OnBlcm1pc3Npb25GYWlsdXJlKTogUmVuYW1lZCBm
cm9tIGZhaWwuCisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Ojpjb25zdHJhaW50
RmFpbHVyZSk6ICBSZW5hbWVkIGZyb20gZmFpbENvbnN0cmFpbnQuCisgICAgICAgIChXZWJDb3Jl
OjpVc2VyTWVkaWFSZXF1ZXN0OjpjYWxsU3VjY2Vzc0hhbmRsZXIpOiBOZXcuCisgICAgICAgIChX
ZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjpjYWxsRXJyb3JIYW5kbGVyKTogTmV3LgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oOgorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgTmF2aWdhdG9yVXNlck1lZGlh
RXJyb3IuY3BwCisKKyAgICAgICAgKiBkb20vRE9NRXJyb3IuaDogTWFrZSBjb25zdHJ1Y3RvciBw
cm90ZWN0ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNv
dXJjZXNRdWVyeUNsaWVudC5oOiBNYWtlIGNvbnN0cmFpbnRzIGF2YWlsYWJsZS4KKwogMjAxMy0w
OS0xOCAgQmVtIEpvbmVzLUJleSAgPGJqb25lc2JlQGFkb2JlLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OIChyMTU1ODU0IC0gcjE1NTk2NykgYmxvY2sgd2l0aCBtYXJnaW4tbGVmdCBhZGphY2Vu
dCB0byBmbG9hdGVkIGJsb2NrIGNhdXNlcyB0ZXh0IG9mIHN1YnNlcXVlbnQgYmxvY2tzIHRvIG92
ZXJsYXAgdGhlIGZsb2F0ZWQgYmxvY2suCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNp
b24gMTU2MDU2KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTg0Niw2ICs4NDYsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuY3BwCiAgICAgTW9kdWxlcy9tZWRp
YXN0cmVhbS9OYXZpZ2F0b3JNZWRpYVN0cmVhbS5jcHAKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFt
L05hdmlnYXRvclVzZXJNZWRpYUVycm9yLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RFRNRlNlbmRlci5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZUb25lQ2hhbmdl
RXZlbnQuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTU2MDU2KQorKysgU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMTk4NSw2
ICsxOTg1LDcgQEAgd2ViY29yZV9tb2R1bGVzX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmggXAog
CVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0u
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlh
U3RyZWFtLmggXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9y
VXNlck1lZGlhRXJyb3IuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L05hdmlnYXRvclVzZXJNZWRpYUVycm9yLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFj
ay5oIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9y
VXNlck1lZGlhRXJyb3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuY3BwCShyZXZpc2lvbiAwKQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk5hdmln
YXRvclVzZXJNZWRpYUVycm9yLmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3QgQXRvbWljU3RyaW5nJiBOYXZpZ2F0b3JVc2Vy
TWVkaWFFcnJvcjo6cGVybWlzc2lvbkRlbmllZEVycm9yTmFtZSgpCit7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcGVybWlzc2lvbkRlbmllZCgiUGVybWlzc2lvbkRl
bmllZEVycm9yIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgcmV0
dXJuIHBlcm1pc3Npb25EZW5pZWQ7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgTmF2aWdhdG9y
VXNlck1lZGlhRXJyb3I6OmNvbnN0cmFpbnROb3RTYXRpc2ZpZWRFcnJvck5hbWUoKQoreworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGNvbnN0cmFpbnROb3RTYXRpc2Zp
ZWQoIkNvbnN0cmFpbnROb3RTYXRpc2ZpZWRFcnJvciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHJldHVybiBjb25zdHJhaW50Tm90U2F0aXNmaWVkOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJN
ZWRpYUVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5oCShyZXZpc2lvbiAxNTYwNTYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yNSw2ICsyNiw3IEBACiAjaWZuZGVmIE5hdmlnYXRvclVzZXJNZWRpYUVycm9y
X2gKICNkZWZpbmUgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JfaAogCisjaW5jbHVkZSAiRE9NRXJy
b3IuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAKQEAgLTMyLDI5ICszNCwyNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNs
YXNzIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yIDogcHVibGljIFJlZkNvdW50ZWQ8TmF2aWdhdG9y
VXNlck1lZGlhRXJyb3I+IHsKK2NsYXNzIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yIDogcHVibGlj
IERPTUVycm9yIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2Vy
TWVkaWFFcnJvcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGNvbnN0cmFpbnROYW1lKQorICAgIHN0YXRpYyBQYXNzUmVmUHRy
PE5hdmlnYXRvclVzZXJNZWRpYUVycm9yPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBTdHJpbmcmIGNvbnN0cmFpbnROYW1lKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvcihuYW1lLCBtZXNzYWdlLCBjb25zdHJhaW50TmFt
ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE5hdmlnYXRvclVzZXJNZWRpYUVycm9y
KG5hbWUsIGNvbnN0cmFpbnROYW1lKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+TmF2aWdhdG9y
VXNlck1lZGlhRXJyb3IoKSB7IH0KIAotICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsg
cmV0dXJuIG1fbmFtZTsgfQotICAgIGNvbnN0IFN0cmluZyYgbWVzc2FnZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbWVzc2FnZTsgfQogICAgIGNvbnN0IFN0cmluZyYgY29uc3RyYWludE5hbWUoKSBjb25z
dCB7IHJldHVybiBtX2NvbnN0cmFpbnROYW1lOyB9CiAKKyAgICBzdGF0aWMgY29uc3QgQXRvbWlj
U3RyaW5nJiBwZXJtaXNzaW9uRGVuaWVkRXJyb3JOYW1lKCk7CisgICAgc3RhdGljIGNvbnN0IEF0
b21pY1N0cmluZyYgY29uc3RyYWludE5vdFNhdGlzZmllZEVycm9yTmFtZSgpOworCiBwcml2YXRl
OgotICAgIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGNvbnN0cmFpbnROYW1lKQotICAgICAgICA6
IG1fbmFtZShuYW1lKQotICAgICAgICAsIG1fbWVzc2FnZShtZXNzYWdlKQorICAgIE5hdmlnYXRv
clVzZXJNZWRpYUVycm9yKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBjb25zdHJh
aW50TmFtZSkKKyAgICAgICAgOiBET01FcnJvcihuYW1lKQogICAgICAgICAsIG1fY29uc3RyYWlu
dE5hbWUoY29uc3RyYWludE5hbWUpCiAgICAgewogICAgIH0KIAotICAgIFN0cmluZyBtX25hbWU7
Ci0gICAgU3RyaW5nIG1fbWVzc2FnZTsKICAgICBTdHJpbmcgbV9jb25zdHJhaW50TmFtZTsKIH07
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNl
ck1lZGlhRXJyb3IuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuaWRsCShyZXZpc2lvbiAxNTYwNTYpCisr
KyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVy
cm9yLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjUsOSArMjUsNyBAQAogWwogICAgIE5vSW50ZXJm
YWNlT2JqZWN0LAogICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQotXSBpbnRlcmZhY2UgTmF2
aWdhdG9yVXNlck1lZGlhRXJyb3IgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
bmFtZTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1lc3NhZ2U7CitdIGludGVy
ZmFjZSBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvciA6IERPTUVycm9yIHsKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGNvbnN0cmFpbnROYW1lOwogfTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3Qu
Y3BwCShyZXZpc2lvbiAxNTYwNTYpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw4IEBA
CiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiU3BhY2VTcGxp
dFN0cmluZy5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlIDx3
dGYvRnVuY3Rpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNjcsMjQgKzY5LDI2IEBAIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlh
Q29uc3RyYWludHNJbXBsPiAKIAogUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiBVc2VyTWVk
aWFSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVXNlck1l
ZGlhQ29udHJvbGxlciogY29udHJvbGxlciwgY29uc3QgRGljdGlvbmFyeSYgb3B0aW9ucywgUGFz
c1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFj
aywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBSZWZQdHI8TWVkaWFDb25zdHJhaW50c0lt
cGw+IGF1ZGlvID0gcGFyc2VPcHRpb25zKG9wdGlvbnMsIEFTQ0lJTGl0ZXJhbCgiYXVkaW8iKSwg
ZWMpOworICAgIEFTU0VSVChzdWNjZXNzQ2FsbGJhY2spOworCisgICAgUmVmUHRyPE1lZGlhQ29u
c3RyYWludHNJbXBsPiBhdWRpb0NvbnN0cmFpbnRzID0gcGFyc2VPcHRpb25zKG9wdGlvbnMsIEF0
b21pY1N0cmluZygiYXVkaW8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwg
ZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBSZWZQdHI8TWVkaWFD
b25zdHJhaW50c0ltcGw+IHZpZGVvID0gcGFyc2VPcHRpb25zKG9wdGlvbnMsIEFTQ0lJTGl0ZXJh
bCgidmlkZW8iKSwgZWMpOworICAgIFJlZlB0cjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4gdmlkZW9D
b25zdHJhaW50cyA9IHBhcnNlT3B0aW9ucyhvcHRpb25zLCBBdG9taWNTdHJpbmcoInZpZGVvIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIGVjKTsKICAgICBpZiAoZWMpCiAg
ICAgICAgIHJldHVybiAwOwogCi0gICAgaWYgKCFhdWRpbyAmJiAhdmlkZW8pCisgICAgaWYgKCFh
dWRpb0NvbnN0cmFpbnRzICYmICF2aWRlb0NvbnN0cmFpbnRzKQogICAgICAgICByZXR1cm4gMDsK
IAotICAgIHJldHVybiBhZG9wdFJlZihuZXcgVXNlck1lZGlhUmVxdWVzdChjb250ZXh0LCBjb250
cm9sbGVyLCBhdWRpby5yZWxlYXNlKCksIHZpZGVvLnJlbGVhc2UoKSwgc3VjY2Vzc0NhbGxiYWNr
LCBlcnJvckNhbGxiYWNrKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBVc2VyTWVkaWFSZXF1
ZXN0KGNvbnRleHQsIGNvbnRyb2xsZXIsIGF1ZGlvQ29uc3RyYWludHMucmVsZWFzZSgpLCB2aWRl
b0NvbnN0cmFpbnRzLnJlbGVhc2UoKSwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSk7
CiB9CiAKLVVzZXJNZWRpYVJlcXVlc3Q6OlVzZXJNZWRpYVJlcXVlc3QoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgVXNlck1lZGlhQ29udHJvbGxlciogY29udHJvbGxlciwgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4gYXVkaW8sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJh
aW50c0ltcGw+IHZpZGVvLCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxs
YmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9y
Q2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCitVc2VyTWVkaWFSZXF1ZXN0OjpVc2VyTWVkaWFSZXF1
ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFVzZXJNZWRpYUNvbnRyb2xsZXIq
IGNvbnRyb2xsZXIsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50c0ltcGw+IGF1ZGlvQ29uc3Ry
YWludHMsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50c0ltcGw+IHZpZGVvQ29uc3RyYWludHMs
IFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrPiBzdWNjZXNzQ2Fs
bGJhY2ssIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4gZXJyb3JD
YWxsYmFjaykKICAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKGNvbnRleHQpCi0gICAg
LCBtX2F1ZGlvKGF1ZGlvKQotICAgICwgbV92aWRlbyh2aWRlbykKKyAgICAsIG1fYXVkaW9Db25z
dHJhaW50cyhhdWRpb0NvbnN0cmFpbnRzKQorICAgICwgbV92aWRlb0NvbnN0cmFpbnRzKHZpZGVv
Q29uc3RyYWludHMpCiAgICAgLCBtX2NvbnRyb2xsZXIoY29udHJvbGxlcikKICAgICAsIG1fc3Vj
Y2Vzc0NhbGxiYWNrKHN1Y2Nlc3NDYWxsYmFjaykKICAgICAsIG1fZXJyb3JDYWxsYmFjayhlcnJv
ckNhbGxiYWNrKQpAQCAtOTUsMzEgKzk5LDIwIEBAIFVzZXJNZWRpYVJlcXVlc3Q6On5Vc2VyTWVk
aWFSZXF1ZXN0KCkKIHsKIH0KIAotYm9vbCBVc2VyTWVkaWFSZXF1ZXN0OjphdWRpbygpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fYXVkaW87Ci19Ci0KLWJvb2wgVXNlck1lZGlhUmVxdWVzdDo6dmlk
ZW8oKSBjb25zdAorUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBVc2VyTWVkaWFSZXF1ZXN0
OjphdWRpb0NvbnN0cmFpbnRzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV92aWRlbzsKKyAgICBy
ZXR1cm4gbV9hdWRpb0NvbnN0cmFpbnRzOwogfQogCi1NZWRpYUNvbnN0cmFpbnRzKiBVc2VyTWVk
aWFSZXF1ZXN0OjphdWRpb0NvbnN0cmFpbnRzKCkgY29uc3QKK1Bhc3NSZWZQdHI8TWVkaWFDb25z
dHJhaW50cz4gVXNlck1lZGlhUmVxdWVzdDo6dmlkZW9Db25zdHJhaW50cygpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1fYXVkaW8uZ2V0KCk7Ci19Ci0KLU1lZGlhQ29uc3RyYWludHMqIFVzZXJNZWRp
YVJlcXVlc3Q6OnZpZGVvQ29uc3RyYWludHMoKSBjb25zdAotewotICAgIHJldHVybiBtX3ZpZGVv
LmdldCgpOworICAgIHJldHVybiBtX3ZpZGVvQ29uc3RyYWludHM7CiB9CiAKIERvY3VtZW50KiBV
c2VyTWVkaWFSZXF1ZXN0Ojpvd25lckRvY3VtZW50KCkKIHsKLSAgICBpZiAobV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0KSB7CisgICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKICAgICAg
ICAgcmV0dXJuIHRvRG9jdW1lbnQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAgICB9CiAK
ICAgICByZXR1cm4gMDsKIH0KQEAgLTE0NCwzMiArMTM3LDUyIEBAIHZvaWQgVXNlck1lZGlhUmVx
dWVzdDo6c3VjY2VlZChQYXNzUmVmUHQKIAogICAgIE1lZGlhU3RyZWFtVHJhY2tWZWN0b3IgdHJh
Y2tzID0gc3RyZWFtLT5nZXRBdWRpb1RyYWNrcygpOwogICAgIGZvciAoTWVkaWFTdHJlYW1UcmFj
a1ZlY3Rvcjo6aXRlcmF0b3IgaXRlciA9IHRyYWNrcy5iZWdpbigpOyBpdGVyICE9IHRyYWNrcy5l
bmQoKTsgKytpdGVyKQotICAgICAgICAoKml0ZXIpLT5jb21wb25lbnQoKS0+c291cmNlKCktPnNl
dENvbnN0cmFpbnRzKG1fYXVkaW8pOworICAgICAgICAoKml0ZXIpLT5jb21wb25lbnQoKS0+c291
cmNlKCktPnNldENvbnN0cmFpbnRzKG1fYXVkaW9Db25zdHJhaW50cyk7CiAKICAgICB0cmFja3Mg
PSBzdHJlYW0tPmdldFZpZGVvVHJhY2tzKCk7CiAgICAgZm9yIChNZWRpYVN0cmVhbVRyYWNrVmVj
dG9yOjppdGVyYXRvciBpdGVyID0gdHJhY2tzLmJlZ2luKCk7IGl0ZXIgIT0gdHJhY2tzLmVuZCgp
OyArK2l0ZXIpCi0gICAgICAgICgqaXRlciktPmNvbXBvbmVudCgpLT5zb3VyY2UoKS0+c2V0Q29u
c3RyYWludHMobV92aWRlbyk7CisgICAgICAgICgqaXRlciktPmNvbXBvbmVudCgpLT5zb3VyY2Uo
KS0+c2V0Q29uc3RyYWludHMobV92aWRlb0NvbnN0cmFpbnRzKTsKIAogICAgIG1fc3VjY2Vzc0Nh
bGxiYWNrLT5oYW5kbGVFdmVudChzdHJlYW0uZ2V0KCkpOwogfQogCi12b2lkIFVzZXJNZWRpYVJl
cXVlc3Q6OmZhaWwoY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikKK3ZvaWQgVXNlck1lZGlhUmVx
dWVzdDo6cGVybWlzc2lvbkZhaWx1cmUoKQogewogICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9lcnJvckNhbGxiYWNrKQotICAg
ICAgICBtX2Vycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KE5hdmlnYXRvclVzZXJNZWRpYUVycm9y
OjpjcmVhdGUoQVNDSUlMaXRlcmFsKCJQRVJNSVNTSU9OX0RFTklFRCIpLCBkZXNjcmlwdGlvbiwg
U3RyaW5nKCkpLmdldCgpKTsKKyAgICBpZiAoIW1fZXJyb3JDYWxsYmFjaykKKyAgICAgICAgcmV0
dXJuOworICAgIAorICAgIFJlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvcj4gZXJyb3IgPSBO
YXZpZ2F0b3JVc2VyTWVkaWFFcnJvcjo6Y3JlYXRlKE5hdmlnYXRvclVzZXJNZWRpYUVycm9yOjpw
ZXJtaXNzaW9uRGVuaWVkRXJyb3JOYW1lKCksIGVtcHR5U3RyaW5nKCkpOworICAgIGNhbGxPbk1h
aW5UaHJlYWQoYmluZCgmVXNlck1lZGlhUmVxdWVzdDo6Y2FsbEVycm9ySGFuZGxlciwgdGhpcywg
ZXJyb3IucmVsZWFzZSgpKSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhUmVxdWVzdDo6ZmFpbENvbnN0
cmFpbnQoY29uc3QgU3RyaW5nJiBjb25zdHJhaW50TmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlw
dGlvbikKK3ZvaWQgVXNlck1lZGlhUmVxdWVzdDo6Y29uc3RyYWludEZhaWx1cmUoY29uc3QgU3Ry
aW5nJiBjb25zdHJhaW50TmFtZSkKIHsKICAgICBBU1NFUlQoIWNvbnN0cmFpbnROYW1lLmlzRW1w
dHkoKSk7CiAgICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCiAgICAgICAgIHJldHVy
bjsKICAgICAKLSAgICBpZiAobV9lcnJvckNhbGxiYWNrKQotICAgICAgICBtX2Vycm9yQ2FsbGJh
Y2stPmhhbmRsZUV2ZW50KE5hdmlnYXRvclVzZXJNZWRpYUVycm9yOjpjcmVhdGUoQVNDSUlMaXRl
cmFsKCJDT05TVFJBSU5UX05PVF9TQVRJU0ZJRUQiKSwgZGVzY3JpcHRpb24sIGNvbnN0cmFpbnRO
YW1lKS5nZXQoKSk7CisgICAgaWYgKCFtX2Vycm9yQ2FsbGJhY2spCisgICAgICAgIHJldHVybjsK
KworICAgIFJlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvcj4gZXJyb3IgPSBOYXZpZ2F0b3JV
c2VyTWVkaWFFcnJvcjo6Y3JlYXRlKE5hdmlnYXRvclVzZXJNZWRpYUVycm9yOjpjb25zdHJhaW50
Tm90U2F0aXNmaWVkRXJyb3JOYW1lKCksIGNvbnN0cmFpbnROYW1lKTsKKyAgICBjYWxsT25NYWlu
VGhyZWFkKGJpbmQoJlVzZXJNZWRpYVJlcXVlc3Q6OmNhbGxFcnJvckhhbmRsZXIsIHRoaXMsIGVy
cm9yLnJlbGVhc2UoKSkpOworfQorCit2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNhbGxTdWNjZXNz
SGFuZGxlcihQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0pCit7CisgICAgQVNTRVJUKG1f
c3VjY2Vzc0NhbGxiYWNrKTsKKyAgICAKKyAgICBtX3N1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZl
bnQoc3RyZWFtLmdldCgpKTsKK30KKwordm9pZCBVc2VyTWVkaWFSZXF1ZXN0OjpjYWxsRXJyb3JI
YW5kbGVyKFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3I+IGVycm9yKQoreworICAg
IEFTU0VSVChlcnJvcik7CisgICAgCisgICAgbV9lcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChl
cnJvci5nZXQoKSk7CiB9CiAKIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6Y29udGV4dERlc3Ryb3ll
ZCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJl
cXVlc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuaAkocmV2aXNpb24gMTU2MDU2KQorKysgU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTQwLDcgKzQwLDYgQEAKICNpbmNsdWRlICJOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNr
LmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmgiCiAjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01
NywzMiArNTYsMjkgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVzZXJNZWRpYVJl
cXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVXNlck1lZGlhQ29udHJvbGxl
ciosIGNvbnN0IERpY3Rpb25hcnkmIG9wdGlvbnMsIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1l
ZGlhU3VjY2Vzc0NhbGxiYWNrPiwgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNh
bGxiYWNrPiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIH5Vc2VyTWVkaWFSZXF1ZXN0KCk7CiAKLSAg
ICBOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2sqIHN1Y2Nlc3NDYWxsYmFjaygpIGNv
bnN0IHsgcmV0dXJuIG1fc3VjY2Vzc0NhbGxiYWNrLmdldCgpOyB9Ci0gICAgTmF2aWdhdG9yVXNl
ck1lZGlhRXJyb3JDYWxsYmFjayogZXJyb3JDYWxsYmFjaygpIGNvbnN0IHsgcmV0dXJuIG1fZXJy
b3JDYWxsYmFjay5nZXQoKTsgfQogICAgIERvY3VtZW50KiBvd25lckRvY3VtZW50KCk7CiAKICAg
ICB2b2lkIHN0YXJ0KCk7Ci0KICAgICB2b2lkIHN1Y2NlZWQoUGFzc1JlZlB0cjxNZWRpYVN0cmVh
bURlc2NyaXB0b3I+KTsKLSAgICB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbik7
Ci0gICAgdm9pZCBmYWlsQ29uc3RyYWludChjb25zdCBTdHJpbmcmIGNvbnN0cmFpbnROYW1lLCBj
b25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKTsKLQotICAgIE1lZGlhQ29uc3RyYWludHMqIGF1ZGlv
Q29uc3RyYWludHMoKSBjb25zdDsKLSAgICBNZWRpYUNvbnN0cmFpbnRzKiB2aWRlb0NvbnN0cmFp
bnRzKCkgY29uc3Q7CisgICAgdm9pZCBwZXJtaXNzaW9uRmFpbHVyZSgpOworICAgIHZvaWQgY29u
c3RyYWludEZhaWx1cmUoY29uc3QgU3RyaW5nJiBjb25zdHJhaW50TmFtZSk7CiAKICAgICAvLyBN
ZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNsaWVudAotICAgIHZpcnR1YWwgYm9vbCBhdWRpbygpIGNv
bnN0OwotICAgIHZpcnR1YWwgYm9vbCB2aWRlbygpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBk
aWRDb21wbGV0ZVF1ZXJ5KGNvbnN0IE1lZGlhU3RyZWFtU291cmNlVmVjdG9yJiBhdWRpb1NvdXJj
ZXMsIGNvbnN0IE1lZGlhU3RyZWFtU291cmNlVmVjdG9yJiB2aWRlb1NvdXJjZXMpOworICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBhdWRpb0NvbnN0cmFpbnRzKCkgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IHZp
ZGVvQ29uc3RyYWludHMoKSBjb25zdCAgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZENv
bXBsZXRlUXVlcnkoY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VWZWN0b3ImIGF1ZGlvU291cmNlcywg
Y29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VWZWN0b3ImIHZpZGVvU291cmNlcykgIE9WRVJSSURFOwog
CiAgICAgLy8gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIKICAgICB2aXJ0dWFsIHZvaWQgY29u
dGV4dERlc3Ryb3llZCgpOwogCiBwcml2YXRlOgotICAgIFVzZXJNZWRpYVJlcXVlc3QoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFVzZXJNZWRpYUNvbnRyb2xsZXIqLCBQYXNzUmVmUHRyPE1lZGlh
Q29uc3RyYWludHNJbXBsPiBhdWRpbywgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4g
dmlkZW8sIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrPiwgUGFz
c1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPik7CisgICAgVXNlck1lZGlh
UmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVXNlck1lZGlhQ29udHJvbGxlciosIFBh
c3NSZWZQdHI8TWVkaWFDb25zdHJhaW50c0ltcGw+IGF1ZGlvQ29uc3RyYWludHMsIFBhc3NSZWZQ
dHI8TWVkaWFDb25zdHJhaW50c0ltcGw+IHZpZGVvQ29uc3RyYWludHMsIFBhc3NSZWZQdHI8TmF2
aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrPiwgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2Vy
TWVkaWFFcnJvckNhbGxiYWNrPik7CisKKyAgICB2b2lkIGNhbGxTdWNjZXNzSGFuZGxlcihQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtPik7CisgICAgdm9pZCBjYWxsRXJyb3JIYW5kbGVyKFBhc3NSZWZQ
dHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3I+KTsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnN0cmFp
bnRzSW1wbD4gbV9hdWRpbzsKLSAgICBSZWZQdHI8TWVkaWFDb25zdHJhaW50c0ltcGw+IG1fdmlk
ZW87CisgICAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHNJbXBsPiBtX2F1ZGlvQ29uc3RyYWludHM7
CisgICAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHNJbXBsPiBtX3ZpZGVvQ29uc3RyYWludHM7CiAK
ICAgICBVc2VyTWVkaWFDb250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDE1NjA1NikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksNyBAQAogCQkwNjZDNzczMTBBQjYwM0ZE
MDAyMzhDQzQgLyogUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NkM3NzJGMEFCNjAzRkQwMDIzOENDNCAvKiBS
ZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oICovOyB9OwogCQkwNkU4MUVENzBBQjVENUU5MDBDODc4
MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNkU4MUVENjBBQjVENUU5MDBDODc4MzcgLyogTG9j
YWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmggKi87IH07CiAJCTA2RTgxRUVDMEFCNURBOTcwMEM4
NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNkU4MUVFQjBBQjVEQTk3MDBDODc4MzcgLyog
TG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tICovOyB9OworCQkwNzAzMjdGODE3RUE0QUFG
MDBDRTEzMTggLyogTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwMzI3RjcxN0VBNEFBRjAwQ0UxMzE4IC8q
IE5hdmlnYXRvclVzZXJNZWRpYUVycm9yLmNwcCAqLzsgfTsKIAkJMDcwMzM0RDMxNDU5RkZBRDAw
OEQ4RDQ1IC8qIFRyYWNrRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDcwMzM0RDAxNDU5RkZBQzAwOEQ4RDQ1IC8qIFRyYWNrRXZlbnQuY3Bw
ICovOyB9OwogCQkwNzAzMzRENzE0NTlGRkQ1MDA4RDhENDUgLyogVHJhY2tCYXNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzAzMzRENjE0NTlGRkQ1
MDA4RDhENDUgLyogVHJhY2tCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMDcwMzM0RDkxNDVBMDA2RjAwOEQ4RDQ1IC8qIFRyYWNrQmFzZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzAzMzRE
ODE0NUEwMDZGMDA4RDhENDUgLyogVHJhY2tCYXNlLmNwcCAqLzsgfTsKQEAgLTY0NDAsNiArNjQ0
MSw3IEBACiAJCTA2NkM3NzJGMEFCNjAzRkQwMDIzOENDNCAvKiBSZW5kZXJGaWxlVXBsb2FkQ29u
dHJvbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDZFODFFRDYwQUI1RDVF
OTAwQzg3ODM3IC8qIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDZFODFFRUIwQUI1REE5NzAwQzg3ODM3IC8qIExvY2Fs
Q3VycmVudEdyYXBoaWNzQ29udGV4dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTA3MDMyN0Y3MTdFQTRBQUYwMENFMTMxOCAvKiBOYXZpZ2F0b3JVc2Vy
TWVkaWFFcnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYXZp
Z2F0b3JVc2VyTWVkaWFFcnJvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3
MDMzNEQwMTQ1OUZGQUMwMDhEOEQ0NSAvKiBUcmFja0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRyYWNrRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwNzAzMzREMTE0NTlGRkFDMDA4RDhENDUgLyogVHJhY2tFdmVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUcmFja0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3MDMzNEQyMTQ1OUZGQUMwMDhEOEQ0NSAvKiBUcmFja0V2ZW50Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBUcmFja0V2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTEzMzIzLDYgKzEzMzI1LDcgQEAKIAkJCQkwNzIyMUI1QjE3Q0VDMzI3
MDA4NDhFNTEgLyogTmF2aWdhdG9yTWVkaWFTdHJlYW0uaCAqLywKIAkJCQkwNzIyMUI1QzE3Q0VD
MzI3MDA4NDhFNTEgLyogTmF2aWdhdG9yTWVkaWFTdHJlYW0uaWRsICovLAogCQkJCTA3MjIxQjVE
MTdDRUMzMjcwMDg0OEU1MSAvKiBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5oICovLAorCQkJCTA3
MDMyN0Y3MTdFQTRBQUYwMENFMTMxOCAvKiBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5jcHAgKi8s
CiAJCQkJMDcyMjFCNUUxN0NFQzMyNzAwODQ4RTUxIC8qIE5hdmlnYXRvclVzZXJNZWRpYUVycm9y
LmlkbCAqLywKIAkJCQkwNzIyMUI1RjE3Q0VDMzI3MDA4NDhFNTEgLyogTmF2aWdhdG9yVXNlck1l
ZGlhRXJyb3JDYWxsYmFjay5oICovLAogCQkJCTA3MjIxQjYwMTdDRUMzMjcwMDg0OEU1MSAvKiBO
YXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmlkbCAqLywKQEAgLTI2NjU4LDYgKzI2NjYx
LDcgQEAKIAkJCQk0NTBDRUJGMDE1MDczQkJFMDAyQkIxNDkgLyogTGFiZWxhYmxlRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNDU2RkEyNjExQUQ0QTgzMDAyMEI0MjAgLyogTGFiZWxz
Tm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE4NzcyRjExMjZFMjYyOTAwM0RENTg2
IC8qIExhbmd1YWdlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA3MDMyN0Y4MTdFQTRBQUYwMENF
MTMxOCAvKiBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
MzUyMDg0NTA5QkQ0M0I5MDBGMjAzOEQgLyogTGFuZ3VhZ2UubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkyOTE3QjU2MTE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyOTE3QjU2NjE0NzM0OTk1MDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNj
aGVkdWxlck1hYy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9E
T01FcnJvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9ET01FcnJvci5oCShy
ZXZpc2lvbiAxNTYwNTYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRE9NRXJyb3IuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDEsOSArNDEsMTAgQEAgcHVibGljOgogCiAgICAgY29uc3QgU3RyaW5nJiBu
YW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAg
ICAgZXhwbGljaXQgRE9NRXJyb3IoY29uc3QgU3RyaW5nJiBuYW1lKTsKIAorcHJpdmF0ZToKICAg
ICBjb25zdCBTdHJpbmcgbV9uYW1lOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2VzUXVlcnlDbGllbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJj
ZXNRdWVyeUNsaWVudC5oCShyZXZpc2lvbiAxNTYwNTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNsaWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSwxNSArMzUsMTkgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAj
aW5jbHVkZSAiTWVkaWFTdHJlYW1Tb3VyY2UuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Y2xhc3MgTWVkaWFDb25zdHJhaW50czsKKwogY2xhc3MgTWVkaWFTdHJlYW1Tb3VyY2VzUXVlcnlD
bGllbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNsaWVudD4g
ewogcHVibGljOgogICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtU291cmNlc1F1ZXJ5Q2xpZW50KCkg
eyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgYXVkaW8oKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBi
b29sIHZpZGVvKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0
cmFpbnRzPiBhdWRpb0NvbnN0cmFpbnRzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiB2aWRlb0NvbnN0cmFpbnRzKCkgY29uc3QgPSAwOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRlUXVlcnkoY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VW
ZWN0b3ImIGF1ZGlvU291cmNlcywgY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VWZWN0b3ImIHZpZGVv
U291cmNlcykgPSAwOwogfTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NjA3OCkKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEzLTA5LTE4
ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlh
U3RyZWFtIEFQSTogdXBkYXRlIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yIG9iamVjdCB0byBtYXRj
aCBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjE1ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGZhc3QvbWVkaWFzdHJlYW0vZ2V0dXNlcm1lZGlhLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL2dldHVzZXJtZWRpYS5odG1sOgorCiAyMDEzLTA5LTE4ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIExpb24gcmViYXNlbGluZSBhZnRl
ciByMTU1MjUzLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXR1c2VybWVk
aWEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vZ2V0dXNlcm1lZGlhLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTU2MDU2KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXR1c2VybWVkaWEtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0yMiw2ICsyMiw4IEBAIFBBU1Mgc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVu
Z3RoIGlzIDEKIFBBU1Mgc3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoIGlzIDEKIFBBU1Mg
bmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7YXVkaW86e21hbmRhdG9yeTp7J3ZhbGlkX2J1
dF91bnN1cHBvcnRlZF8xJzowfSwgb3B0aW9uYWw6W119LCB2aWRlbzp0cnVlfSwgZ290U3RyZWFt
SW5FcnJvciwgZXJyb3IxKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCiBQQVNTIEVycm9yIGNh
bGxiYWNrIGNhbGxlZC4KK1BBU1MgZXJyb3JBcmcubmFtZSBpcyAiQ29uc3RyYWludE5vdFNhdGlz
ZmllZEVycm9yIgorUEFTUyBlcnJvckFyZy5jb25zdHJhaW50TmFtZSBpcyAidmFsaWRfYnV0X3Vu
c3VwcG9ydGVkXzEiCiBQQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOntt
YW5kYXRvcnk6eyd2YWxpZF9hbmRfc3VwcG9ydGVkXzEnOjF9LCBvcHRpb25hbDpbeyd2YWxpZF9i
dXRfdW5zdXBwb3J0ZWRfMSc6MH1dfSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTUsIGVycm9yKTsg
ZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCiBQQVNTIFN0cmVhbSBnZW5lcmF0ZWQuCiBQQVNTIHN0
cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyAxCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL2dldHVzZXJtZWRpYS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vZ2V0dXNlcm1lZGlhLmh0bWwJKHJldmlzaW9uIDE1NjA1NikKKysr
IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0dXNlcm1lZGlhLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEwLDYgKzEwLDcgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB3ZWJraXRHZXRVc2Vy
TWVkaWEuIik7CiAKIHZhciBzdHJlYW07Cit2YXIgZXJyb3JBcmc7CiAKIGZ1bmN0aW9uIGVycm9y
KCkgewogICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGNhbGxlZC4nKTsKQEAgLTI5LDgg
KzMwLDExIEBAIGZ1bmN0aW9uIGdvdFN0cmVhbTUocykgewogICAgIGZpbmlzaEpTVGVzdCgpOwog
fQogCi1mdW5jdGlvbiBlcnJvcjEoKSB7CitmdW5jdGlvbiBlcnJvcjEoZSkgeworICAgIGVycm9y
QXJnID0gZTsKICAgICB0ZXN0UGFzc2VkKCdFcnJvciBjYWxsYmFjayBjYWxsZWQuJyk7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlcnJvckFyZy5uYW1lJywgJ0NvbnN0cmFpbnROb3RTYXRp
c2ZpZWRFcnJvcicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXJyb3JBcmcuY29uc3Ry
YWludE5hbWUnLCAndmFsaWRfYnV0X3Vuc3VwcG9ydGVkXzEnKTsKIAogICAgIHNob3VsZE5vdFRo
cm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp7bWFuZGF0b3J5OnsndmFs
aWRfYW5kX3N1cHBvcnRlZF8xJzoxfSwgb3B0aW9uYWw6W3sndmFsaWRfYnV0X3Vuc3VwcG9ydGVk
XzEnOjB9XX0sIHZpZGVvOnRydWV9LCBnb3RTdHJlYW01LCBlcnJvcik7Iik7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212064</attachid>
            <date>2013-09-19 07:02:51 -0700</date>
            <delta_ts>2013-09-19 12:06:29 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>navigaor_user_media_error_5.txt</filename>
            <type>text/plain</type>
            <size>25131</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NjA3OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDEzLTA5LTE4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQ
STogdXBkYXRlIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yIG9iamVjdCB0byBtYXRjaCBzcGVjCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjE1ODQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVz
dHMsIHVwZGF0ZWQgZ2V0dXNlcm1lZGlhLmh0bWwuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDogQWRkIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yLmNwcC4KKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOiBEaXR0by4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdh
dG9yVXNlck1lZGlhRXJyb3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yLmg6IERlcml2ZSBmcm9tIERPTUVycm9yLCBnZXQg
cmlkIG9mICJtZXNzYWdlIiBhdHRyaWJ1dGUuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5pZGw6IERpdHRvLgorCisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVz
ZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSk6IEFTQ0lJTGl0ZXJhbCAtPiBBdG9taWNTdHJpbmcuIFJl
bmFtZSBjb25zdHJhaW50IHBhcmFtZXRlcnMuCisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFS
ZXF1ZXN0OjpVc2VyTWVkaWFSZXF1ZXN0KTogUmVuYW1lIGNvbnN0cmFpbnQgcGFyYW1ldGVycy4K
KyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmF1ZGlvQ29uc3RyYWludHMpOiBS
ZXR1cm4gUGFzc1JlZlB0cjw+IGluc3RlYWQgb2YgcmF3IHB0ci4KKyAgICAgICAgKFdlYkNvcmU6
OlVzZXJNZWRpYVJlcXVlc3Q6OnZpZGVvQ29uc3RyYWludHMpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6Om93bmVyRG9jdW1lbnQpOiBDbGVhbiB1cCBzdHlsZS4K
KyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OnN1Y2NlZWQpOiAKKyAgICAgICAg
KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OnBlcm1pc3Npb25GYWlsdXJlKTogUmVuYW1lZCBm
cm9tIGZhaWwuCisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Ojpjb25zdHJhaW50
RmFpbHVyZSk6ICBSZW5hbWVkIGZyb20gZmFpbENvbnN0cmFpbnQuCisgICAgICAgIChXZWJDb3Jl
OjpVc2VyTWVkaWFSZXF1ZXN0OjpjYWxsU3VjY2Vzc0hhbmRsZXIpOiBOZXcuCisgICAgICAgIChX
ZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjpjYWxsRXJyb3JIYW5kbGVyKTogTmV3LgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oOgorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgTmF2aWdhdG9yVXNlck1lZGlh
RXJyb3IuY3BwCisKKyAgICAgICAgKiBkb20vRE9NRXJyb3IuaDogTWFrZSBjb25zdHJ1Y3RvciBw
cm90ZWN0ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNv
dXJjZXNRdWVyeUNsaWVudC5oOiBNYWtlIGNvbnN0cmFpbnRzIGF2YWlsYWJsZS4KKwogMjAxMy0w
OS0xOCAgQmVtIEpvbmVzLUJleSAgPGJqb25lc2JlQGFkb2JlLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OIChyMTU1ODU0IC0gcjE1NTk2NykgYmxvY2sgd2l0aCBtYXJnaW4tbGVmdCBhZGphY2Vu
dCB0byBmbG9hdGVkIGJsb2NrIGNhdXNlcyB0ZXh0IG9mIHN1YnNlcXVlbnQgYmxvY2tzIHRvIG92
ZXJsYXAgdGhlIGZsb2F0ZWQgYmxvY2suCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNp
b24gMTU2MDU2KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTg0Niw2ICs4NDYsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuY3BwCiAgICAgTW9kdWxlcy9tZWRp
YXN0cmVhbS9OYXZpZ2F0b3JNZWRpYVN0cmVhbS5jcHAKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFt
L05hdmlnYXRvclVzZXJNZWRpYUVycm9yLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RFRNRlNlbmRlci5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZUb25lQ2hhbmdl
RXZlbnQuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTU2MDU2KQorKysgU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMTk4NSw2
ICsxOTg1LDcgQEAgd2ViY29yZV9tb2R1bGVzX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmggXAog
CVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0u
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlh
U3RyZWFtLmggXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9y
VXNlck1lZGlhRXJyb3IuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L05hdmlnYXRvclVzZXJNZWRpYUVycm9yLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFj
ay5oIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9y
VXNlck1lZGlhRXJyb3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuY3BwCShyZXZpc2lvbiAwKQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk5hdmln
YXRvclVzZXJNZWRpYUVycm9yLmgiCisKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjb25zdCBBdG9taWNTdHJpbmcmIE5hdmlnYXRvclVz
ZXJNZWRpYUVycm9yOjpwZXJtaXNzaW9uRGVuaWVkRXJyb3JOYW1lKCkKK3sKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBwZXJtaXNzaW9uRGVuaWVkKCJQZXJtaXNzaW9u
RGVuaWVkRXJyb3IiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBy
ZXR1cm4gcGVybWlzc2lvbkRlbmllZDsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBOYXZpZ2F0
b3JVc2VyTWVkaWFFcnJvcjo6Y29uc3RyYWludE5vdFNhdGlzZmllZEVycm9yTmFtZSgpCit7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gY29uc3RyYWludE5vdFNhdGlz
ZmllZCgiQ29uc3RyYWludE5vdFNhdGlzZmllZEVycm9yIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgcmV0dXJuIGNvbnN0cmFpbnROb3RTYXRpc2ZpZWQ7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0p
CisKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNl
ck1lZGlhRXJyb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yLmgJKHJldmlzaW9uIDE1NjA1NikKKysrIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3Iu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI1LDYgKzI2LDcgQEAKICNpZm5kZWYgTmF2aWdhdG9yVXNlck1lZGlhRXJy
b3JfaAogI2RlZmluZSBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvcl9oCiAKKyNpbmNsdWRlICJET01F
cnJvci5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KIApAQCAtMzIsMjkgKzM0LDI3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IgOiBwdWJsaWMgUmVmQ291bnRlZDxOYXZpZ2F0
b3JVc2VyTWVkaWFFcnJvcj4geworY2xhc3MgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IgOiBwdWJs
aWMgRE9NRXJyb3IgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5hdmlnYXRvclVz
ZXJNZWRpYUVycm9yPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgY29uc3RyYWludE5hbWUpCisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3I+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgY29uc3RyYWludE5hbWUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IE5hdmlnYXRvclVzZXJNZWRpYUVycm9yKG5hbWUsIG1lc3NhZ2UsIGNvbnN0cmFpbnRO
YW1lKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTmF2aWdhdG9yVXNlck1lZGlhRXJy
b3IobmFtZSwgY29uc3RyYWludE5hbWUpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5OYXZpZ2F0
b3JVc2VyTWVkaWFFcnJvcigpIHsgfQogCi0gICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9uYW1lOyB9Ci0gICAgY29uc3QgU3RyaW5nJiBtZXNzYWdlKCkgY29uc3QgeyBy
ZXR1cm4gbV9tZXNzYWdlOyB9CiAgICAgY29uc3QgU3RyaW5nJiBjb25zdHJhaW50TmFtZSgpIGNv
bnN0IHsgcmV0dXJuIG1fY29uc3RyYWludE5hbWU7IH0KIAorICAgIHN0YXRpYyBjb25zdCBBdG9t
aWNTdHJpbmcmIHBlcm1pc3Npb25EZW5pZWRFcnJvck5hbWUoKTsKKyAgICBzdGF0aWMgY29uc3Qg
QXRvbWljU3RyaW5nJiBjb25zdHJhaW50Tm90U2F0aXNmaWVkRXJyb3JOYW1lKCk7CisKIHByaXZh
dGU6Ci0gICAgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgY29uc3RyYWludE5hbWUpCi0gICAgICAg
IDogbV9uYW1lKG5hbWUpCi0gICAgICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCisgICAgTmF2aWdh
dG9yVXNlck1lZGlhRXJyb3IoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGNvbnN0
cmFpbnROYW1lKQorICAgICAgICA6IERPTUVycm9yKG5hbWUpCiAgICAgICAgICwgbV9jb25zdHJh
aW50TmFtZShjb25zdHJhaW50TmFtZSkKICAgICB7CiAgICAgfQogCi0gICAgU3RyaW5nIG1fbmFt
ZTsKLSAgICBTdHJpbmcgbV9tZXNzYWdlOwogICAgIFN0cmluZyBtX2NvbnN0cmFpbnROYW1lOwog
fTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JV
c2VyTWVkaWFFcnJvci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5pZGwJKHJldmlzaW9uIDE1NjA1NikK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlh
RXJyb3IuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw5ICsyNSw3IEBACiBbCiAgICAgTm9JbnRl
cmZhY2VPYmplY3QsCiAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCi1dIGludGVyZmFjZSBO
YXZpZ2F0b3JVc2VyTWVkaWFFcnJvciB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyBuYW1lOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbWVzc2FnZTsKK10gaW50
ZXJmYWNlIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yIDogRE9NRXJyb3IgewogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgY29uc3RyYWludE5hbWU7CiB9OwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5jcHAJKHJldmlzaW9uIDE1NjA1NikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDgg
QEAKICNpbmNsdWRlICJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJTcGFjZVNw
bGl0U3RyaW5nLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ29udHJvbGxlci5oIgorI2luY2x1ZGUg
PHd0Zi9GdW5jdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC02NywyNCArNjksMjYgQEAgc3RhdGljIFBhc3NSZWZQdHI8TWVk
aWFDb25zdHJhaW50c0ltcGw+IAogCiBQYXNzUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IFVzZXJN
ZWRpYVJlcXVlc3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBVc2Vy
TWVkaWFDb250cm9sbGVyKiBjb250cm9sbGVyLCBjb25zdCBEaWN0aW9uYXJ5JiBvcHRpb25zLCBQ
YXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4gc3VjY2Vzc0NhbGxi
YWNrLCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2s+IGVycm9yQ2Fs
bGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIFJlZlB0cjxNZWRpYUNvbnN0cmFpbnRz
SW1wbD4gYXVkaW8gPSBwYXJzZU9wdGlvbnMob3B0aW9ucywgQVNDSUlMaXRlcmFsKCJhdWRpbyIp
LCBlYyk7CisgICAgQVNTRVJUKHN1Y2Nlc3NDYWxsYmFjayk7CisKKyAgICBSZWZQdHI8TWVkaWFD
b25zdHJhaW50c0ltcGw+IGF1ZGlvQ29uc3RyYWludHMgPSBwYXJzZU9wdGlvbnMob3B0aW9ucywg
QXRvbWljU3RyaW5nKCJhdWRpbyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
LCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFJlZlB0cjxNZWRp
YUNvbnN0cmFpbnRzSW1wbD4gdmlkZW8gPSBwYXJzZU9wdGlvbnMob3B0aW9ucywgQVNDSUlMaXRl
cmFsKCJ2aWRlbyIpLCBlYyk7CisgICAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHNJbXBsPiB2aWRl
b0NvbnN0cmFpbnRzID0gcGFyc2VPcHRpb25zKG9wdGlvbnMsIEF0b21pY1N0cmluZygidmlkZW8i
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgZWMpOwogICAgIGlmIChlYykK
ICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpZiAoIWF1ZGlvICYmICF2aWRlbykKKyAgICBpZiAo
IWF1ZGlvQ29uc3RyYWludHMgJiYgIXZpZGVvQ29uc3RyYWludHMpCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBVc2VyTWVkaWFSZXF1ZXN0KGNvbnRleHQsIGNv
bnRyb2xsZXIsIGF1ZGlvLnJlbGVhc2UoKSwgdmlkZW8ucmVsZWFzZSgpLCBzdWNjZXNzQ2FsbGJh
Y2ssIGVycm9yQ2FsbGJhY2spKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFVzZXJNZWRpYVJl
cXVlc3QoY29udGV4dCwgY29udHJvbGxlciwgYXVkaW9Db25zdHJhaW50cy5yZWxlYXNlKCksIHZp
ZGVvQ29uc3RyYWludHMucmVsZWFzZSgpLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2sp
KTsKIH0KIAotVXNlck1lZGlhUmVxdWVzdDo6VXNlck1lZGlhUmVxdWVzdChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBVc2VyTWVkaWFDb250cm9sbGVyKiBjb250cm9sbGVyLCBQYXNz
UmVmUHRyPE1lZGlhQ29uc3RyYWludHNJbXBsPiBhdWRpbywgUGFzc1JlZlB0cjxNZWRpYUNvbnN0
cmFpbnRzSW1wbD4gdmlkZW8sIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0Nh
bGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJy
b3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK1VzZXJNZWRpYVJlcXVlc3Q6OlVzZXJNZWRpYVJl
cXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVXNlck1lZGlhQ29udHJvbGxl
ciogY29udHJvbGxlciwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4gYXVkaW9Db25z
dHJhaW50cywgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4gdmlkZW9Db25zdHJhaW50
cywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s+IHN1Y2Nlc3ND
YWxsYmFjaywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPiBlcnJv
ckNhbGxiYWNrKQogICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoY29udGV4dCkKLSAg
ICAsIG1fYXVkaW8oYXVkaW8pCi0gICAgLCBtX3ZpZGVvKHZpZGVvKQorICAgICwgbV9hdWRpb0Nv
bnN0cmFpbnRzKGF1ZGlvQ29uc3RyYWludHMpCisgICAgLCBtX3ZpZGVvQ29uc3RyYWludHModmlk
ZW9Db25zdHJhaW50cykKICAgICAsIG1fY29udHJvbGxlcihjb250cm9sbGVyKQogICAgICwgbV9z
dWNjZXNzQ2FsbGJhY2soc3VjY2Vzc0NhbGxiYWNrKQogICAgICwgbV9lcnJvckNhbGxiYWNrKGVy
cm9yQ2FsbGJhY2spCkBAIC05NSwzMSArOTksMjAgQEAgVXNlck1lZGlhUmVxdWVzdDo6flVzZXJN
ZWRpYVJlcXVlc3QoKQogewogfQogCi1ib29sIFVzZXJNZWRpYVJlcXVlc3Q6OmF1ZGlvKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gbV9hdWRpbzsKLX0KLQotYm9vbCBVc2VyTWVkaWFSZXF1ZXN0Ojp2
aWRlbygpIGNvbnN0CitQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IFVzZXJNZWRpYVJlcXVl
c3Q6OmF1ZGlvQ29uc3RyYWludHMoKSBjb25zdAogewotICAgIHJldHVybiBtX3ZpZGVvOworICAg
IHJldHVybiBtX2F1ZGlvQ29uc3RyYWludHM7CiB9CiAKLU1lZGlhQ29uc3RyYWludHMqIFVzZXJN
ZWRpYVJlcXVlc3Q6OmF1ZGlvQ29uc3RyYWludHMoKSBjb25zdAorUGFzc1JlZlB0cjxNZWRpYUNv
bnN0cmFpbnRzPiBVc2VyTWVkaWFSZXF1ZXN0Ojp2aWRlb0NvbnN0cmFpbnRzKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gbV9hdWRpby5nZXQoKTsKLX0KLQotTWVkaWFDb25zdHJhaW50cyogVXNlck1l
ZGlhUmVxdWVzdDo6dmlkZW9Db25zdHJhaW50cygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdmlk
ZW8uZ2V0KCk7CisgICAgcmV0dXJuIG1fdmlkZW9Db25zdHJhaW50czsKIH0KIAogRG9jdW1lbnQq
IFVzZXJNZWRpYVJlcXVlc3Q6Om93bmVyRG9jdW1lbnQoKQogewotICAgIGlmIChtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpIHsKKyAgICBpZiAobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAg
ICAgICByZXR1cm4gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwotICAgIH0K
IAogICAgIHJldHVybiAwOwogfQpAQCAtMTQ0LDMyICsxMzcsNTIgQEAgdm9pZCBVc2VyTWVkaWFS
ZXF1ZXN0OjpzdWNjZWVkKFBhc3NSZWZQdAogCiAgICAgTWVkaWFTdHJlYW1UcmFja1ZlY3RvciB0
cmFja3MgPSBzdHJlYW0tPmdldEF1ZGlvVHJhY2tzKCk7CiAgICAgZm9yIChNZWRpYVN0cmVhbVRy
YWNrVmVjdG9yOjppdGVyYXRvciBpdGVyID0gdHJhY2tzLmJlZ2luKCk7IGl0ZXIgIT0gdHJhY2tz
LmVuZCgpOyArK2l0ZXIpCi0gICAgICAgICgqaXRlciktPmNvbXBvbmVudCgpLT5zb3VyY2UoKS0+
c2V0Q29uc3RyYWludHMobV9hdWRpbyk7CisgICAgICAgICgqaXRlciktPmNvbXBvbmVudCgpLT5z
b3VyY2UoKS0+c2V0Q29uc3RyYWludHMobV9hdWRpb0NvbnN0cmFpbnRzKTsKIAogICAgIHRyYWNr
cyA9IHN0cmVhbS0+Z2V0VmlkZW9UcmFja3MoKTsKICAgICBmb3IgKE1lZGlhU3RyZWFtVHJhY2tW
ZWN0b3I6Oml0ZXJhdG9yIGl0ZXIgPSB0cmFja3MuYmVnaW4oKTsgaXRlciAhPSB0cmFja3MuZW5k
KCk7ICsraXRlcikKLSAgICAgICAgKCppdGVyKS0+Y29tcG9uZW50KCktPnNvdXJjZSgpLT5zZXRD
b25zdHJhaW50cyhtX3ZpZGVvKTsKKyAgICAgICAgKCppdGVyKS0+Y29tcG9uZW50KCktPnNvdXJj
ZSgpLT5zZXRDb25zdHJhaW50cyhtX3ZpZGVvQ29uc3RyYWludHMpOwogCiAgICAgbV9zdWNjZXNz
Q2FsbGJhY2stPmhhbmRsZUV2ZW50KHN0cmVhbS5nZXQoKSk7CiB9CiAKLXZvaWQgVXNlck1lZGlh
UmVxdWVzdDo6ZmFpbChjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKQordm9pZCBVc2VyTWVkaWFS
ZXF1ZXN0OjpwZXJtaXNzaW9uRmFpbHVyZSgpCiB7CiAgICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2Vycm9yQ2FsbGJhY2spCi0g
ICAgICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoTmF2aWdhdG9yVXNlck1lZGlhRXJy
b3I6OmNyZWF0ZShBU0NJSUxpdGVyYWwoIlBFUk1JU1NJT05fREVOSUVEIiksIGRlc2NyaXB0aW9u
LCBTdHJpbmcoKSkuZ2V0KCkpOworICAgIGlmICghbV9lcnJvckNhbGxiYWNrKQorICAgICAgICBy
ZXR1cm47CisgICAgCisgICAgUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yPiBlcnJvciA9
IE5hdmlnYXRvclVzZXJNZWRpYUVycm9yOjpjcmVhdGUoTmF2aWdhdG9yVXNlck1lZGlhRXJyb3I6
OnBlcm1pc3Npb25EZW5pZWRFcnJvck5hbWUoKSwgZW1wdHlTdHJpbmcoKSk7CisgICAgY2FsbE9u
TWFpblRocmVhZChiaW5kKCZVc2VyTWVkaWFSZXF1ZXN0OjpjYWxsRXJyb3JIYW5kbGVyLCB0aGlz
LCBlcnJvci5yZWxlYXNlKCkpKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFSZXF1ZXN0OjpmYWlsQ29u
c3RyYWludChjb25zdCBTdHJpbmcmIGNvbnN0cmFpbnROYW1lLCBjb25zdCBTdHJpbmcmIGRlc2Ny
aXB0aW9uKQordm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojpjb25zdHJhaW50RmFpbHVyZShjb25zdCBT
dHJpbmcmIGNvbnN0cmFpbnROYW1lKQogewogICAgIEFTU0VSVCghY29uc3RyYWludE5hbWUuaXNF
bXB0eSgpKTsKICAgICBpZiAoIW1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKICAgICAgICAgcmV0
dXJuOwogICAgIAotICAgIGlmIChtX2Vycm9yQ2FsbGJhY2spCi0gICAgICAgIG1fZXJyb3JDYWxs
YmFjay0+aGFuZGxlRXZlbnQoTmF2aWdhdG9yVXNlck1lZGlhRXJyb3I6OmNyZWF0ZShBU0NJSUxp
dGVyYWwoIkNPTlNUUkFJTlRfTk9UX1NBVElTRklFRCIpLCBkZXNjcmlwdGlvbiwgY29uc3RyYWlu
dE5hbWUpLmdldCgpKTsKKyAgICBpZiAoIW1fZXJyb3JDYWxsYmFjaykKKyAgICAgICAgcmV0dXJu
OworCisgICAgUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yPiBlcnJvciA9IE5hdmlnYXRv
clVzZXJNZWRpYUVycm9yOjpjcmVhdGUoTmF2aWdhdG9yVXNlck1lZGlhRXJyb3I6OmNvbnN0cmFp
bnROb3RTYXRpc2ZpZWRFcnJvck5hbWUoKSwgY29uc3RyYWludE5hbWUpOworICAgIGNhbGxPbk1h
aW5UaHJlYWQoYmluZCgmVXNlck1lZGlhUmVxdWVzdDo6Y2FsbEVycm9ySGFuZGxlciwgdGhpcywg
ZXJyb3IucmVsZWFzZSgpKSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUmVxdWVzdDo6Y2FsbFN1Y2Nl
c3NIYW5kbGVyKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IHN0cmVhbSkKK3sKKyAgICBBU1NFUlQo
bV9zdWNjZXNzQ2FsbGJhY2spOworICAgIAorICAgIG1fc3VjY2Vzc0NhbGxiYWNrLT5oYW5kbGVF
dmVudChzdHJlYW0uZ2V0KCkpOworfQorCit2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNhbGxFcnJv
ckhhbmRsZXIoUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvcj4gZXJyb3IpCit7Cisg
ICAgQVNTRVJUKGVycm9yKTsKKyAgICAKKyAgICBtX2Vycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50
KGVycm9yLmdldCgpKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojpjb250ZXh0RGVzdHJv
eWVkKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
UmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vVXNlck1lZGlhUmVxdWVzdC5oCShyZXZpc2lvbiAxNTYwNTYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAkod29ya2luZyBjb3B5KQpA
QCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIk5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJh
Y2suaCIKICNpbmNsdWRlICJOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaCIKICNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTU3LDMyICs1NiwyOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8VXNlck1lZGlh
UmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBVc2VyTWVkaWFDb250cm9s
bGVyKiwgY29uc3QgRGljdGlvbmFyeSYgb3B0aW9ucywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2Vy
TWVkaWFTdWNjZXNzQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9y
Q2FsbGJhY2s+LCBFeGNlcHRpb25Db2RlJik7CiAgICAgflVzZXJNZWRpYVJlcXVlc3QoKTsKIAot
ICAgIE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjayogc3VjY2Vzc0NhbGxiYWNrKCkg
Y29uc3QgeyByZXR1cm4gbV9zdWNjZXNzQ2FsbGJhY2suZ2V0KCk7IH0KLSAgICBOYXZpZ2F0b3JV
c2VyTWVkaWFFcnJvckNhbGxiYWNrKiBlcnJvckNhbGxiYWNrKCkgY29uc3QgeyByZXR1cm4gbV9l
cnJvckNhbGxiYWNrLmdldCgpOyB9CiAgICAgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQoKTsKIAog
ICAgIHZvaWQgc3RhcnQoKTsKLQogICAgIHZvaWQgc3VjY2VlZChQYXNzUmVmUHRyPE1lZGlhU3Ry
ZWFtRGVzY3JpcHRvcj4pOwotICAgIHZvaWQgZmFpbChjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9u
KTsKLSAgICB2b2lkIGZhaWxDb25zdHJhaW50KGNvbnN0IFN0cmluZyYgY29uc3RyYWludE5hbWUs
IGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pOwotCi0gICAgTWVkaWFDb25zdHJhaW50cyogYXVk
aW9Db25zdHJhaW50cygpIGNvbnN0OwotICAgIE1lZGlhQ29uc3RyYWludHMqIHZpZGVvQ29uc3Ry
YWludHMoKSBjb25zdDsKKyAgICB2b2lkIHBlcm1pc3Npb25GYWlsdXJlKCk7CisgICAgdm9pZCBj
b25zdHJhaW50RmFpbHVyZShjb25zdCBTdHJpbmcmIGNvbnN0cmFpbnROYW1lKTsKIAogICAgIC8v
IE1lZGlhU3RyZWFtU291cmNlc1F1ZXJ5Q2xpZW50Ci0gICAgdmlydHVhbCBib29sIGF1ZGlvKCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCBib29sIHZpZGVvKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZENvbXBsZXRlUXVlcnkoY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VWZWN0b3ImIGF1ZGlvU291
cmNlcywgY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VWZWN0b3ImIHZpZGVvU291cmNlcyk7CisgICAg
dmlydHVhbCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGF1ZGlvQ29uc3RyYWludHMoKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4g
dmlkZW9Db25zdHJhaW50cygpIGNvbnN0ICBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
Q29tcGxldGVRdWVyeShjb25zdCBNZWRpYVN0cmVhbVNvdXJjZVZlY3RvciYgYXVkaW9Tb3VyY2Vz
LCBjb25zdCBNZWRpYVN0cmVhbVNvdXJjZVZlY3RvciYgdmlkZW9Tb3VyY2VzKSAgT1ZFUlJJREU7
CiAKICAgICAvLyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcgogICAgIHZpcnR1YWwgdm9pZCBj
b250ZXh0RGVzdHJveWVkKCk7CiAKIHByaXZhdGU6Ci0gICAgVXNlck1lZGlhUmVxdWVzdChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgVXNlck1lZGlhQ29udHJvbGxlciosIFBhc3NSZWZQdHI8TWVk
aWFDb25zdHJhaW50c0ltcGw+IGF1ZGlvLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHNJbXBs
PiB2aWRlbywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s+LCBQ
YXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2s+KTsKKyAgICBVc2VyTWVk
aWFSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBVc2VyTWVkaWFDb250cm9sbGVyKiwg
UGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4gYXVkaW9Db25zdHJhaW50cywgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4gdmlkZW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxO
YXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPE5hdmlnYXRvclVz
ZXJNZWRpYUVycm9yQ2FsbGJhY2s+KTsKKworICAgIHZvaWQgY2FsbFN1Y2Nlc3NIYW5kbGVyKFBh
c3NSZWZQdHI8TWVkaWFTdHJlYW0+KTsKKyAgICB2b2lkIGNhbGxFcnJvckhhbmRsZXIoUGFzc1Jl
ZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvcj4pOwogCi0gICAgUmVmUHRyPE1lZGlhQ29uc3Ry
YWludHNJbXBsPiBtX2F1ZGlvOwotICAgIFJlZlB0cjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4gbV92
aWRlbzsKKyAgICBSZWZQdHI8TWVkaWFDb25zdHJhaW50c0ltcGw+IG1fYXVkaW9Db25zdHJhaW50
czsKKyAgICBSZWZQdHI8TWVkaWFDb25zdHJhaW50c0ltcGw+IG1fdmlkZW9Db25zdHJhaW50czsK
IAogICAgIFVzZXJNZWRpYUNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gMTU2MDU2KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC03OSw2ICs3OSw3IEBACiAJCTA2NkM3NzMxMEFCNjAz
RkQwMDIzOENDNCAvKiBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDY2Qzc3MkYwQUI2MDNGRDAwMjM4Q0M0IC8q
IFJlbmRlckZpbGVVcGxvYWRDb250cm9sLmggKi87IH07CiAJCTA2RTgxRUQ3MEFCNUQ1RTkwMEM4
NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2RTgxRUQ2MEFCNUQ1RTkwMEM4NzgzNyAvKiBM
b2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaCAqLzsgfTsKIAkJMDZFODFFRUMwQUI1REE5NzAw
Qzg3ODM3IC8qIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2RTgxRUVCMEFCNURBOTcwMEM4NzgzNyAv
KiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0gKi87IH07CisJCTA3MDMyN0Y4MTdFQTRB
QUYwMENFMTMxOCAvKiBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzAzMjdGNzE3RUE0QUFGMDBDRTEzMTgg
LyogTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuY3BwICovOyB9OwogCQkwNzAzMzREMzE0NTlGRkFE
MDA4RDhENDUgLyogVHJhY2tFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzAzMzREMDE0NTlGRkFDMDA4RDhENDUgLyogVHJhY2tFdmVudC5j
cHAgKi87IH07CiAJCTA3MDMzNEQ3MTQ1OUZGRDUwMDhEOEQ0NSAvKiBUcmFja0Jhc2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDMzNEQ2MTQ1OUZG
RDUwMDhEOEQ0NSAvKiBUcmFja0Jhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwNzAzMzREOTE0NUEwMDZGMDA4RDhENDUgLyogVHJhY2tCYXNl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDMz
NEQ4MTQ1QTAwNkYwMDhEOEQ0NSAvKiBUcmFja0Jhc2UuY3BwICovOyB9OwpAQCAtNjQ0MCw2ICs2
NDQxLDcgQEAKIAkJMDY2Qzc3MkYwQUI2MDNGRDAwMjM4Q0M0IC8qIFJlbmRlckZpbGVVcGxvYWRD
b250cm9sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJGaWxlVXBs
b2FkQ29udHJvbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNkU4MUVENjBBQjVE
NUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNkU4MUVFQjBBQjVEQTk3MDBDODc4MzcgLyogTG9j
YWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMDcwMzI3RjcxN0VBNEFBRjAwQ0UxMzE4IC8qIE5hdmlnYXRvclVz
ZXJNZWRpYUVycm9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5h
dmlnYXRvclVzZXJNZWRpYUVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDcwMzM0RDAxNDU5RkZBQzAwOEQ4RDQ1IC8qIFRyYWNrRXZlbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHJhY2tFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3MDMzNEQxMTQ1OUZGQUMwMDhEOEQ0NSAvKiBUcmFja0V2ZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRyYWNrRXZlbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDcwMzM0RDIxNDU5RkZBQzAwOEQ4RDQ1IC8qIFRyYWNrRXZlbnQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFRyYWNrRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTMzMjMsNiArMTMzMjUsNyBAQAogCQkJCTA3MjIxQjVCMTdDRUMz
MjcwMDg0OEU1MSAvKiBOYXZpZ2F0b3JNZWRpYVN0cmVhbS5oICovLAogCQkJCTA3MjIxQjVDMTdD
RUMzMjcwMDg0OEU1MSAvKiBOYXZpZ2F0b3JNZWRpYVN0cmVhbS5pZGwgKi8sCiAJCQkJMDcyMjFC
NUQxN0NFQzMyNzAwODQ4RTUxIC8qIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yLmggKi8sCisJCQkJ
MDcwMzI3RjcxN0VBNEFBRjAwQ0UxMzE4IC8qIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yLmNwcCAq
LywKIAkJCQkwNzIyMUI1RTE3Q0VDMzI3MDA4NDhFNTEgLyogTmF2aWdhdG9yVXNlck1lZGlhRXJy
b3IuaWRsICovLAogCQkJCTA3MjIxQjVGMTdDRUMzMjcwMDg0OEU1MSAvKiBOYXZpZ2F0b3JVc2Vy
TWVkaWFFcnJvckNhbGxiYWNrLmggKi8sCiAJCQkJMDcyMjFCNjAxN0NFQzMyNzAwODQ4RTUxIC8q
IE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaWRsICovLApAQCAtMjY2NTgsNiArMjY2
NjEsNyBAQAogCQkJCTQ1MENFQkYwMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFibGVFbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE0NTZGQTI2MTFBRDRBODMwMDIwQjQyMCAvKiBMYWJl
bHNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTg3NzJGMTEyNkUyNjI5MDAzREQ1
ODYgLyogTGFuZ3VhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDcwMzI3RjgxN0VBNEFBRjAw
Q0UxMzE4IC8qIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTkzNTIwODQ1MDlCRDQzQjkwMEYyMDM4RCAvKiBMYW5ndWFnZS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTI5MTdCNTYxMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTI5MTdCNTY2MTQ3MzQ5OTUwMDUyQzlEMCAvKiBMYXllckZsdXNo
U2NoZWR1bGVyTWFjLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L0RPTUVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RPTUVycm9yLmgJ
KHJldmlzaW9uIDE1NjA1NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9ET01FcnJvci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MSw5ICs0MSwxMCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBTdHJpbmcm
IG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoK
ICAgICBleHBsaWNpdCBET01FcnJvcihjb25zdCBTdHJpbmcmIG5hbWUpOwogCitwcml2YXRlOgog
ICAgIGNvbnN0IFN0cmluZyBtX25hbWU7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNsaWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291
cmNlc1F1ZXJ5Q2xpZW50LmgJKHJldmlzaW9uIDE1NjA1NikKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlc1F1ZXJ5Q2xpZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTM1LDE1ICszNSwxOSBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAK
ICNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBNZWRpYUNvbnN0cmFpbnRzOworCiBjbGFzcyBNZWRpYVN0cmVhbVNvdXJjZXNRdWVy
eUNsaWVudCA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtU291cmNlc1F1ZXJ5Q2xpZW50
PiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TWVkaWFTdHJlYW1Tb3VyY2VzUXVlcnlDbGllbnQo
KSB7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBhdWRpbygpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFs
IGJvb2wgdmlkZW8oKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPE1lZGlhQ29u
c3RyYWludHM+IGF1ZGlvQ29uc3RyYWludHMoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBQYXNz
UmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IHZpZGVvQ29uc3RyYWludHMoKSBjb25zdCA9IDA7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVRdWVyeShjb25zdCBNZWRpYVN0cmVhbVNvdXJj
ZVZlY3RvciYgYXVkaW9Tb3VyY2VzLCBjb25zdCBNZWRpYVN0cmVhbVNvdXJjZVZlY3RvciYgdmlk
ZW9Tb3VyY2VzKSA9IDA7CiB9OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTU2MDc4KQorKysgTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDkt
MTggIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWVk
aWFTdHJlYW0gQVBJOiB1cGRhdGUgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3Igb2JqZWN0IHRvIG1h
dGNoIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyMTU4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS9nZXR1c2VybWVkaWEtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvbWVkaWFzdHJlYW0vZ2V0dXNlcm1lZGlhLmh0bWw6CisKIDIwMTMtMDktMTggIFJ5b3N1
a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTGlvbiByZWJhc2VsaW5lIGFm
dGVyIHIxNTUyNTMuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldHVzZXJt
ZWRpYS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9nZXR1c2VybWVkaWEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNTYwNTYpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldHVzZXJtZWRpYS1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTIyLDYgKzIyLDggQEAgUEFTUyBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5s
ZW5ndGggaXMgMQogUEFTUyBzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGggaXMgMQogUEFT
UyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp7bWFuZGF0b3J5OnsndmFsaWRf
YnV0X3Vuc3VwcG9ydGVkXzEnOjB9LCBvcHRpb25hbDpbXX0sIHZpZGVvOnRydWV9LCBnb3RTdHJl
YW1JbkVycm9yLCBlcnJvcjEpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgRXJyb3Ig
Y2FsbGJhY2sgY2FsbGVkLgorUEFTUyBlcnJvckFyZy5uYW1lIGlzICJDb25zdHJhaW50Tm90U2F0
aXNmaWVkRXJyb3IiCitQQVNTIGVycm9yQXJnLmNvbnN0cmFpbnROYW1lIGlzICJ2YWxpZF9idXRf
dW5zdXBwb3J0ZWRfMSIKIFBBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7YXVkaW86
e21hbmRhdG9yeTp7J3ZhbGlkX2FuZF9zdXBwb3J0ZWRfMSc6MX0sIG9wdGlvbmFsOlt7J3ZhbGlk
X2J1dF91bnN1cHBvcnRlZF8xJzowfV19LCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtNSwgZXJyb3Ip
OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgU3RyZWFtIGdlbmVyYXRlZC4KIFBBU1Mg
c3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlzIDEKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vZ2V0dXNlcm1lZGlhLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9nZXR1c2VybWVkaWEuaHRtbAkocmV2aXNpb24gMTU2MDU2KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXR1c2VybWVkaWEuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAsNiArMTAsNyBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHdlYmtpdEdldFVz
ZXJNZWRpYS4iKTsKIAogdmFyIHN0cmVhbTsKK3ZhciBlcnJvckFyZzsKIAogZnVuY3Rpb24gZXJy
b3IoKSB7CiAgICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgY2FsbGVkLicpOwpAQCAtMjks
OCArMzAsMTEgQEAgZnVuY3Rpb24gZ290U3RyZWFtNShzKSB7CiAgICAgZmluaXNoSlNUZXN0KCk7
CiB9CiAKLWZ1bmN0aW9uIGVycm9yMSgpIHsKK2Z1bmN0aW9uIGVycm9yMShlKSB7CisgICAgZXJy
b3JBcmcgPSBlOwogICAgIHRlc3RQYXNzZWQoJ0Vycm9yIGNhbGxiYWNrIGNhbGxlZC4nKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2Vycm9yQXJnLm5hbWUnLCAnQ29uc3RyYWludE5vdFNh
dGlzZmllZEVycm9yJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlcnJvckFyZy5jb25z
dHJhaW50TmFtZScsICd2YWxpZF9idXRfdW5zdXBwb3J0ZWRfMScpOwogCiAgICAgc2hvdWxkTm90
VGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnttYW5kYXRvcnk6eyd2
YWxpZF9hbmRfc3VwcG9ydGVkXzEnOjF9LCBvcHRpb25hbDpbeyd2YWxpZF9idXRfdW5zdXBwb3J0
ZWRfMSc6MH1dfSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTUsIGVycm9yKTsiKTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>