<?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>93117</bug_id>
          
          <creation_ts>2012-08-03 07:20:23 -0700</creation_ts>
          <short_desc>MediaStream API: Introduce RTCIceCandidate</short_desc>
          <delta_ts>2012-08-22 12:18:16 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>80589</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tommy Widenflycht">tommyw</reporter>
          <assigned_to name="Tommy Widenflycht">tommyw</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ojan</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>686706</commentid>
    <comment_count>0</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-08-03 07:20:23 -0700</bug_when>
    <thetext>Introduce RTCIceCandidate together with its corresponding WebCore/platform representation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686716</commentid>
    <comment_count>1</comment_count>
      <attachid>156373</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-08-03 07:26:25 -0700</bug_when>
    <thetext>Created attachment 156373
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686744</commentid>
    <comment_count>2</comment_count>
      <attachid>156381</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-08-03 07:47:56 -0700</bug_when>
    <thetext>Created attachment 156381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686878</commentid>
    <comment_count>3</comment_count>
      <attachid>156381</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-03 10:01:43 -0700</bug_when>
    <thetext>Comment on attachment 156381
Patch

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

&gt; Source/WebCore/Modules/mediastream/DOMWindowMediaStream.idl:38
&gt;          attribute IceCandidateConstructor IceCandidate;
&gt; +        attribute RTCIceCandidateConstructor RTCIceCandidate;

It&apos;s kind of strange that we&apos;re rebuilding the entire feature with an RTC prefix.  I guess we&apos;ll remove the non-RTC prefixed versions when the time is right.

&gt; Source/WebCore/Modules/mediastream/RTCIceCandidate.h:57
&gt; +    String toString();

This function seems to be missing an implementation.

&gt; Source/WebCore/Modules/mediastream/RTCIceCandidate.h:62
&gt; +    RTCIceCandidate(PassRefPtr&lt;RTCIceCandidateDescriptor&gt;);

explicit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701781</commentid>
    <comment_count>4</comment_count>
      <attachid>156381</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-08-22 05:14:48 -0700</bug_when>
    <thetext>Comment on attachment 156381
Patch

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

&gt;&gt; Source/WebCore/Modules/mediastream/DOMWindowMediaStream.idl:38
&gt;&gt; +        attribute RTCIceCandidateConstructor RTCIceCandidate;
&gt; 
&gt; It&apos;s kind of strange that we&apos;re rebuilding the entire feature with an RTC prefix.  I guess we&apos;ll remove the non-RTC prefixed versions when the time is right.

Yes, and the non-RTC prefixed version will be removed when PeerConnection00 disappears.

&gt;&gt; Source/WebCore/Modules/mediastream/RTCIceCandidate.h:57
&gt;&gt; +    String toString();
&gt; 
&gt; This function seems to be missing an implementation.

Removed for now. Will add this functionality later on.

&gt;&gt; Source/WebCore/Modules/mediastream/RTCIceCandidate.h:62
&gt;&gt; +    RTCIceCandidate(PassRefPtr&lt;RTCIceCandidateDescriptor&gt;);
&gt; 
&gt; explicit

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701788</commentid>
    <comment_count>5</comment_count>
      <attachid>159907</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-08-22 05:20:05 -0700</bug_when>
    <thetext>Created attachment 159907
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702156</commentid>
    <comment_count>6</comment_count>
      <attachid>159907</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-22 12:05:22 -0700</bug_when>
    <thetext>Comment on attachment 159907
Patch

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

&gt; Source/WebCore/Modules/mediastream/RTCIceCandidate.h:57
&gt; +    RTCIceCandidateDescriptor* descriptor();

Commonly we&apos;d just declare this function line because it&apos;s a simple getter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702175</commentid>
    <comment_count>7</comment_count>
      <attachid>159907</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-22 12:18:12 -0700</bug_when>
    <thetext>Comment on attachment 159907
Patch

Clearing flags on attachment: 159907

Committed r126328: &lt;http://trac.webkit.org/changeset/126328&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702176</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-22 12:18:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156373</attachid>
            <date>2012-08-03 07:26:25 -0700</date>
            <delta_ts>2012-08-03 07:47:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93117-20120803162604.patch</filename>
            <type>text/plain</type>
            <size>22240</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQyZWQxNjY5YmNjNzk4
OTFmZDllMWQxNGQyMmFlNDg5YTdhNWZmNS4uMjAwYmNmZGI2NDVhNDZlZGI4OGM3NGNlZWMwZjE1
OWM0ZTgwOTQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTA4LTAzICBUb21t
eSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFt
IEFQSTogSW50cm9kdWNlIFJUQ0ljZUNhbmRpZGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTMxMTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgUlRDSWNlQ2FuZGlk
YXRlIHRvZ2V0aGVyIHdpdGggaXRzIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgV2ViQ29yZS9wbGF0
Zm9ybSByZXByZXNlbnRhdGlvbi4KKworICAgICAgICBUZXN0OiBmYXN0L21lZGlhc3RyZWFtL1JU
Q0ljZUNhbmRpZGF0ZS5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL0RPTVdp
bmRvd01lZGlhU3RyZWFtLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0lj
ZUNhbmRpZGF0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpSVENJY2VDYW5kaWRhdGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENJY2VD
YW5kaWRhdGU6OlJUQ0ljZUNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENJY2VDYW5k
aWRhdGU6On5SVENJY2VDYW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDSWNlQ2FuZGlk
YXRlOjpjYW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDSWNlQ2FuZGlkYXRlOjpzZHBN
aWQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDSWNlQ2FuZGlkYXRlOjpzZHBNTGluZUluZGV4KToK
KyAgICAgICAgKFdlYkNvcmU6OlJUQ0ljZUNhbmRpZGF0ZTo6ZGVzY3JpcHRvcik6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFJUQ0ljZUNhbmRpZGF0ZSk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRl
RGVzY3JpcHRvci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjo6UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcik6
CisgICAgICAgIChXZWJDb3JlOjpSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOjp+UlRDSWNlQ2Fu
ZGlkYXRlRGVzY3JpcHRvcik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNl
Q2FuZGlkYXRlRGVzY3JpcHRvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcik6CisgICAgICAgIChXZWJDb3JlOjpSVENJY2VD
YW5kaWRhdGVEZXNjcmlwdG9yOjpjYW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDSWNl
Q2FuZGlkYXRlRGVzY3JpcHRvcjo6c2RwTWlkKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0ljZUNh
bmRpZGF0ZURlc2NyaXB0b3I6OnNkcE1MaW5lSW5kZXgpOgorCiAyMDEyLTA4LTAzICBNYXJpbyBT
YW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBZGQg
YSBuZXcgYW5kIHJldXNhYmxlIGVuY2hhbnQtYmFzZWQgc3BlbGxjaGVja2VyIGluIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vRE9NV2luZG93
TWVkaWFTdHJlYW0uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9ET01X
aW5kb3dNZWRpYVN0cmVhbS5pZGwKaW5kZXggZWE5NDZhNDk2NmJlOGJiYmY0OGEzYWMwYTUyNmVi
NTQwNzY1MWQ0ZC4uN2JmY2ZjZjIzMDY4NWExOWQ0OTA1YjZlYzUzMTc3OGI2NDRjOWE5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9ET01XaW5kb3dNZWRp
YVN0cmVhbS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9ET01X
aW5kb3dNZWRpYVN0cmVhbS5pZGwKQEAgLTM1LDYgKzM1LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAg
ICAgICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBSVENQZWVyQ29ubmVjdGlvbkNv
bnN0cnVjdG9yIHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uOwogICAgICAgICBhdHRyaWJ1dGUgU2Vz
c2lvbkRlc2NyaXB0aW9uQ29uc3RydWN0b3IgU2Vzc2lvbkRlc2NyaXB0aW9uOwogICAgICAgICBh
dHRyaWJ1dGUgSWNlQ2FuZGlkYXRlQ29uc3RydWN0b3IgSWNlQ2FuZGlkYXRlOworICAgICAgICBh
dHRyaWJ1dGUgUlRDSWNlQ2FuZGlkYXRlQ29uc3RydWN0b3IgUlRDSWNlQ2FuZGlkYXRlOwogICAg
ICAgICBhdHRyaWJ1dGUgTWVkaWFTdHJlYW1FdmVudENvbnN0cnVjdG9yIE1lZGlhU3RyZWFtRXZl
bnQ7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmOWQ0MWNhMmU4YzBkYWFkMTdl
YmViYzI3NGQ1MjczYzY4Nzk3YzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHAKQEAgLTAsMCArMSw5OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCisgKiAgICBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNpbmNsdWRlICJSVENJY2VDYW5kaWRhdGUuaCIKKworI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIK
KyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgi
CisjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1Bhc3NSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlPiBSVENJY2VDYW5kaWRhdGU6OmNy
ZWF0ZShjb25zdCBEaWN0aW9uYXJ5JiBkaWN0aW9uYXJ5LCBFeGNlcHRpb25Db2RlJiBlYykKK3sK
KyAgICBTdHJpbmcgY2FuZGlkYXRlOworICAgIGJvb2wgb2sgPSBkaWN0aW9uYXJ5LmdldCgiY2Fu
ZGlkYXRlIiwgY2FuZGlkYXRlKTsKKyAgICBpZiAoIW9rIHx8ICFjYW5kaWRhdGUubGVuZ3RoKCkp
IHsKKyAgICAgICAgZWMgPSBUWVBFX01JU01BVENIX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgfQorCisgICAgU3RyaW5nIHNkcE1pZDsKKyAgICBkaWN0aW9uYXJ5LmdldCgic2RwTWlkIiwg
c2RwTWlkKTsKKworICAgIHVuc2lnbmVkIHNob3J0IHNkcE1MaW5lSW5kZXggPSAwOworICAgIGRp
Y3Rpb25hcnkuZ2V0KCJzZHBNTGluZUluZGV4Iiwgc2RwTUxpbmVJbmRleCk7CisKKyAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFJUQ0ljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9y
OjpjcmVhdGUoY2FuZGlkYXRlLCBzZHBNaWQsIHNkcE1MaW5lSW5kZXgpKSk7Cit9CisKK1Bhc3NS
ZWZQdHI8UlRDSWNlQ2FuZGlkYXRlPiBSVENJY2VDYW5kaWRhdGU6OmNyZWF0ZShQYXNzUmVmUHRy
PFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I+IGRlc2NyaXB0b3IpCit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBSVENJY2VDYW5kaWRhdGUoZGVzY3JpcHRvcikpOworfQorCitSVENJY2VDYW5k
aWRhdGU6OlJUQ0ljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0
b3I+IGRlc2NyaXB0b3IpCisgICAgOiBtX2Rlc2NyaXB0b3IoZGVzY3JpcHRvcikKK3sKK30KKwor
UlRDSWNlQ2FuZGlkYXRlOjp+UlRDSWNlQ2FuZGlkYXRlKCkKK3sKK30KKworY29uc3QgU3RyaW5n
JiBSVENJY2VDYW5kaWRhdGU6OmNhbmRpZGF0ZSgpCit7CisgICAgcmV0dXJuIG1fZGVzY3JpcHRv
ci0+Y2FuZGlkYXRlKCk7Cit9CisKK2NvbnN0IFN0cmluZyYgUlRDSWNlQ2FuZGlkYXRlOjpzZHBN
aWQoKQoreworICAgIHJldHVybiBtX2Rlc2NyaXB0b3ItPnNkcE1pZCgpOworfQorCit1bnNpZ25l
ZCBzaG9ydCBSVENJY2VDYW5kaWRhdGU6OnNkcE1MaW5lSW5kZXgoKQoreworICAgIHJldHVybiBt
X2Rlc2NyaXB0b3ItPnNkcE1MaW5lSW5kZXgoKTsKK30KKworUlRDSWNlQ2FuZGlkYXRlRGVzY3Jp
cHRvciogUlRDSWNlQ2FuZGlkYXRlOjpkZXNjcmlwdG9yKCkKK3sKKyAgICByZXR1cm4gbV9kZXNj
cmlwdG9yLmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU0MWZjYmY5NzcxMDM3ZDEw
NDE1YzMwOGNkMTEwZDAxMzc4ZDE5ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmgKQEAgLTAsMCArMSw3MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCisgKiAgICBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgUlRDSWNlQ2FuZGlkYXRlX2gKKyNkZWZpbmUgUlRDSWNlQ2FuZGlkYXRl
X2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJFeGNlcHRpb25CYXNl
LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWN0aW9uYXJ5OworY2xhc3Mg
UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjsKKworY2xhc3MgUlRDSWNlQ2FuZGlkYXRlIDogcHVi
bGljIFJlZkNvdW50ZWQ8UlRDSWNlQ2FuZGlkYXRlPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlPiBjcmVhdGUoY29uc3QgRGljdGlvbmFyeSYsIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGU+IGNyZWF0
ZShQYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I+KTsKKyAgICB2aXJ0dWFsIH5S
VENJY2VDYW5kaWRhdGUoKTsKKworICAgIGNvbnN0IFN0cmluZyYgY2FuZGlkYXRlKCk7CisgICAg
Y29uc3QgU3RyaW5nJiBzZHBNaWQoKTsKKyAgICB1bnNpZ25lZCBzaG9ydCBzZHBNTGluZUluZGV4
KCk7CisKKyAgICBTdHJpbmcgdG9TdHJpbmcoKTsKKworICAgIFJUQ0ljZUNhbmRpZGF0ZURlc2Ny
aXB0b3IqIGRlc2NyaXB0b3IoKTsKKworcHJpdmF0ZToKKyAgICBSVENJY2VDYW5kaWRhdGUoUGFz
c1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPik7CisKKyAgICBSZWZQdHI8UlRDSWNl
Q2FuZGlkYXRlRGVzY3JpcHRvcj4gbV9kZXNjcmlwdG9yOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFJU
Q0ljZUNhbmRpZGF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDYwZGIwM2Y0YzVmYzc5NDc3
ZDU5NTc1NWNkODVkMGJiNDFkOGI5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmlkbApAQCAtMCwwICsxLDQzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAg
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworbW9kdWxlIG1lZGlhc3RyZWFtIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAg
IENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKKyAgICAgICAgQ29uc3RydWN0b3IoaW4gRGljdGlv
bmFyeSBkaWN0aW9uYXJ5KSwKKyAgICAgICAgQ29uc3RydWN0b3JSYWlzZXNFeGNlcHRpb24KKyAg
ICBdIFJUQ0ljZUNhbmRpZGF0ZSB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgY2FuZGlkYXRlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNkcE1p
ZDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHNkcE1MaW5lSW5k
ZXg7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDMxOWIyYWRlOTUzOTI0OTQyZDcx
NjMwNjM4YzYzNmVlNWYyMmVmOGYuLmFiMTU4NDYwODhiOGUxZGIwZDA1MDE1NTgwYzFhYTc5Zjlk
YWFjODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTQ1MSw2ICs0NTEsOCBAQAogICAgICAgICAgICAg
J3BsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uMDBIYW5kbGVyLmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xpZW50
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRpb24u
aCcsCisgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRGVz
Y3JpcHRvci5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0ljZUNh
bmRpZGF0ZURlc2NyaXB0b3IuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCcsCkBA
IC04NDYsNiArODQ4LDcgQEAKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL05hdmln
YXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL21l
ZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5pZGwnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24wMC5pZGwnLAorICAgICAg
ICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmlkbCcsCiAgICAgICAg
ICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbCcsCiAgICAg
ICAgICAgICAnTW9kdWxlcy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRs
JywKQEAgLTE1NzMsNiArMTU3Niw4IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVh
bS9OYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaCcsCiAgICAgICAgICAgICAnTW9k
dWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmNwcCcsCiAgICAgICAgICAgICAnTW9k
dWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmgnLAorICAgICAgICAgICAgJ01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmNwcCcsCisgICAgICAgICAgICAnTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9t
ZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRGVz
Y3JpcHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzRiYjRiZWNlNWQwMGY0MGFjNzZmMDdjOGRmM2YxZGFm
NTVlYzk1YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisj
aW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1Bhc3NSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4gUlRDSWNlQ2FuZGlk
YXRlRGVzY3JpcHRvcjo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgY2FuZGlkYXRlLCBjb25zdCBTdHJp
bmcmIHNkcE1pZCwgdW5zaWduZWQgc2hvcnQgc2RwTUxpbmVJbmRleCkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IoY2FuZGlkYXRlLCBzZHBNaWQs
IHNkcE1MaW5lSW5kZXgpKTsKK30KKworUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjo6UlRDSWNl
Q2FuZGlkYXRlRGVzY3JpcHRvcihjb25zdCBTdHJpbmcmIGNhbmRpZGF0ZSwgY29uc3QgU3RyaW5n
JiBzZHBNaWQsIHVuc2lnbmVkIHNob3J0IHNkcE1MaW5lSW5kZXgpCisgICAgOiBtX2NhbmRpZGF0
ZShjYW5kaWRhdGUpCisgICAgLCBtX3NkcE1pZChzZHBNaWQpCisgICAgLCBtX3NkcE1MaW5lSW5k
ZXgoc2RwTUxpbmVJbmRleCkKK3sKK30KKworUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjo6flJU
Q0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRGVzY3Jp
cHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI1YWYxZTQzMmMzZmNkZjdkYTYyN2JkNTNiOGE4NWIyNjFlMjky
YjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBk
aXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCisgKiAgICBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcl9oCisjZGVmaW5lIFJUQ0ljZUNhbmRpZGF0
ZURlc2NyaXB0b3JfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENJ
Y2VDYW5kaWRhdGVEZXNjcmlwdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDSWNlQ2FuZGlkYXRl
RGVzY3JpcHRvcj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ0ljZUNhbmRp
ZGF0ZURlc2NyaXB0b3I+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGNhbmRpZGF0ZSwgY29uc3QgU3Ry
aW5nJiBzZHBNaWQsIHVuc2lnbmVkIHNob3J0IHNkcE1MaW5lSW5kZXgpOworICAgIHZpcnR1YWwg
flJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IoKTsKKworICAgIGNvbnN0IFN0cmluZyYgY2FuZGlk
YXRlKCkgeyByZXR1cm4gbV9jYW5kaWRhdGU7IH0KKyAgICBjb25zdCBTdHJpbmcmIHNkcE1pZCgp
IHsgcmV0dXJuIG1fc2RwTWlkOyB9CisgICAgdW5zaWduZWQgc2hvcnQgc2RwTUxpbmVJbmRleCgp
IHsgcmV0dXJuIG1fc2RwTUxpbmVJbmRleDsgfQorCitwcml2YXRlOgorICAgIFJUQ0ljZUNhbmRp
ZGF0ZURlc2NyaXB0b3IoY29uc3QgU3RyaW5nJiBjYW5kaWRhdGUsIGNvbnN0IFN0cmluZyYgc2Rw
TWlkLCB1bnNpZ25lZCBzaG9ydCBzZHBNTGluZUluZGV4KTsKKworICAgIFN0cmluZyBtX2NhbmRp
ZGF0ZTsKKyAgICBTdHJpbmcgbV9zZHBNaWQ7CisgICAgdW5zaWduZWQgc2hvcnQgbV9zZHBNTGlu
ZUluZGV4OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3JfaApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGUxYTBlOTAwNWRmYzhlNmJhMTk3ZGRkMzVjNGYzMzQ2ZDgwYTY5NWUuLmM4ZDhkMDlm
NzZkNzEyOWQ0ZGRhMjAzNWZkMTIzNjFjMTg5NDc2MmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxMi0wOC0wMyAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBNZWRpYVN0cmVhbSBBUEk6IEludHJvZHVjZSBSVENJY2VDYW5kaWRhdGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzMTE3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFt
L1JUQ0ljZUNhbmRpZGF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVk
aWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA4LTAzICBZdXRh
IEtpdGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHRl
c3QgZXhwZWN0YXRpb24gY2hhbmdlIG9ubHkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzE1YzY1NzdmMGY1OGFmZjM1MzI0MzNiZGFhOTZiNzIyYmQ4YzA3ZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDIyIEBACitUZXN0cyBSVENJY2VDYW5kaWRhdGUuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGNhbmRpZGF0ZSA9IG5ldyBSVENJY2VDYW5kaWRh
dGUoaW5pdGlhbGl6ZXIpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgY2FuZGlkYXRl
LmNhbmRpZGF0ZSBpcyAiZm9vIgorUEFTUyBjYW5kaWRhdGUuc2RwTWlkIGlzICJiYXIiCitQQVNT
IGNhbmRpZGF0ZS5zZHBNTGluZUluZGV4IGlzIDYKK1BBU1MgY2FuZGlkYXRlID0gbmV3IFJUQ0lj
ZUNhbmRpZGF0ZShpbml0aWFsaXplcik7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBj
YW5kaWRhdGUuY2FuZGlkYXRlIGlzICJmb28iCitQQVNTIGNhbmRpZGF0ZS5zZHBNaWQgaXMgImJh
ciIKK1BBU1MgY2FuZGlkYXRlLnNkcE1MaW5lSW5kZXggaXMgNgorUEFTUyBuZXcgUlRDSWNlQ2Fu
ZGlkYXRlKHt9KTsgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9N
IEV4Y2VwdGlvbiAxNy4KK1BBU1MgbmV3IFJUQ0ljZUNhbmRpZGF0ZSg1KTsgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogTm90IGFuIG9iamVjdC4uCitQQVNTIG5ldyBSVENJY2VDYW5kaWRhdGUo
ImZvb2JhciIpOyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgYW4gb2JqZWN0Li4KK1BB
U1MgbmV3IFJUQ0ljZUNhbmRpZGF0ZShjYW5kaWRhdGU6IiIpOyB0aHJldyBleGNlcHRpb24gU3lu
dGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gOi4KK1BBU1MgbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7
Y2FuZGlkYXRlOiJ4In0pOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTJhMTY0
N2ZkMDI2MDQxM2Y0NTY3NGM5MjNlZGUyODRlY2RmMDcyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuaHRtbApAQCAtMCwwICsx
LDM3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IlRlc3RzIFJUQ0ljZUNhbmRpZGF0ZS4iKTsKKwordmFyIGluaXRpYWxpemVyID0ge2NhbmRpZGF0
ZToiZm9vIiwgc2RwTWlkOiJiYXIiLCBzZHBNTGluZUluZGV4OjZ9OwordmFyIGNhbmRpZGF0ZTsK
K3Nob3VsZE5vdFRocm93KCdjYW5kaWRhdGUgPSBuZXcgUlRDSWNlQ2FuZGlkYXRlKGluaXRpYWxp
emVyKTsnKTsKK3Nob3VsZEJlKCdjYW5kaWRhdGUuY2FuZGlkYXRlJywgJyJmb28iJyk7CitzaG91
bGRCZSgnY2FuZGlkYXRlLnNkcE1pZCcsICciYmFyIicpOworc2hvdWxkQmUoJ2NhbmRpZGF0ZS5z
ZHBNTGluZUluZGV4JywgJzYnKTsKKworaW5pdGlhbGl6ZXIgPSBKU09OLnBhcnNlKEpTT04uc3Ry
aW5naWZ5KGNhbmRpZGF0ZSkpOworc2hvdWxkTm90VGhyb3coJ2NhbmRpZGF0ZSA9IG5ldyBSVENJ
Y2VDYW5kaWRhdGUoaW5pdGlhbGl6ZXIpOycpOworc2hvdWxkQmUoJ2NhbmRpZGF0ZS5jYW5kaWRh
dGUnLCAnImZvbyInKTsKK3Nob3VsZEJlKCdjYW5kaWRhdGUuc2RwTWlkJywgJyJiYXIiJyk7Citz
aG91bGRCZSgnY2FuZGlkYXRlLnNkcE1MaW5lSW5kZXgnLCAnNicpOworCitzaG91bGRUaHJvdygn
bmV3IFJUQ0ljZUNhbmRpZGF0ZSh7fSk7Jyk7CitzaG91bGRUaHJvdygnbmV3IFJUQ0ljZUNhbmRp
ZGF0ZSg1KTsnKTsKK3Nob3VsZFRocm93KCduZXcgUlRDSWNlQ2FuZGlkYXRlKCJmb29iYXIiKTsn
KTsKK3Nob3VsZFRocm93KCduZXcgUlRDSWNlQ2FuZGlkYXRlKGNhbmRpZGF0ZToiIik7Jyk7CisK
K3Nob3VsZE5vdFRocm93KCduZXcgUlRDSWNlQ2FuZGlkYXRlKHtjYW5kaWRhdGU6IngifSk7Jyk7
CisKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156381</attachid>
            <date>2012-08-03 07:47:56 -0700</date>
            <delta_ts>2012-08-22 05:19:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93117-20120803164735.patch</filename>
            <type>text/plain</type>
            <size>25887</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQyZWQxNjY5YmNjNzk4
OTFmZDllMWQxNGQyMmFlNDg5YTdhNWZmNS4uNzY0NDRlMzc5ZTVkMTJiZjA2MzVkY2ZlNjE5NGJm
ZjdjYjk1MDhiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA4LTAzICBUb21t
eSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFt
IEFQSTogSW50cm9kdWNlIFJUQ0ljZUNhbmRpZGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTMxMTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgUlRDSWNlQ2FuZGlk
YXRlIHRvZ2V0aGVyIHdpdGggaXRzIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgV2ViQ29yZS9wbGF0
Zm9ybSByZXByZXNlbnRhdGlvbi4KKworICAgICAgICBUZXN0OiBmYXN0L21lZGlhc3RyZWFtL1JU
Q0ljZUNhbmRpZGF0ZS5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vRE9N
V2luZG93TWVkaWFTdHJlYW0uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
SWNlQ2FuZGlkYXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ0ljZUNhbmRpZGF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0lj
ZUNhbmRpZGF0ZTo6UlRDSWNlQ2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0ljZUNh
bmRpZGF0ZTo6flJUQ0ljZUNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENJY2VDYW5k
aWRhdGU6OmNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENJY2VDYW5kaWRhdGU6OnNk
cE1pZCk6CisgICAgICAgIChXZWJDb3JlOjpSVENJY2VDYW5kaWRhdGU6OnNkcE1MaW5lSW5kZXgp
OgorICAgICAgICAoV2ViQ29yZTo6UlRDSWNlQ2FuZGlkYXRlOjpkZXNjcmlwdG9yKToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDSWNlQ2FuZGlkYXRlKToKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRh
dGVEZXNjcmlwdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOjpSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I6On5SVENJY2VD
YW5kaWRhdGVEZXNjcmlwdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENJ
Y2VDYW5kaWRhdGVEZXNjcmlwdG9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0lj
ZUNhbmRpZGF0ZURlc2NyaXB0b3I6OmNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENJ
Y2VDYW5kaWRhdGVEZXNjcmlwdG9yOjpzZHBNaWQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDSWNl
Q2FuZGlkYXRlRGVzY3JpcHRvcjo6c2RwTUxpbmVJbmRleCk6CisKIDIwMTItMDgtMDMgIE1hcmlv
IFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFk
ZCBhIG5ldyBhbmQgcmV1c2FibGUgZW5jaGFudC1iYXNlZCBzcGVsbGNoZWNrZXIgaW4gV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAyNDExMWUyZmMwYzMyNjY5NmRhY2Q3YTRkZjE5YjE4
YTAxZjk1ZmRiLi4xZmI0NWMxMmRmZWYxMDk4MTQwODE3N2YyMTY1YWJiZWQwMDQ5MDBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtMjA3LDYgKzIwNyw3IEBAIFNFVChXZWJDb3JlX0lETF9GSUxF
UwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFj
ay5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3ND
YWxsYmFjay5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uMDAuaWRs
CisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuaWRsCiAgICAgTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwKICAgICBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5pZGwKIApAQCAtODI4LDYgKzgyOSw3IEBAIFNFVChXZWJD
b3JlX1NPVVJDRVMKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tMaXN0
LmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uY3BwCiAg
ICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmNwcAorICAgIE1vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24uY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNzaW9uRGVz
Y3JpcHRpb24uY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVy
LmNwcApAQCAtMTg5Miw2ICsxODk0LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhSGludHMuY3BwCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1DZW50ZXIuY3BwCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb24wMEhhbmRsZXIuY3BwCisgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlk
YXRlRGVzY3JpcHRvci5jcHAKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXIuY3BwCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0
aW9uRGVzY3JpcHRvci5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNWQ4
NDNlOWFjNjI1ODU5NzQ4MTE5YWRiNTJlYTQ1YzYwOGFmZTE5Yi4uMzVhODQyYTZjN2MxZDgyMjVj
Zjg1NWNhOGVkZjAyMTYyYTE4NjJkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBA
IC00OTEsNiArNDkxLDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTUmVjdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUkdCQ29s
b3IuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUkdCQ29sb3IuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ0ljZUNhbmRpZGF0ZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNSVENJY2VDYW5kaWRhdGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1JUQ1BlZXJDb25uZWN0aW9uLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1Bl
ZXJDb25uZWN0aW9uLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTY3JlZW4uY3BwIFwK
QEAgLTcxNyw2ICs3MTksNyBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5pZGwgXAog
CSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNz
Q2FsbGJhY2suaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb24wMC5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5k
aWRhdGUuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2Ny
aXB0aW9uLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uLmlkbCBcCkBAIC0xMjAyLDYgKzEyMDUsOCBAQCB3ZWJjb3JlX21vZHVsZXNfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVk
aWFTdWNjZXNzQ2FsbGJhY2suaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9QZWVyQ29ubmVjdGlvbjAwLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmggXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uY3BwIFwKQEAgLTM1NjAsNiArMzU2NSw4
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJDbGllbnQuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9y
LmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlk
YXRlRGVzY3JpcHRvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50LmggXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9ET01XaW5kb3dN
ZWRpYVN0cmVhbS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RPTVdp
bmRvd01lZGlhU3RyZWFtLmlkbAppbmRleCBlYTk0NmE0OTY2YmU4YmJiZjQ4YTNhYzBhNTI2ZWI1
NDA3NjUxZDRkLi43YmZjZmNmMjMwNjg1YTE5ZDQ5MDViNmVjNTMxNzc4YjY0NGM5YTlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RPTVdpbmRvd01lZGlh
U3RyZWFtLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RPTVdp
bmRvd01lZGlhU3RyZWFtLmlkbApAQCAtMzUsNiArMzUsNyBAQCBtb2R1bGUgd2luZG93IHsKICAg
ICAgICAgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIFJUQ1BlZXJDb25uZWN0aW9uQ29u
c3RydWN0b3Igd2Via2l0UlRDUGVlckNvbm5lY3Rpb247CiAgICAgICAgIGF0dHJpYnV0ZSBTZXNz
aW9uRGVzY3JpcHRpb25Db25zdHJ1Y3RvciBTZXNzaW9uRGVzY3JpcHRpb247CiAgICAgICAgIGF0
dHJpYnV0ZSBJY2VDYW5kaWRhdGVDb25zdHJ1Y3RvciBJY2VDYW5kaWRhdGU7CisgICAgICAgIGF0
dHJpYnV0ZSBSVENJY2VDYW5kaWRhdGVDb25zdHJ1Y3RvciBSVENJY2VDYW5kaWRhdGU7CiAgICAg
ICAgIGF0dHJpYnV0ZSBNZWRpYVN0cmVhbUV2ZW50Q29uc3RydWN0b3IgTWVkaWFTdHJlYW1FdmVu
dDsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGY5ZDQxY2EyZThjMGRhYWQxN2Vi
ZWJjMjc0ZDUyNzNjNjg3OTdjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmNwcApAQCAtMCwwICsxLDk4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKwor
I2luY2x1ZGUgIlJUQ0ljZUNhbmRpZGF0ZS5oIgorCisjaW5jbHVkZSAiRGljdGlvbmFyeS5oIgor
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIK
KyNpbmNsdWRlICJSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGU+IFJUQ0ljZUNhbmRpZGF0ZTo6Y3Jl
YXRlKGNvbnN0IERpY3Rpb25hcnkmIGRpY3Rpb25hcnksIEV4Y2VwdGlvbkNvZGUmIGVjKQorewor
ICAgIFN0cmluZyBjYW5kaWRhdGU7CisgICAgYm9vbCBvayA9IGRpY3Rpb25hcnkuZ2V0KCJjYW5k
aWRhdGUiLCBjYW5kaWRhdGUpOworICAgIGlmICghb2sgfHwgIWNhbmRpZGF0ZS5sZW5ndGgoKSkg
eworICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAg
ICB9CisKKyAgICBTdHJpbmcgc2RwTWlkOworICAgIGRpY3Rpb25hcnkuZ2V0KCJzZHBNaWQiLCBz
ZHBNaWQpOworCisgICAgdW5zaWduZWQgc2hvcnQgc2RwTUxpbmVJbmRleCA9IDA7CisgICAgZGlj
dGlvbmFyeS5nZXQoInNkcE1MaW5lSW5kZXgiLCBzZHBNTGluZUluZGV4KTsKKworICAgIHJldHVy
biBhZG9wdFJlZihuZXcgUlRDSWNlQ2FuZGlkYXRlKFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I6
OmNyZWF0ZShjYW5kaWRhdGUsIHNkcE1pZCwgc2RwTUxpbmVJbmRleCkpKTsKK30KKworUGFzc1Jl
ZlB0cjxSVENJY2VDYW5kaWRhdGU+IFJUQ0ljZUNhbmRpZGF0ZTo6Y3JlYXRlKFBhc3NSZWZQdHI8
UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4gZGVzY3JpcHRvcikKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFJUQ0ljZUNhbmRpZGF0ZShkZXNjcmlwdG9yKSk7Cit9CisKK1JUQ0ljZUNhbmRp
ZGF0ZTo6UlRDSWNlQ2FuZGlkYXRlKFBhc3NSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRv
cj4gZGVzY3JpcHRvcikKKyAgICA6IG1fZGVzY3JpcHRvcihkZXNjcmlwdG9yKQoreworfQorCitS
VENJY2VDYW5kaWRhdGU6On5SVENJY2VDYW5kaWRhdGUoKQoreworfQorCitjb25zdCBTdHJpbmcm
IFJUQ0ljZUNhbmRpZGF0ZTo6Y2FuZGlkYXRlKCkKK3sKKyAgICByZXR1cm4gbV9kZXNjcmlwdG9y
LT5jYW5kaWRhdGUoKTsKK30KKworY29uc3QgU3RyaW5nJiBSVENJY2VDYW5kaWRhdGU6OnNkcE1p
ZCgpCit7CisgICAgcmV0dXJuIG1fZGVzY3JpcHRvci0+c2RwTWlkKCk7Cit9CisKK3Vuc2lnbmVk
IHNob3J0IFJUQ0ljZUNhbmRpZGF0ZTo6c2RwTUxpbmVJbmRleCgpCit7CisgICAgcmV0dXJuIG1f
ZGVzY3JpcHRvci0+c2RwTUxpbmVJbmRleCgpOworfQorCitSVENJY2VDYW5kaWRhdGVEZXNjcmlw
dG9yKiBSVENJY2VDYW5kaWRhdGU6OmRlc2NyaXB0b3IoKQoreworICAgIHJldHVybiBtX2Rlc2Ny
aXB0b3IuZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTQxZmNiZjk3NzEwMzdkMTA0
MTVjMzA4Y2QxMTBkMDEzNzhkMTlkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuaApAQCAtMCwwICsxLDcxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBSVENJY2VDYW5kaWRhdGVfaAorI2RlZmluZSBSVENJY2VDYW5kaWRhdGVf
aAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkV4Y2VwdGlvbkJhc2Uu
aCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3Rpb25hcnk7CitjbGFzcyBS
VENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOworCitjbGFzcyBSVENJY2VDYW5kaWRhdGUgOiBwdWJs
aWMgUmVmQ291bnRlZDxSVENJY2VDYW5kaWRhdGU+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxSVENJY2VDYW5kaWRhdGU+IGNyZWF0ZShjb25zdCBEaWN0aW9uYXJ5JiwgRXhjZXB0
aW9uQ29kZSYpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZT4gY3JlYXRl
KFBhc3NSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4pOworICAgIHZpcnR1YWwgflJU
Q0ljZUNhbmRpZGF0ZSgpOworCisgICAgY29uc3QgU3RyaW5nJiBjYW5kaWRhdGUoKTsKKyAgICBj
b25zdCBTdHJpbmcmIHNkcE1pZCgpOworICAgIHVuc2lnbmVkIHNob3J0IHNkcE1MaW5lSW5kZXgo
KTsKKworICAgIFN0cmluZyB0b1N0cmluZygpOworCisgICAgUlRDSWNlQ2FuZGlkYXRlRGVzY3Jp
cHRvciogZGVzY3JpcHRvcigpOworCitwcml2YXRlOgorICAgIFJUQ0ljZUNhbmRpZGF0ZShQYXNz
UmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I+KTsKKworICAgIFJlZlB0cjxSVENJY2VD
YW5kaWRhdGVEZXNjcmlwdG9yPiBtX2Rlc2NyaXB0b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gUlRD
SWNlQ2FuZGlkYXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjBkYjAzZjRjNWZjNzk0Nzdk
NTk1NzU1Y2Q4NWQwYmI0MWQ4YjlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuaWRsCkBAIC0wLDAgKzEsNDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCittb2R1bGUgbWVkaWFzdHJlYW0geworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAg
Q29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAorICAgICAgICBDb25zdHJ1Y3RvcihpbiBEaWN0aW9u
YXJ5IGRpY3Rpb25hcnkpLAorICAgICAgICBDb25zdHJ1Y3RvclJhaXNlc0V4Y2VwdGlvbgorICAg
IF0gUlRDSWNlQ2FuZGlkYXRlIHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyBjYW5kaWRhdGU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc2RwTWlk
OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgc2RwTUxpbmVJbmRl
eDsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMzE5YjJhZGU5NTM5MjQ5NDJkNzE2
MzA2MzhjNjM2ZWU1ZjIyZWY4Zi4uYWIxNTg0NjA4OGI4ZTFkYjBkMDUwMTU1ODBjMWFhNzlmOWRh
YWM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNDUxLDYgKzQ1MSw4IEBACiAgICAgICAgICAgICAn
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIuaCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJDbGllbnQu
aCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5o
JywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGVEZXNj
cmlwdG9yLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlQ2Fu
ZGlkYXRlRGVzY3JpcHRvci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50LmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwJywKQEAg
LTg0Niw2ICs4NDgsNyBAQAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdh
dG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVk
aWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmlkbCcsCiAgICAgICAg
ICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmlkbCcsCisgICAgICAg
ICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuaWRsJywKICAgICAgICAg
ICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbCcsCiAgICAgICAg
ICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uaWRsJywKICAgICAg
ICAgICAgICdNb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwn
LApAQCAtMTU3Myw2ICsxNTc2LDggQEAKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFt
L05hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5oJywKICAgICAgICAgICAgICdNb2R1
bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uMDAuY3BwJywKICAgICAgICAgICAgICdNb2R1
bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uMDAuaCcsCisgICAgICAgICAgICAnTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwJywKKyAgICAgICAgICAgICdNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21l
ZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGVEZXNj
cmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNGJiNGJlY2U1ZDAwZjQwYWM3NmYwN2M4ZGYzZjFkYWY1
NWVjOTVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCisgKiAgICBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNp
bmNsdWRlICJSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPiBSVENJY2VDYW5kaWRh
dGVEZXNjcmlwdG9yOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBjYW5kaWRhdGUsIGNvbnN0IFN0cmlu
ZyYgc2RwTWlkLCB1bnNpZ25lZCBzaG9ydCBzZHBNTGluZUluZGV4KQoreworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcihjYW5kaWRhdGUsIHNkcE1pZCwg
c2RwTUxpbmVJbmRleCkpOworfQorCitSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOjpSVENJY2VD
YW5kaWRhdGVEZXNjcmlwdG9yKGNvbnN0IFN0cmluZyYgY2FuZGlkYXRlLCBjb25zdCBTdHJpbmcm
IHNkcE1pZCwgdW5zaWduZWQgc2hvcnQgc2RwTUxpbmVJbmRleCkKKyAgICA6IG1fY2FuZGlkYXRl
KGNhbmRpZGF0ZSkKKyAgICAsIG1fc2RwTWlkKHNkcE1pZCkKKyAgICAsIG1fc2RwTUxpbmVJbmRl
eChzZHBNTGluZUluZGV4KQoreworfQorCitSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOjp+UlRD
SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcigpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGVEZXNjcmlw
dG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjVhZjFlNDMyYzNmY2RmN2RhNjI3YmQ1M2I4YTg1YjI2MWUyOTJi
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRp
c3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yX2gKKyNkZWZpbmUgUlRDSWNlQ2FuZGlkYXRl
RGVzY3JpcHRvcl9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ0lj
ZUNhbmRpZGF0ZURlc2NyaXB0b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENJY2VDYW5kaWRhdGVE
ZXNjcmlwdG9yPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDSWNlQ2FuZGlk
YXRlRGVzY3JpcHRvcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgY2FuZGlkYXRlLCBjb25zdCBTdHJp
bmcmIHNkcE1pZCwgdW5zaWduZWQgc2hvcnQgc2RwTUxpbmVJbmRleCk7CisgICAgdmlydHVhbCB+
UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcigpOworCisgICAgY29uc3QgU3RyaW5nJiBjYW5kaWRh
dGUoKSB7IHJldHVybiBtX2NhbmRpZGF0ZTsgfQorICAgIGNvbnN0IFN0cmluZyYgc2RwTWlkKCkg
eyByZXR1cm4gbV9zZHBNaWQ7IH0KKyAgICB1bnNpZ25lZCBzaG9ydCBzZHBNTGluZUluZGV4KCkg
eyByZXR1cm4gbV9zZHBNTGluZUluZGV4OyB9CisKK3ByaXZhdGU6CisgICAgUlRDSWNlQ2FuZGlk
YXRlRGVzY3JpcHRvcihjb25zdCBTdHJpbmcmIGNhbmRpZGF0ZSwgY29uc3QgU3RyaW5nJiBzZHBN
aWQsIHVuc2lnbmVkIHNob3J0IHNkcE1MaW5lSW5kZXgpOworCisgICAgU3RyaW5nIG1fY2FuZGlk
YXRlOworICAgIFN0cmluZyBtX3NkcE1pZDsKKyAgICB1bnNpZ25lZCBzaG9ydCBtX3NkcE1MaW5l
SW5kZXg7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcl9oCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggZTFhMGU5MDA1ZGZjOGU2YmExOTdkZGQzNWM0ZjMzNDZkODBhNjk1ZS4uYzhkOGQwOWY3
NmQ3MTI5ZDRkZGEyMDM1ZmQxMjM2MWMxODk0NzYyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDEyLTA4LTAzICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAg
ICAgIE1lZGlhU3RyZWFtIEFQSTogSW50cm9kdWNlIFJUQ0ljZUNhbmRpZGF0ZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTMxMTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0v
UlRDSWNlQ2FuZGlkYXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRp
YXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuaHRtbDogQWRkZWQuCisKIDIwMTItMDgtMDMgIFl1dGEg
S2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgdGVz
dCBleHBlY3RhdGlvbiBjaGFuZ2Ugb25seS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
MTVjNjU3N2YwZjU4YWZmMzUzMjQzM2JkYWE5NmI3MjJiZDhjMDdlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjIgQEAKK1Rlc3RzIFJUQ0ljZUNhbmRpZGF0ZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY2FuZGlkYXRlID0gbmV3IFJUQ0ljZUNhbmRpZGF0
ZShpbml0aWFsaXplcik7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBjYW5kaWRhdGUu
Y2FuZGlkYXRlIGlzICJmb28iCitQQVNTIGNhbmRpZGF0ZS5zZHBNaWQgaXMgImJhciIKK1BBU1Mg
Y2FuZGlkYXRlLnNkcE1MaW5lSW5kZXggaXMgNgorUEFTUyBjYW5kaWRhdGUgPSBuZXcgUlRDSWNl
Q2FuZGlkYXRlKGluaXRpYWxpemVyKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIGNh
bmRpZGF0ZS5jYW5kaWRhdGUgaXMgImZvbyIKK1BBU1MgY2FuZGlkYXRlLnNkcE1pZCBpcyAiYmFy
IgorUEFTUyBjYW5kaWRhdGUuc2RwTUxpbmVJbmRleCBpcyA2CitQQVNTIG5ldyBSVENJY2VDYW5k
aWRhdGUoe30pOyB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00g
RXhjZXB0aW9uIDE3LgorUEFTUyBuZXcgUlRDSWNlQ2FuZGlkYXRlKDUpOyB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBOb3QgYW4gb2JqZWN0Li4KK1BBU1MgbmV3IFJUQ0ljZUNhbmRpZGF0ZSgi
Zm9vYmFyIik7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBhbiBvYmplY3QuLgorUEFT
UyBuZXcgUlRDSWNlQ2FuZGlkYXRlKGNhbmRpZGF0ZToiIik7IHRocmV3IGV4Y2VwdGlvbiBTeW50
YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiA6LgorUEFTUyBuZXcgUlRDSWNlQ2FuZGlkYXRlKHtj
YW5kaWRhdGU6IngifSk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhMmExNjQ3
ZmQwMjYwNDEzZjQ1Njc0YzkyM2VkZTI4NGVjZGYwNzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5odG1sCkBAIC0wLDAgKzEs
MzcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigi
VGVzdHMgUlRDSWNlQ2FuZGlkYXRlLiIpOworCit2YXIgaW5pdGlhbGl6ZXIgPSB7Y2FuZGlkYXRl
OiJmb28iLCBzZHBNaWQ6ImJhciIsIHNkcE1MaW5lSW5kZXg6Nn07Cit2YXIgY2FuZGlkYXRlOwor
c2hvdWxkTm90VGhyb3coJ2NhbmRpZGF0ZSA9IG5ldyBSVENJY2VDYW5kaWRhdGUoaW5pdGlhbGl6
ZXIpOycpOworc2hvdWxkQmUoJ2NhbmRpZGF0ZS5jYW5kaWRhdGUnLCAnImZvbyInKTsKK3Nob3Vs
ZEJlKCdjYW5kaWRhdGUuc2RwTWlkJywgJyJiYXIiJyk7CitzaG91bGRCZSgnY2FuZGlkYXRlLnNk
cE1MaW5lSW5kZXgnLCAnNicpOworCitpbml0aWFsaXplciA9IEpTT04ucGFyc2UoSlNPTi5zdHJp
bmdpZnkoY2FuZGlkYXRlKSk7CitzaG91bGROb3RUaHJvdygnY2FuZGlkYXRlID0gbmV3IFJUQ0lj
ZUNhbmRpZGF0ZShpbml0aWFsaXplcik7Jyk7CitzaG91bGRCZSgnY2FuZGlkYXRlLmNhbmRpZGF0
ZScsICciZm9vIicpOworc2hvdWxkQmUoJ2NhbmRpZGF0ZS5zZHBNaWQnLCAnImJhciInKTsKK3No
b3VsZEJlKCdjYW5kaWRhdGUuc2RwTUxpbmVJbmRleCcsICc2Jyk7CisKK3Nob3VsZFRocm93KCdu
ZXcgUlRDSWNlQ2FuZGlkYXRlKHt9KTsnKTsKK3Nob3VsZFRocm93KCduZXcgUlRDSWNlQ2FuZGlk
YXRlKDUpOycpOworc2hvdWxkVGhyb3coJ25ldyBSVENJY2VDYW5kaWRhdGUoImZvb2JhciIpOycp
Oworc2hvdWxkVGhyb3coJ25ldyBSVENJY2VDYW5kaWRhdGUoY2FuZGlkYXRlOiIiKTsnKTsKKwor
c2hvdWxkTm90VGhyb3coJ25ldyBSVENJY2VDYW5kaWRhdGUoe2NhbmRpZGF0ZToieCJ9KTsnKTsK
Kword2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159907</attachid>
            <date>2012-08-22 05:20:05 -0700</date>
            <delta_ts>2012-08-22 12:18:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93117-20120822142002.patch</filename>
            <type>text/plain</type>
            <size>26013</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2Mjg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFjNWM5NDc2MjEyNzhk
NjYyMjBjYmU4MWU5ZDBiOTljYTE0MmJhOC4uN2QxMTI1ODA4YjIxMDg5ZjRjOWE1OTViZjM1OGZm
ZGNiMjAxZDAzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA4LTIyICBUb21t
eSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFt
IEFQSTogSW50cm9kdWNlIFJUQ0ljZUNhbmRpZGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTMxMTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgUlRDSWNlQ2FuZGlk
YXRlIHRvZ2V0aGVyIHdpdGggaXRzIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgV2ViQ29yZS9wbGF0
Zm9ybSByZXByZXNlbnRhdGlvbi4KKworICAgICAgICBUZXN0OiBmYXN0L21lZGlhc3RyZWFtL1JU
Q0ljZUNhbmRpZGF0ZS5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vRE9N
V2luZG93TWVkaWFTdHJlYW0uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
SWNlQ2FuZGlkYXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ0ljZUNhbmRpZGF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0lj
ZUNhbmRpZGF0ZTo6UlRDSWNlQ2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0ljZUNh
bmRpZGF0ZTo6flJUQ0ljZUNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENJY2VDYW5k
aWRhdGU6OmNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENJY2VDYW5kaWRhdGU6OnNk
cE1pZCk6CisgICAgICAgIChXZWJDb3JlOjpSVENJY2VDYW5kaWRhdGU6OnNkcE1MaW5lSW5kZXgp
OgorICAgICAgICAoV2ViQ29yZTo6UlRDSWNlQ2FuZGlkYXRlOjpkZXNjcmlwdG9yKToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDSWNlQ2FuZGlkYXRlKToKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRh
dGVEZXNjcmlwdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOjpSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I6On5SVENJY2VD
YW5kaWRhdGVEZXNjcmlwdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENJ
Y2VDYW5kaWRhdGVEZXNjcmlwdG9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0lj
ZUNhbmRpZGF0ZURlc2NyaXB0b3I6OmNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENJ
Y2VDYW5kaWRhdGVEZXNjcmlwdG9yOjpzZHBNaWQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDSWNl
Q2FuZGlkYXRlRGVzY3JpcHRvcjo6c2RwTUxpbmVJbmRleCk6CisKIDIwMTItMDgtMjIgIFNpbW9u
IEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gUkVH
UkVTU0lPTihyMTI1NDI4KTogZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJv
ZmlsZXIuaHRtbCBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBhN2FlOTRmNjFlMjRjZDg0
NTFmMDVlNGUzMTFlYmZmNzFiYTlmYjk4Li5hNzc1NzhiZTVlMmZhMzc5ZTQ4OWMxYmI0ZGY3M2Vi
MjhkYWNjODRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjIyLDYgKzIyMiw3IEBAIFNFVChX
ZWJDb3JlX0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1l
ZGlhRXJyb3JDYWxsYmFjay5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVz
ZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJD
b25uZWN0aW9uMDAuaWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUu
aWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwKICAgICBN
b2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5pZGwKIApAQCAtODUwLDYgKzg1
MSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2tMaXN0LmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVk
aWFTdHJlYW0uY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmNw
cAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmNwcAogICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFDb250cm9sbGVyLmNwcApAQCAtMTkyMiw2ICsxOTI0LDcgQEAgU0VUKFdlYkNvcmVfU09V
UkNFUwogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhSGludHMuY3BwCiAgICAgcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3BwCiAgICAgcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIuY3BwCisgICAgcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5jcHAKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0v
U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KaW5kZXggYjczMzZjY2ZmOTU5ZjhmZGJmZDBmNDI4ZGEzNDQwMDViODAwZGIxNi4uYjJm
ODk5YjM1ZmNkYTQ4OTZkZGEyYTgxNTFhZTQyNzZiMjIyNTQ5YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCkBAIC02MjQsNiArNjI0LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJh
Y2suaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JHQkNvbG9yLmNwcCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1JHQkNvbG9yLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNSVENJY2VDYW5kaWRhdGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDSWNl
Q2FuZGlkYXRlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENQZWVyQ29ubmVjdGlv
bi5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENQZWVyQ29ubmVjdGlvbi5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyZWVuLmNwcCBcCkBAIC0xMjE0LDYgKzEyMTYs
NyBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJl
YW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5pZGwgXAogCSQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaWRsIFwK
IAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24wMC5pZGwgXAor
CSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuaWRsIFwKIAkk
KFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsIFwKIAkk
KFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbCBcCiAJ
JChXZWJDb3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbCBcCkBAIC0x
ODk5LDYgKzE5MDIsOCBAQCB3ZWJjb3JlX21vZHVsZXNfc291cmNlcyArPSBcCiAJU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJh
Y2suaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlv
bjAwLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVj
dGlvbjAwLmggXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2Fu
ZGlkYXRlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VD
YW5kaWRhdGUuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9T
ZXNzaW9uRGVzY3JpcHRpb24uY3BwIFwKQEAgLTQ1MTIsNiArNDUxNyw5IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb24wMEhhbmRsZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UGVlckNvbm5lY3Rpb24wMEhhbmRsZXJDbGllbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmNwcCBcCisJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5o
IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRp
b25EZXNjcmlwdG9yLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RPTVdpbmRvd01l
ZGlhU3RyZWFtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vRE9NV2lu
ZG93TWVkaWFTdHJlYW0uaWRsCmluZGV4IGVhOTQ2YTQ5NjZiZThiYmJmNDhhM2FjMGE1MjZlYjU0
MDc2NTFkNGQuLjdiZmNmY2YyMzA2ODVhMTlkNDkwNWI2ZWM1MzE3NzhiNjQ0YzlhOWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vRE9NV2luZG93TWVkaWFT
dHJlYW0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vRE9NV2lu
ZG93TWVkaWFTdHJlYW0uaWRsCkBAIC0zNSw2ICszNSw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAg
ICAgICBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gUlRDUGVlckNvbm5lY3Rpb25Db25z
dHJ1Y3RvciB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbjsKICAgICAgICAgYXR0cmlidXRlIFNlc3Np
b25EZXNjcmlwdGlvbkNvbnN0cnVjdG9yIFNlc3Npb25EZXNjcmlwdGlvbjsKICAgICAgICAgYXR0
cmlidXRlIEljZUNhbmRpZGF0ZUNvbnN0cnVjdG9yIEljZUNhbmRpZGF0ZTsKKyAgICAgICAgYXR0
cmlidXRlIFJUQ0ljZUNhbmRpZGF0ZUNvbnN0cnVjdG9yIFJUQ0ljZUNhbmRpZGF0ZTsKICAgICAg
ICAgYXR0cmlidXRlIE1lZGlhU3RyZWFtRXZlbnRDb25zdHJ1Y3RvciBNZWRpYVN0cmVhbUV2ZW50
OwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDSWNlQ2FuZGlkYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDSWNlQ2FuZGlkYXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZjlkNDFjYTJlOGMwZGFhZDE3ZWJl
YmMyNzRkNTI3M2M2ODc5N2MxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwCkBAIC0wLDAgKzEsOTggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisj
aW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlLmgiCisKKyNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCisj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgor
I2luY2x1ZGUgIlJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitQYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZT4gUlRDSWNlQ2FuZGlkYXRlOjpjcmVh
dGUoY29uc3QgRGljdGlvbmFyeSYgZGljdGlvbmFyeSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7Cisg
ICAgU3RyaW5nIGNhbmRpZGF0ZTsKKyAgICBib29sIG9rID0gZGljdGlvbmFyeS5nZXQoImNhbmRp
ZGF0ZSIsIGNhbmRpZGF0ZSk7CisgICAgaWYgKCFvayB8fCAhY2FuZGlkYXRlLmxlbmd0aCgpKSB7
CisgICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9FUlI7CisgICAgICAgIHJldHVybiAwOworICAg
IH0KKworICAgIFN0cmluZyBzZHBNaWQ7CisgICAgZGljdGlvbmFyeS5nZXQoInNkcE1pZCIsIHNk
cE1pZCk7CisKKyAgICB1bnNpZ25lZCBzaG9ydCBzZHBNTGluZUluZGV4ID0gMDsKKyAgICBkaWN0
aW9uYXJ5LmdldCgic2RwTUxpbmVJbmRleCIsIHNkcE1MaW5lSW5kZXgpOworCisgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBSVENJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjo6
Y3JlYXRlKGNhbmRpZGF0ZSwgc2RwTWlkLCBzZHBNTGluZUluZGV4KSkpOworfQorCitQYXNzUmVm
UHRyPFJUQ0ljZUNhbmRpZGF0ZT4gUlRDSWNlQ2FuZGlkYXRlOjpjcmVhdGUoUGFzc1JlZlB0cjxS
VENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPiBkZXNjcmlwdG9yKQoreworICAgIHJldHVybiBhZG9w
dFJlZihuZXcgUlRDSWNlQ2FuZGlkYXRlKGRlc2NyaXB0b3IpKTsKK30KKworUlRDSWNlQ2FuZGlk
YXRlOjpSVENJY2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9y
PiBkZXNjcmlwdG9yKQorICAgIDogbV9kZXNjcmlwdG9yKGRlc2NyaXB0b3IpCit7Cit9CisKK1JU
Q0ljZUNhbmRpZGF0ZTo6flJUQ0ljZUNhbmRpZGF0ZSgpCit7Cit9CisKK2NvbnN0IFN0cmluZyYg
UlRDSWNlQ2FuZGlkYXRlOjpjYW5kaWRhdGUoKQoreworICAgIHJldHVybiBtX2Rlc2NyaXB0b3It
PmNhbmRpZGF0ZSgpOworfQorCitjb25zdCBTdHJpbmcmIFJUQ0ljZUNhbmRpZGF0ZTo6c2RwTWlk
KCkKK3sKKyAgICByZXR1cm4gbV9kZXNjcmlwdG9yLT5zZHBNaWQoKTsKK30KKwordW5zaWduZWQg
c2hvcnQgUlRDSWNlQ2FuZGlkYXRlOjpzZHBNTGluZUluZGV4KCkKK3sKKyAgICByZXR1cm4gbV9k
ZXNjcmlwdG9yLT5zZHBNTGluZUluZGV4KCk7Cit9CisKK1JUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0
b3IqIFJUQ0ljZUNhbmRpZGF0ZTo6ZGVzY3JpcHRvcigpCit7CisgICAgcmV0dXJuIG1fZGVzY3Jp
cHRvci5nZXQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhMjA0MTQ1YTFiMjc4MDBkYjkw
YWUzZTllMzc1NTVhYjA2MzhmZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5oCkBAIC0wLDAgKzEsNjkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFJUQ0ljZUNhbmRpZGF0ZV9oCisjZGVmaW5lIFJUQ0ljZUNhbmRpZGF0ZV9o
CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiRXhjZXB0aW9uQmFzZS5o
IgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGljdGlvbmFyeTsKK2NsYXNzIFJU
Q0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I7CisKK2NsYXNzIFJUQ0ljZUNhbmRpZGF0ZSA6IHB1Ymxp
YyBSZWZDb3VudGVkPFJUQ0ljZUNhbmRpZGF0ZT4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZT4gY3JlYXRlKGNvbnN0IERpY3Rpb25hcnkmLCBFeGNlcHRp
b25Db2RlJik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlPiBjcmVhdGUo
UGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPik7CisgICAgdmlydHVhbCB+UlRD
SWNlQ2FuZGlkYXRlKCk7CisKKyAgICBjb25zdCBTdHJpbmcmIGNhbmRpZGF0ZSgpOworICAgIGNv
bnN0IFN0cmluZyYgc2RwTWlkKCk7CisgICAgdW5zaWduZWQgc2hvcnQgc2RwTUxpbmVJbmRleCgp
OworCisgICAgUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvciogZGVzY3JpcHRvcigpOworCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IFJUQ0ljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ0ljZUNhbmRp
ZGF0ZURlc2NyaXB0b3I+KTsKKworICAgIFJlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9y
PiBtX2Rlc2NyaXB0b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gUlRDSWNlQ2FuZGlkYXRlX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlk
YXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlk
YXRlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40NjBkYjAzZjRjNWZjNzk0NzdkNTk1NzU1Y2Q4NWQwYmI0MWQ4
YjlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENJY2VDYW5kaWRhdGUuaWRsCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0
aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgbWVk
aWFzdHJlYW0geworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFf
U1RSRUFNLAorICAgICAgICBDb25zdHJ1Y3RvcihpbiBEaWN0aW9uYXJ5IGRpY3Rpb25hcnkpLAor
ICAgICAgICBDb25zdHJ1Y3RvclJhaXNlc0V4Y2VwdGlvbgorICAgIF0gUlRDSWNlQ2FuZGlkYXRl
IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBjYW5kaWRhdGU7CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc2RwTWlkOworICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgc2RwTUxpbmVJbmRleDsKKyAgICB9OworCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggYjYwMjJlMzQwYjkyMDcyYWU1ZGRjN2FiODI2ODNiOTc3MTNhMjc4
Ny4uYjc0N2I1YzNjNTU5ZTc4NTQ2MDEyMzc2YTM4MDE3OWY5MDA4MmY2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtNDU1LDYgKzQ1NSw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJl
YW0vUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVk
aWFzdHJlYW0vUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5oJywKKyAgICAgICAgICAgICdw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmNwcCcsCisgICAg
ICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5o
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2xpZW50LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFt
L1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwJywKQEAgLTg1Myw2ICs4NTUsNyBAQAog
ICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JD
YWxsYmFjay5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9y
VXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRp
YXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmlkbCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRp
YXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL25v
dGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwnLApAQCAtMTU4OSw2ICsxNTky
LDggQEAKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRp
YVN1Y2Nlc3NDYWxsYmFjay5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1Bl
ZXJDb25uZWN0aW9uMDAuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1Bl
ZXJDb25uZWN0aW9uMDAuaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJ
Y2VDYW5kaWRhdGUuY3BwJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0lj
ZUNhbmRpZGF0ZS5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25E
ZXNjcmlwdGlvbi5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zNGJiNGJlY2U1ZDAwZjQwYWM3NmYwN2M4ZGYzZjFkYWY1NWVjOTVhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlk
YXRlRGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24u
CisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSVENJY2VDYW5k
aWRhdGVEZXNjcmlwdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxS
VENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPiBSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOjpjcmVh
dGUoY29uc3QgU3RyaW5nJiBjYW5kaWRhdGUsIGNvbnN0IFN0cmluZyYgc2RwTWlkLCB1bnNpZ25l
ZCBzaG9ydCBzZHBNTGluZUluZGV4KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUlRDSWNl
Q2FuZGlkYXRlRGVzY3JpcHRvcihjYW5kaWRhdGUsIHNkcE1pZCwgc2RwTUxpbmVJbmRleCkpOwor
fQorCitSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOjpSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9y
KGNvbnN0IFN0cmluZyYgY2FuZGlkYXRlLCBjb25zdCBTdHJpbmcmIHNkcE1pZCwgdW5zaWduZWQg
c2hvcnQgc2RwTUxpbmVJbmRleCkKKyAgICA6IG1fY2FuZGlkYXRlKGNhbmRpZGF0ZSkKKyAgICAs
IG1fc2RwTWlkKHNkcE1pZCkKKyAgICAsIG1fc2RwTUxpbmVJbmRleChzZHBNTGluZUluZGV4KQor
eworfQorCitSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOjp+UlRDSWNlQ2FuZGlkYXRlRGVzY3Jp
cHRvcigpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjVhZjFlNDMyYzNmY2RmN2RhNjI3YmQ1M2I4YTg1YjI2MWUyOTJiMQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZURl
c2NyaXB0b3IuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMu
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29u
dHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSVENJY2VDYW5kaWRh
dGVEZXNjcmlwdG9yX2gKKyNkZWZpbmUgUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcl9oCisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0
b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPiB7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4gY3Jl
YXRlKGNvbnN0IFN0cmluZyYgY2FuZGlkYXRlLCBjb25zdCBTdHJpbmcmIHNkcE1pZCwgdW5zaWdu
ZWQgc2hvcnQgc2RwTUxpbmVJbmRleCk7CisgICAgdmlydHVhbCB+UlRDSWNlQ2FuZGlkYXRlRGVz
Y3JpcHRvcigpOworCisgICAgY29uc3QgU3RyaW5nJiBjYW5kaWRhdGUoKSB7IHJldHVybiBtX2Nh
bmRpZGF0ZTsgfQorICAgIGNvbnN0IFN0cmluZyYgc2RwTWlkKCkgeyByZXR1cm4gbV9zZHBNaWQ7
IH0KKyAgICB1bnNpZ25lZCBzaG9ydCBzZHBNTGluZUluZGV4KCkgeyByZXR1cm4gbV9zZHBNTGlu
ZUluZGV4OyB9CisKK3ByaXZhdGU6CisgICAgUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcihjb25z
dCBTdHJpbmcmIGNhbmRpZGF0ZSwgY29uc3QgU3RyaW5nJiBzZHBNaWQsIHVuc2lnbmVkIHNob3J0
IHNkcE1MaW5lSW5kZXgpOworCisgICAgU3RyaW5nIG1fY2FuZGlkYXRlOworICAgIFN0cmluZyBt
X3NkcE1pZDsKKyAgICB1bnNpZ25lZCBzaG9ydCBtX3NkcE1MaW5lSW5kZXg7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisj
ZW5kaWYgLy8gUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcl9oCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzgwNWIwNjg3MTM4
MGM3YjVhZjYyMDUyZDQwZGFlN2I2ODkwNzcxYy4uYjA1NWFjZjE0NGQxNTYxMWMzNGI1ZjRmZTNm
NTU3ZDc5MGRhZmNiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA4LTIyICBUb21teSBX
aWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQ
STogSW50cm9kdWNlIFJUQ0ljZUNhbmRpZGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTMxMTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9SVENJY2VDYW5k
aWRhdGUuaHRtbDogQWRkZWQuCisKIDIwMTItMDgtMjIgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55
YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFRlc3QgYW5kIHRlc3QgZXhwZWN0YXRpb24gb2Yg
U2hhZG93IERPTSBmb3IgYnV0dG9uIHNob3VsZCBiZSBmaXhlZC4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jMTVjNjU3N2YwZjU4YWZmMzUzMjQzM2JkYWE5NmI3MjJiZDhjMDdlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRh
dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK1Rlc3RzIFJUQ0ljZUNhbmRpZGF0ZS4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY2FuZGlkYXRlID0gbmV3IFJU
Q0ljZUNhbmRpZGF0ZShpbml0aWFsaXplcik7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFT
UyBjYW5kaWRhdGUuY2FuZGlkYXRlIGlzICJmb28iCitQQVNTIGNhbmRpZGF0ZS5zZHBNaWQgaXMg
ImJhciIKK1BBU1MgY2FuZGlkYXRlLnNkcE1MaW5lSW5kZXggaXMgNgorUEFTUyBjYW5kaWRhdGUg
PSBuZXcgUlRDSWNlQ2FuZGlkYXRlKGluaXRpYWxpemVyKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRp
b24uCitQQVNTIGNhbmRpZGF0ZS5jYW5kaWRhdGUgaXMgImZvbyIKK1BBU1MgY2FuZGlkYXRlLnNk
cE1pZCBpcyAiYmFyIgorUEFTUyBjYW5kaWRhdGUuc2RwTUxpbmVJbmRleCBpcyA2CitQQVNTIG5l
dyBSVENJY2VDYW5kaWRhdGUoe30pOyB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFU
Q0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBuZXcgUlRDSWNlQ2FuZGlkYXRlKDUpOyB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgYW4gb2JqZWN0Li4KK1BBU1MgbmV3IFJUQ0lj
ZUNhbmRpZGF0ZSgiZm9vYmFyIik7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBhbiBv
YmplY3QuLgorUEFTUyBuZXcgUlRDSWNlQ2FuZGlkYXRlKGNhbmRpZGF0ZToiIik7IHRocmV3IGV4
Y2VwdGlvbiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiA6LgorUEFTUyBuZXcgUlRDSWNl
Q2FuZGlkYXRlKHtjYW5kaWRhdGU6IngifSk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZhMmExNjQ3ZmQwMjYwNDEzZjQ1Njc0YzkyM2VkZTI4NGVjZGYwNzIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5odG1s
CkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbigiVGVzdHMgUlRDSWNlQ2FuZGlkYXRlLiIpOworCit2YXIgaW5pdGlhbGl6ZXIg
PSB7Y2FuZGlkYXRlOiJmb28iLCBzZHBNaWQ6ImJhciIsIHNkcE1MaW5lSW5kZXg6Nn07Cit2YXIg
Y2FuZGlkYXRlOworc2hvdWxkTm90VGhyb3coJ2NhbmRpZGF0ZSA9IG5ldyBSVENJY2VDYW5kaWRh
dGUoaW5pdGlhbGl6ZXIpOycpOworc2hvdWxkQmUoJ2NhbmRpZGF0ZS5jYW5kaWRhdGUnLCAnImZv
byInKTsKK3Nob3VsZEJlKCdjYW5kaWRhdGUuc2RwTWlkJywgJyJiYXIiJyk7CitzaG91bGRCZSgn
Y2FuZGlkYXRlLnNkcE1MaW5lSW5kZXgnLCAnNicpOworCitpbml0aWFsaXplciA9IEpTT04ucGFy
c2UoSlNPTi5zdHJpbmdpZnkoY2FuZGlkYXRlKSk7CitzaG91bGROb3RUaHJvdygnY2FuZGlkYXRl
ID0gbmV3IFJUQ0ljZUNhbmRpZGF0ZShpbml0aWFsaXplcik7Jyk7CitzaG91bGRCZSgnY2FuZGlk
YXRlLmNhbmRpZGF0ZScsICciZm9vIicpOworc2hvdWxkQmUoJ2NhbmRpZGF0ZS5zZHBNaWQnLCAn
ImJhciInKTsKK3Nob3VsZEJlKCdjYW5kaWRhdGUuc2RwTUxpbmVJbmRleCcsICc2Jyk7CisKK3No
b3VsZFRocm93KCduZXcgUlRDSWNlQ2FuZGlkYXRlKHt9KTsnKTsKK3Nob3VsZFRocm93KCduZXcg
UlRDSWNlQ2FuZGlkYXRlKDUpOycpOworc2hvdWxkVGhyb3coJ25ldyBSVENJY2VDYW5kaWRhdGUo
ImZvb2JhciIpOycpOworc2hvdWxkVGhyb3coJ25ldyBSVENJY2VDYW5kaWRhdGUoY2FuZGlkYXRl
OiIiKTsnKTsKKworc2hvdWxkTm90VGhyb3coJ25ldyBSVENJY2VDYW5kaWRhdGUoe2NhbmRpZGF0
ZToieCJ9KTsnKTsKKword2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>