<?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>95745</bug_id>
          
          <creation_ts>2012-09-04 07:11:46 -0700</creation_ts>
          <short_desc>[GTK] Move user agent helpers to WebCore</short_desc>
          <delta_ts>2012-09-07 10:51:41 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>95697</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>cgarcia</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>711091</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-09-04 07:11:46 -0700</bug_when>
    <thetext>We can move user agent helpers to WebCore so that they can more easily be shared with WebKit2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713700</commentid>
    <comment_count>1</comment_count>
      <attachid>162584</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-09-06 14:24:22 -0700</bug_when>
    <thetext>Created attachment 162584
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714221</commentid>
    <comment_count>2</comment_count>
      <attachid>162584</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-07 00:42:27 -0700</bug_when>
    <thetext>Comment on attachment 162584
Patch

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

Looks good to me, just consider adding a default application name when not provided.

&gt; Source/WebCore/platform/gtk/UserAgentGtk.cpp:102
&gt; +    return String::format(&quot;%s %s/%s&quot;, staticUA.utf8().data(), applicationName.utf8().data(), finalApplicationVersion.utf8().data());

So, if application name is empty, we end up with something like &quot;/1.2.3&quot;, it&apos;s a bit weird. If we don&apos;t want to use the program name as default we could use something like &quot;WebKitGTK+ based browser/1.2.3&quot;

&gt; Source/WebCore/platform/gtk/UserAgentGtk.h.in:38
&gt; +const char* platformForUAString();
&gt; +String platformVersionForUAString();

Do we need these to be public?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714559</commentid>
    <comment_count>3</comment_count>
      <attachid>162584</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-09-07 08:49:56 -0700</bug_when>
    <thetext>Comment on attachment 162584
Patch

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

&gt;&gt; Source/WebCore/platform/gtk/UserAgentGtk.cpp:102
&gt;&gt; +    return String::format(&quot;%s %s/%s&quot;, staticUA.utf8().data(), applicationName.utf8().data(), finalApplicationVersion.utf8().data());
&gt; 
&gt; So, if application name is empty, we end up with something like &quot;/1.2.3&quot;, it&apos;s a bit weird. If we don&apos;t want to use the program name as default we could use something like &quot;WebKitGTK+ based browser/1.2.3&quot;

If the application name is empty, we&apos;ve already returned early by this point because at line 95 we have:

if (applicationName.isEmpty())
    return staticUA;

&gt;&gt; Source/WebCore/platform/gtk/UserAgentGtk.h.in:38
&gt;&gt; +String platformVersionForUAString();
&gt; 
&gt; Do we need these to be public?

Nope! They were left over from a previous design. I&apos;ll make them static.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714566</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-07 08:57:11 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 162584 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=162584&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/gtk/UserAgentGtk.cpp:102
&gt; &gt;&gt; +    return String::format(&quot;%s %s/%s&quot;, staticUA.utf8().data(), applicationName.utf8().data(), finalApplicationVersion.utf8().data());
&gt; &gt; 
&gt; &gt; So, if application name is empty, we end up with something like &quot;/1.2.3&quot;, it&apos;s a bit weird. If we don&apos;t want to use the program name as default we could use something like &quot;WebKitGTK+ based browser/1.2.3&quot;
&gt; 
&gt; If the application name is empty, we&apos;ve already returned early by this point because at line 95 we have:
&gt; 
&gt; if (applicationName.isEmpty())
&gt;     return staticUA;

Perfect then, I missed that, sorry.

&gt; &gt;&gt; Source/WebCore/platform/gtk/UserAgentGtk.h.in:38
&gt; &gt;&gt; +String platformVersionForUAString();
&gt; &gt; 
&gt; &gt; Do we need these to be public?
&gt; 
&gt; Nope! They were left over from a previous design. I&apos;ll make them static.

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714605</commentid>
    <comment_count>5</comment_count>
      <attachid>162788</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-09-07 09:36:29 -0700</bug_when>
    <thetext>Created attachment 162788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714733</commentid>
    <comment_count>6</comment_count>
      <attachid>162788</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-09-07 10:51:38 -0700</bug_when>
    <thetext>Comment on attachment 162788
Patch

Clearing flags on attachment: 162788

Committed r127889: &lt;http://trac.webkit.org/changeset/127889&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714734</commentid>
    <comment_count>7</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-09-07 10:51:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162584</attachid>
            <date>2012-09-06 14:24:22 -0700</date>
            <delta_ts>2012-09-07 09:36:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95745-20120906142402.patch</filename>
            <type>text/plain</type>
            <size>14973</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTAzNjAwZWE3MGM1YzBl
NTdkYWYzMTM1M2Q5ODQ0YWQxNDFmMTMyMy4uZjhhYWM4NDgxMzZmOWYwOWFkOTBkZWUwZTFhZGRi
ZTNkYWU5N2EyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA5LTA0ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBNb3Zl
IHVzZXIgYWdlbnQgaGVscGVycyB0byBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTc0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1vdmVkIHRoZSB1c2VyIGFnZW50IGRldGVybWluYXRpb24g
Y29kZSBmcm9tIFdlYktpdDEgdG8gV2ViQ29yZSBzbyB0aGF0IGl0IGNhbgorICAgICAgICBiZSBz
aGFyZWQgd2l0aCBXZWJLaXQyLiBBbHNvIGFkZCBhIG1ldGhvZCBmb3IgY3JlYXRpbmcgdGhlIHVz
ZXIgYWdlbnQgZ2l2ZW4KKyAgICAgICAgYSBub24tZGVmYXVsdCBhcHBsaWNhdGlvbiBuYW1lLgor
CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogQWRkIG5ldyBmaWxlcyB0byB0aGUgbGlz
dC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVXNlckFnZW50R3RrLmNwcDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3RrL1VzZXJBZ2VudEd0ay5oLmluOiBBZGRlZC4KKwogMjAxMi0wOS0w
NiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3Zl
IFJlbmRlclZpZXc6OnNldEZpeGVkUG9zaXRpb25lZE9iamVjdHNOZWVkTGF5b3V0IHRvIEZyYW1l
VmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGMwOTg1OWFhZWQ5YTQxYWRiNTk2ZjAwZGRkMjBlNGYy
MzkxMzJhZDIuLjIwM2UzMzU3NzM5MGRkNTVhYTgzMmRkNTYxZjdkYzY5MDllZjRhZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wOS0wNCAgTWFydGluIFJvYmluc29u
ICA8bXJvYmluc29uQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gTW92ZSB1c2VyIGFnZW50
IGhlbHBlcnMgdG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTU3NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNb3ZlIHRoZSBjb2RlIGZvciBkZXRlcm1pbmluZyB0aGUgdXNlciBhZ2VudCB0
byBXZWJDb3JlIGFuZCBoYXZlIFdlYktpdDEKKyAgICAgICAgdXNlIHRoZSBuZXcgc2hhcmVkIGNv
ZGUuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOiBVc2UgdGhlIFdl
YkNvcmUgY29kZSB0byBkZXRlcm1pbmUgdGhlIHVzZXIKKyAgICAgICAgYWdlbnQgaW4gV2ViS2l0
MS4KKwogMjAxMi0wOS0wNSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFBhcnQgMiBvZiByZW1vdmluZyBQbGF0Zm9ybVN0cmluZy5oLCByZW1vdmUgUGxhdGZvcm1TdHJp
bmcuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMmRmMzVlZDRiYTlmMWQyN2I1
NmExNmFlMzM5OTJjOWJlY2UzYTlhOS4uMTgzZGQzNDQ0MTM4Y2RmMDg2YjY4ZjA3YmIyZWE0M2Ri
MTdmYTRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xMTQ1LDYgKzExNDUs
NyBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
TWF0aE1MTmFtZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9TVkdFbGVtZW50RmFjdG9y
eS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvU1ZHTmFtZXMuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL1VzZXJBZ2VudEd0ay5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L1VzZXJBZ2VudFN0eWxlU2hlZXRzRGF0YS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
VXNlckFnZW50U3R5bGVTaGVldHMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9XZWJLaXRG
b250RmFtaWx5TmFtZXMuY3BwIFwKQEAgLTQ0ODMsNiArNDQ4NCw3IEBAIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvZ2dpbmdHdGsuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTUlNRVR5cGVSZWdpc3RyeUd0ay5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TaGFyZWRCdWZmZXJHdGsuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvVXNlckFnZW50R3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0hvc3RXaW5kb3cuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vS2lsbFJpbmcu
aCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvVXNlckFnZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Vc2VyQWdlbnRHdGsuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmMwYWYwYzVhN2FhYmRlMjBiMWY4N2EyZGRmOTk3Nzg1YTRmMzc1YzMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvVXNlckFnZW50R3RrLmNwcApA
QCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJVc2VyQWdlbnRHdGsuaCIKKwor
I2luY2x1ZGUgPGdsaWIuaD4KKworI2lmIE9TKFVOSVgpCisjaW5jbHVkZSA8c3lzL3V0c25hbWUu
aD4KKyNlbGlmIE9TKFdJTkRPV1MpCisjaW5jbHVkZSAiU3lzdGVtSW5mby5oIgorI2VuZGlmCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3QgY2hhciogcGxhdGZvcm1Gb3JVQVN0cmluZygp
Cit7CisjaWYgUExBVEZPUk0oWDExKQorICAgIHJldHVybiAiWDExIjsKKyNlbGlmIE9TKFdJTkRP
V1MpCisgICAgcmV0dXJuICIiOworI2VsaWYgUExBVEZPUk0oTUFDKQorICAgIHJldHVybiAiTWFj
aW50b3NoIjsKKyNlbGlmIGRlZmluZWQoR0RLX1dJTkRPV0lOR19ESVJFQ1RGQikKKyAgICByZXR1
cm4gIkRpcmVjdEZCIjsKKyNlbHNlCisgICAgcmV0dXJuICJVbmtub3duIjsKKyNlbmRpZgorfQor
CitTdHJpbmcgcGxhdGZvcm1WZXJzaW9uRm9yVUFTdHJpbmcoKQoreworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCB1YU9TVmVyc2lvbiwgKFN0cmluZygpKSk7CisgICAgaWYgKCF1YU9T
VmVyc2lvbi5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB1YU9TVmVyc2lvbjsKKworI2lmIE9T
KFdJTkRPV1MpCisgICAgdWFPU1ZlcnNpb24gPSB3aW5kb3dzVmVyc2lvbkZvclVBU3RyaW5nKCk7
CisjZWxpZiBPUyhEQVJXSU4pCisjaWYgQ1BVKFg4NikKKyAgICB1YU9TVmVyc2lvbiA9ICJJbnRl
bCBNYWMgT1MgWCI7CisjZWxzZQorICAgIHVhT1NWZXJzaW9uID0gIlBQQyBNYWMgT1MgWCI7Cisj
ZW5kaWYKKyNlbGlmIE9TKFVOSVgpCisgICAgc3RydWN0IHV0c25hbWUgbmFtZTsKKyAgICBpZiAo
dW5hbWUoJm5hbWUpICE9IC0xKQorICAgICAgICB1YU9TVmVyc2lvbiA9IFN0cmluZzo6Zm9ybWF0
KCIlcyAlcyIsIG5hbWUuc3lzbmFtZSwgbmFtZS5tYWNoaW5lKTsKKyAgICBlbHNlCisgICAgICAg
IHVhT1NWZXJzaW9uID0gU3RyaW5nKCJVbmtub3duIik7CisjZWxzZQorICAgIHVhT1NWZXJzaW9u
ID0gU3RyaW5nKCJVbmtub3duIik7CisjZW5kaWYKKyAgICByZXR1cm4gdWFPU1ZlcnNpb247Cit9
CisKK1N0cmluZyBzdGFuZGFyZFVzZXJBZ2VudChjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFt
ZSwgY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvblZlcnNpb24pCit7CisgICAgLy8gQ3JlYXRlIGEg
ZGVmYXVsdCB1c2VyIGFnZW50IHN0cmluZyB3aXRoIGEgbGliZXJhbCBpbnRlcnByZXRhdGlvbiBv
ZiAKKyAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1VzZXJf
QWdlbnRfU3RyaW5nc19SZWZlcmVuY2UKKyAgICAvLworICAgIC8vIEZvcm1pbmcgYSBmdW5jdGlv
bmFsIHVzZXIgYWdlbnQgaXMgcmVhbGx5IGRpZmZpY3VsdC4gV2UgbXVzdCBtZW50aW9uIFNhZmFy
aSwgYmVjYXVzZSBzb21lCisgICAgLy8gc2l0ZXMgY2hlY2sgZm9yIHRoYXQgd2hlbiBkZXRlY3Rp
bmcgV2ViS2l0IGJyb3dzZXJzLiBBZGRpdGlvbmFsbHkgc29tZSBzaXRlcyBhc3N1bWUgdGhhdAor
ICAgIC8vIGJyb3dzZXJzIHRoYXQgYXJlICJTYWZhcmkiIGJ1dCBub3QgcnVubmluZyBvbiBPUyBY
IGFyZSB0aGUgU2FmYXJpIGlPUyBicm93c2VyLCBzbyB3ZQorICAgIC8vIGFsc28gY2xhaW0gdG8g
YmUgIENocm9taXVtLiBHZXR0aW5nIHRoaXMgd3JvbmcgY2FuIGNhdXNlIHNpdGVzIHRvIGxvYWQg
dGhlIHdyb25nIEphdmFTY3JpcHQsCisgICAgLy8gQ1NTLCBvciBjdXN0b20gZm9udHMuIEluIHNv
bWUgY2FzZXMgc2l0ZXMgd29uJ3QgbG9hZCByZXNvdXJjZXMgYXQgYWxsLgorICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQ1N0cmluZywgdWFWZXJzaW9uLCAoU3RyaW5nOjpmb3JtYXQoIiVp
LiVpIiwgV0VCS0lUX1VTRVJfQUdFTlRfTUFKT1JfVkVSU0lPTiwgV0VCS0lUX1VTRVJfQUdFTlRf
TUlOT1JfVkVSU0lPTikudXRmOCgpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dHJpbmcsIHN0YXRpY1VBLCAoU3RyaW5nOjpmb3JtYXQoIk1vemlsbGEvNS4wICglczsgJXMpIEFw
cGxlV2ViS2l0LyVzIChLSFRNTCwgbGlrZSBHZWNrbykgIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDaHJvbWl1bS8xOC4w
LjEwMjUuMTY4IENocm9tZS8xOC4wLjEwMjUuMTY4IFNhZmFyaS8lcyIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZv
cm1Gb3JVQVN0cmluZygpLCBwbGF0Zm9ybVZlcnNpb25Gb3JVQVN0cmluZygpLnV0ZjgoKS5kYXRh
KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdWFWZXJzaW9uLmRhdGEoKSwgdWFWZXJzaW9uLmRhdGEoKSkpKTsKKyAgICBp
ZiAoYXBwbGljYXRpb25OYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY1VBOwor
CisgICAgU3RyaW5nIGZpbmFsQXBwbGljYXRpb25WZXJzaW9uID0gYXBwbGljYXRpb25WZXJzaW9u
OworICAgIGlmIChmaW5hbEFwcGxpY2F0aW9uVmVyc2lvbi5pc0VtcHR5KCkpCisgICAgICAgIGZp
bmFsQXBwbGljYXRpb25WZXJzaW9uID0gdWFWZXJzaW9uLmRhdGEoKTsKKworICAgIHJldHVybiBT
dHJpbmc6OmZvcm1hdCgiJXMgJXMvJXMiLCBzdGF0aWNVQS51dGY4KCkuZGF0YSgpLCBhcHBsaWNh
dGlvbk5hbWUudXRmOCgpLmRhdGEoKSwgZmluYWxBcHBsaWNhdGlvblZlcnNpb24udXRmOCgpLmRh
dGEoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1VzZXJBZ2VudEd0ay5oLmluIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1VzZXJBZ2VudEd0ay5oLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4YTQxNDk5NWVjZGEw
YTZkNDY5ZTQ5OTRmOTgyNDAyZDQyNzJjZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvVXNlckFnZW50R3RrLmguaW4KQEAgLTAsMCArMSw0NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVXNlckFn
ZW50R3RrX2gKKyNkZWZpbmUgVXNlckFnZW50R3RrX2gKKworI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworI2RlZmluZSBXRUJL
SVRfVVNFUl9BR0VOVF9NQUpPUl9WRVJTSU9OIChAV0VCS0lUX1VTRVJfQUdFTlRfTUFKT1JfVkVS
U0lPTkApCisjZGVmaW5lIFdFQktJVF9VU0VSX0FHRU5UX01JTk9SX1ZFUlNJT04gKEBXRUJLSVRf
VVNFUl9BR0VOVF9NSU5PUl9WRVJTSU9OQCkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjb25z
dCBjaGFyKiBwbGF0Zm9ybUZvclVBU3RyaW5nKCk7CitTdHJpbmcgcGxhdGZvcm1WZXJzaW9uRm9y
VUFTdHJpbmcoKTsKK1N0cmluZyBzdGFuZGFyZFVzZXJBZ2VudChjb25zdCBTdHJpbmcmIGFwcGxp
Y2F0aW9uTmFtZSA9ICIiLCBjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uVmVyc2lvbiA9ICIiKTsK
KworfQorCisjZW5kaWYgLy8gVXNlckFnZW50R3RrX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKaW5kZXggY2ZmZTFkYzVlMDlmODQxZGQ5YjNj
OTA4NjY0ZWZhMjg4OThhMzFlZC4uYjkzMzYxMTA1NmFhZWJlOTk4ZTRkODlhYzFiOTdlZmFjMDZj
M2NjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRp
bmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Mu
Y3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUg
IktVUkwuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhYmFzZS5oIgorI2luY2x1ZGUgIlVzZXJBZ2Vu
dEd0ay5oIgogI2luY2x1ZGUgIndlYmtpdGVudW10eXBlcy5oIgogI2luY2x1ZGUgIndlYmtpdGds
b2JhbHNwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0dmVyc2lvbi5oIgpAQCAtMzksMTIgKzQw
LDYgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oPgogI2luY2x1ZGUg
PGdsaWIvZ2kxOG4tbGliLmg+CiAKLSNpZiBPUyhVTklYKQotI2luY2x1ZGUgPHN5cy91dHNuYW1l
Lmg+Ci0jZWxpZiBPUyhXSU5ET1dTKQotI2luY2x1ZGUgIlN5c3RlbUluZm8uaCIKLSNlbmRpZgot
CiAvKioKICAqIFNFQ1RJT046d2Via2l0d2Vic2V0dGluZ3MKICAqIEBzaG9ydF9kZXNjcmlwdGlv
bjogQ29udHJvbCB0aGUgYmVoYXZpb3VyIG9mIGEgI1dlYktpdFdlYlZpZXcKQEAgLTEyNiw3MSAr
MTIxLDYgQEAgZW51bSB7CiAgICAgUFJPUF9NRURJQV9QTEFZQkFDS19BTExPV1NfSU5MSU5FCiB9
OwogCi0vLyBDcmVhdGUgYSBkZWZhdWx0IHVzZXIgYWdlbnQgc3RyaW5nCi0vLyBUaGlzIGlzIGEg
bGliZXJhbCBpbnRlcnByZXRhdGlvbiBvZiBodHRwOi8vd3d3Lm1vemlsbGEub3JnL2J1aWxkL3Jl
dmlzZWQtdXNlci1hZ2VudC1zdHJpbmdzLmh0bWwKLS8vIFNlZSBhbHNvIGh0dHA6Ly9kZXZlbG9w
ZXIuYXBwbGUuY29tL2ludGVybmV0L3NhZmFyaS9mYXEuaHRtbCNhbmNob3IyCi1zdGF0aWMgU3Ry
aW5nIHdlYmtpdFBsYXRmb3JtKCkKLXsKLSNpZiBQTEFURk9STShYMTEpCi0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHVhUGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoIlgxMTsg
IikpKTsKLSNlbGlmIE9TKFdJTkRPV1MpCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dHJpbmcsIHVhUGxhdGZvcm0sIChTdHJpbmcoIiIpKSk7Ci0jZWxpZiBQTEFURk9STShNQUMpCi0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHVhUGxhdGZvcm0sIChBU0NJSUxp
dGVyYWwoIk1hY2ludG9zaDsgIikpKTsKLSNlbGlmIGRlZmluZWQoR0RLX1dJTkRPV0lOR19ESVJF
Q1RGQikKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdWFQbGF0Zm9ybSwg
KEFTQ0lJTGl0ZXJhbCgiRGlyZWN0RkI7ICIpKSk7Ci0jZWxzZQotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgU3RyaW5nLCB1YVBsYXRmb3JtLCAoQVNDSUlMaXRlcmFsKCJVbmtub3duOyAi
KSkpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gdWFQbGF0Zm9ybTsKLX0KLQotc3RhdGljIFN0cmlu
ZyB3ZWJraXRPU1ZlcnNpb24oKQotewotICAgLy8gRklYTUU6IHBsYXRmb3JtL3ZlcnNpb24gZGV0
ZWN0aW9uIGNhbiBiZSBzaGFyZWQuCi0jaWYgT1MoREFSV0lOKQotCi0jaWYgQ1BVKFg4NikKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdWFPU1ZlcnNpb24sIChBU0NJSUxp
dGVyYWwoIkludGVsIE1hYyBPUyBYIikpKTsKLSNlbHNlCi0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIHVhT1NWZXJzaW9uLCAoQVNDSUlMaXRlcmFsKCJQUEMgTWFjIE9TIFgi
KSkpOwotI2VuZGlmCi0KLSNlbGlmIE9TKFVOSVgpCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChT
dHJpbmcsIHVhT1NWZXJzaW9uLCAoU3RyaW5nKCkpKTsKLQotICAgIGlmICghdWFPU1ZlcnNpb24u
aXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gdWFPU1ZlcnNpb247Ci0KLSAgICBzdHJ1Y3QgdXRz
bmFtZSBuYW1lOwotICAgIGlmICh1bmFtZSgmbmFtZSkgIT0gLTEpCi0gICAgICAgIHVhT1NWZXJz
aW9uID0gbWFrZVN0cmluZyhuYW1lLnN5c25hbWUsICcgJywgbmFtZS5tYWNoaW5lKTsKLSAgICBl
bHNlCi0gICAgICAgIHVhT1NWZXJzaW9uID0gQVNDSUlMaXRlcmFsKCJVbmtub3duIik7Ci0jZWxp
ZiBPUyhXSU5ET1dTKQotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB1YU9T
VmVyc2lvbiwgKHdpbmRvd3NWZXJzaW9uRm9yVUFTdHJpbmcoKSkpOwotI2Vsc2UKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdWFPU1ZlcnNpb24sIChBU0NJSUxpdGVyYWwo
IlVua25vd24iKSkpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gdWFPU1ZlcnNpb247Ci19Ci0KLXN0
YXRpYyBTdHJpbmcgY2hyb21lVXNlckFnZW50KCkKLXsKLSAgICAvLyBXZSBtZW50aW9uIFNhZmFy
aSBzaW5jZSBtYW55IGJyb2tlbiBzaXRlcyBjaGVjayBmb3IgaXQgKE9tbmlXZWIgZG9lcyB0aGlz
IHRvbykKLSAgICAvLyBXZSByZS11c2UgdGhlIFdlYktpdCB2ZXJzaW9uLCB0aG91Z2ggaXQgZG9l
c24ndCBzZWVtIHRvIG1hdHRlciBtdWNoIGluIHByYWN0aWNlCi0gICAgLy8gV2UgY2xhaW0gdG8g
YmUgQ2hyb21lIGFzIHdlbGwsIHdoaWNoIHByZXZlbnRzIHNpdGVzIHRoYXQgbG9vayBmb3IgU2Fm
YXJpIGFuZCBhc3N1bWUKLSAgICAvLyB0aGF0IHNpbmNlIHdlIGFyZSBub3QgT1MgWCwgdGhhdCB3
ZSBhcmUgdGhlIG1vYmlsZSB2ZXJzaW9uIG9mIFNhZmFyaS4KLQotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgU3RyaW5nLCB1YVZlcnNpb24sIChtYWtlU3RyaW5nKFN0cmluZzo6bnVtYmVy
KFdFQktJVF9VU0VSX0FHRU5UX01BSk9SX1ZFUlNJT04pLCAnLicsIFN0cmluZzo6bnVtYmVyKFdF
QktJVF9VU0VSX0FHRU5UX01JTk9SX1ZFUlNJT04pLCAnKycpKSk7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIHN0YXRpY1VBLCAobWFrZVN0cmluZygiTW96aWxsYS81LjAg
KCIsIHdlYmtpdFBsYXRmb3JtKCksIHdlYmtpdE9TVmVyc2lvbigpLCAiKSBBcHBsZVdlYktpdC8i
LCB1YVZlcnNpb24pICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtYWtlU3RyaW5nKCIgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWl1bS8xNy4wLjk2
My41NiBDaHJvbWUvMTcuMC45NjMuNTYgU2FmYXJpLyIsIHVhVmVyc2lvbikpKTsKLQotICAgIHJl
dHVybiBzdGF0aWNVQTsKLX0KLQogc3RhdGljIHZvaWQgd2Via2l0X3dlYl9zZXR0aW5nc19maW5h
bGl6ZShHT2JqZWN0KiBvYmplY3QpOwogCiBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3NldHRpbmdz
X3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIGNvbnN0IEdWYWx1
ZSogdmFsdWUsIEdQYXJhbVNwZWMqIHBzcGVjKTsKQEAgLTExMjUsNyArMTA1NSw3IEBAIHN0YXRp
YyB2b2lkIHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwg
Z3VpbnQgcHJvcF9pZCwgY29uCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUFJPUF9VU0VSX0FH
RU5UOgogICAgICAgICBpZiAoIWdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkgfHwgIXN0cmxlbihn
X3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKSkKLSAgICAgICAgICAgIHByaXYtPnVzZXJBZ2VudCA9
IGNocm9tZVVzZXJBZ2VudCgpLnV0ZjgoKTsKKyAgICAgICAgICAgIHByaXYtPnVzZXJBZ2VudCA9
IHN0YW5kYXJkVXNlckFnZW50KCkudXRmOCgpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBw
cml2LT51c2VyQWdlbnQgPSBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpOwogICAgICAgICBicmVh
azsKQEAgLTE1NTksNyArMTQ4OSw3IEBAIHN0YXRpYyBTdHJpbmcgdXNlckFnZW50Rm9yVVJMKGNv
bnN0IEtVUkwmIHVybCkKICAgICAvLyBGb3IgR29vZ2xlIGRvbWFpbnMsIGRyb3AgdGhlIGJyb3dz
ZXIncyBjdXN0b20gVXNlciBBZ2VudCBzdHJpbmcsIGFuZCB1c2UgdGhlCiAgICAgLy8gc3RhbmRh
cmQgQ2hyb21lIG9uZSwgc28gdGhleSBkb24ndCBnaXZlIHVzIGEgYnJva2VuIGV4cGVyaWVuY2Uu
CiAgICAgaWYgKGlzR29vZ2xlRG9tYWluKHVybC5ob3N0KCkpKQotICAgICAgICByZXR1cm4gY2hy
b21lVXNlckFnZW50KCk7CisgICAgICAgIHJldHVybiBzdGFuZGFyZFVzZXJBZ2VudCgpOwogCiAg
ICAgcmV0dXJuIFN0cmluZygpOwogfQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9n
CmluZGV4IDJiN2JjOGUxM2VlZDkwOThmMGRkNWUyM2MyYjFmZjRjMzBmYTUyODcuLmVhZGI2ZDUw
YzFmZGEyNjkzYWY0MzE4ZTYwNGUzYmY2OTM4MDdmZDEgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZwor
KysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wOS0wNCAgTWFydGluIFJvYmlu
c29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gTW92ZSB1c2VyIGFn
ZW50IGhlbHBlcnMgdG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTU3NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBhbiBhdXRvY29uZiBzdGVwIGZvciB0aGUgbmV3IHVzZXIgYWdl
bnQgc2hhcmVkIGNvZGUgaGVhZGVyIGluCisgICAgICAgIFdlYkNvcmUuIFRoaXMgaXMgbmVjZXNz
YXJ5IHNvIHRoYXQgd2UgY2FuIHVzZSB0aGUgdXNlciBhZ2VudCB2ZXJzaW9uCisgICAgICAgIGJh
c2VkIG9uIHRoZSBpbmZvcm1hdGlvbiBpbiB0aGUgY29uZmlndXJlLmFjIGZpbGUuCisKKyAgICAg
ICAgKiBjb25maWd1cmUuYWM6CisKIDIwMTItMDktMDYgIFphbiBEb2JlcnNlayAgPHphbmRvYmVy
c2VrQGdtYWlsLmNvbT4KIAogICAgICAgICBbR3RrXSBSZW1vdmUgY29uZmlndXJhdGlvbiBvcHRp
b25zIGZvciBmZWF0dXJlcyB0aGF0IGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBHdGsgcG9ydApk
aWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDMzNDYxNjg2NzY2
MGRiNTRlZmU2NTcwZjUyNGY0ZTg0MzhhMmEyMWIuLjE1YzcxODYxMzcwYzM3MGM0YzViOGUzYmY0
MGUxMTY0ZWQwOGZlZTEgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUu
YWMKQEAgLTEyODcsNiArMTI4Nyw3IEBAIEdOVW1ha2VmaWxlCiAKIEFDX0NPTkZJR19GSUxFUyhb
CiBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmVyc2lvbi5oCitEZXJpdmVkU291cmNl
cy9XZWJDb3JlL1VzZXJBZ2VudEd0ay5oOlNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Vc2Vy
QWdlbnRHdGsuaC5pbgogXSkKIAogQUNfQ09ORklHX0ZJTEVTKFsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162788</attachid>
            <date>2012-09-07 09:36:29 -0700</date>
            <delta_ts>2012-09-07 10:51:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95745-20120907093609.patch</filename>
            <type>text/plain</type>
            <size>14932</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3ODY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGI0ZGM4Y2ZmZGVjMGNj
Yjk4M2FmODM2OTJmNDNkN2FiMGE4Yjg3NS4uZDhmYjkyYzg0Yjc4ZDFiN2JiYzZjNmYzODYwYWEz
YWM0YmU4MTJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA5LTA3ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBNb3Zl
IHVzZXIgYWdlbnQgaGVscGVycyB0byBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTc0NQorCisgICAgICAgIFJldmlld2VkIGJ5IENhcmxv
cyBHYXJjaWEgQ2FtcG9zLgorCisgICAgICAgIE1vdmVkIHRoZSB1c2VyIGFnZW50IGRldGVybWlu
YXRpb24gY29kZSBmcm9tIFdlYktpdDEgdG8gV2ViQ29yZSBzbyB0aGF0IGl0IGNhbgorICAgICAg
ICBiZSBzaGFyZWQgd2l0aCBXZWJLaXQyLiBBbHNvIGFkZCBhIG1ldGhvZCBmb3IgY3JlYXRpbmcg
dGhlIHVzZXIgYWdlbnQgZ2l2ZW4KKyAgICAgICAgYSBub24tZGVmYXVsdCBhcHBsaWNhdGlvbiBu
YW1lLgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogQWRkIG5ldyBmaWxlcyB0byB0
aGUgbGlzdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVXNlckFnZW50R3RrLmNwcDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1VzZXJBZ2VudEd0ay5oLmluOiBBZGRlZC4KKwogMjAx
Mi0wOS0wNyAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogTk1JOiBtb3ZlIFdlYkNvcmUgc3BlY2lmaWMgY29kZSB0byBzZXBh
cmF0ZSBoZWFkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBjMDk4NTlhYWVkOWE0MWFkYjU5NmYwMGRk
ZDIwZTRmMjM5MTMyYWQyLi5lMzEwNjg5ZWQyMTFjYzM5NjFhODNmYjI0ZmYwZDU3YjE1MmNkZjI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDktMDcgIE1hcnRpbiBS
b2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIE1vdmUgdXNl
ciBhZ2VudCBoZWxwZXJzIHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk1NzQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdh
cmNpYSBDYW1wb3MuCisKKyAgICAgICAgTW92ZSB0aGUgY29kZSBmb3IgZGV0ZXJtaW5pbmcgdGhl
IHVzZXIgYWdlbnQgdG8gV2ViQ29yZSBhbmQgaGF2ZSBXZWJLaXQxCisgICAgICAgIHVzZSB0aGUg
bmV3IHNoYXJlZCBjb2RlLgorCisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNw
cDogVXNlIHRoZSBXZWJDb3JlIGNvZGUgdG8gZGV0ZXJtaW5lIHRoZSB1c2VyCisgICAgICAgIGFn
ZW50IGluIFdlYktpdDEuCisKIDIwMTItMDktMDUgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBQYXJ0IDIgb2YgcmVtb3ZpbmcgUGxhdGZvcm1TdHJpbmcuaCwgcmVtb3Zl
IFBsYXRmb3JtU3RyaW5nLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDU2ZTk4
NTY1NjI4NWVhZWZlYTY3MDQ3OGFkNGFiYjY3MDAwNzBlYjYuLjI1MmE2Y2Y5YThjNWI3ODI2MmNk
ZGZjOTQyNWEzMjIwMDFmMDU3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
MTE0NSw2ICsxMTQ1LDcgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL01hdGhNTE5hbWVzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvU1ZH
RWxlbWVudEZhY3RvcnkuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL1NWR05hbWVzLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Vc2VyQWdlbnRHdGsuaCBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9Vc2VyQWdlbnRTdHlsZVNoZWV0c0RhdGEuY3BwIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL1VzZXJBZ2VudFN0eWxlU2hlZXRzLmggXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvV2ViS2l0Rm9udEZhbWlseU5hbWVzLmNwcCBcCkBAIC00NDg2LDYgKzQ0ODcsNyBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2dnaW5n
R3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL01JTUVUeXBlUmVnaXN0cnlH
dGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2hhcmVkQnVmZmVyR3RrLmNw
cCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1VzZXJBZ2VudEd0ay5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0tpbGxSaW5nLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1VzZXJBZ2VudEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvVXNlckFnZW50
R3RrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42N2Q0ODU5OGMyMDI2NzA3N2E2YTA1NWE1NWM2ZDZmZTMyNjhl
YjJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1VzZXJB
Z2VudEd0ay5jcHAKQEAgLTAsMCArMSwxMDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
SWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlckFn
ZW50R3RrLmgiCisKKyNpbmNsdWRlIDxnbGliLmg+CisKKyNpZiBPUyhVTklYKQorI2luY2x1ZGUg
PHN5cy91dHNuYW1lLmg+CisjZWxpZiBPUyhXSU5ET1dTKQorI2luY2x1ZGUgIlN5c3RlbUluZm8u
aCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBjb25zdCBjaGFyKiBw
bGF0Zm9ybUZvclVBU3RyaW5nKCkKK3sKKyNpZiBQTEFURk9STShYMTEpCisgICAgcmV0dXJuICJY
MTEiOworI2VsaWYgT1MoV0lORE9XUykKKyAgICByZXR1cm4gIiI7CisjZWxpZiBQTEFURk9STShN
QUMpCisgICAgcmV0dXJuICJNYWNpbnRvc2giOworI2VsaWYgZGVmaW5lZChHREtfV0lORE9XSU5H
X0RJUkVDVEZCKQorICAgIHJldHVybiAiRGlyZWN0RkIiOworI2Vsc2UKKyAgICByZXR1cm4gIlVu
a25vd24iOworI2VuZGlmCit9CisKK3N0YXRpYyBTdHJpbmcgcGxhdGZvcm1WZXJzaW9uRm9yVUFT
dHJpbmcoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB1YU9TVmVyc2lvbiwg
KFN0cmluZygpKSk7CisgICAgaWYgKCF1YU9TVmVyc2lvbi5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybiB1YU9TVmVyc2lvbjsKKworI2lmIE9TKFdJTkRPV1MpCisgICAgdWFPU1ZlcnNpb24gPSB3
aW5kb3dzVmVyc2lvbkZvclVBU3RyaW5nKCk7CisjZWxpZiBPUyhEQVJXSU4pCisjaWYgQ1BVKFg4
NikKKyAgICB1YU9TVmVyc2lvbiA9ICJJbnRlbCBNYWMgT1MgWCI7CisjZWxzZQorICAgIHVhT1NW
ZXJzaW9uID0gIlBQQyBNYWMgT1MgWCI7CisjZW5kaWYKKyNlbGlmIE9TKFVOSVgpCisgICAgc3Ry
dWN0IHV0c25hbWUgbmFtZTsKKyAgICBpZiAodW5hbWUoJm5hbWUpICE9IC0xKQorICAgICAgICB1
YU9TVmVyc2lvbiA9IFN0cmluZzo6Zm9ybWF0KCIlcyAlcyIsIG5hbWUuc3lzbmFtZSwgbmFtZS5t
YWNoaW5lKTsKKyAgICBlbHNlCisgICAgICAgIHVhT1NWZXJzaW9uID0gU3RyaW5nKCJVbmtub3du
Iik7CisjZWxzZQorICAgIHVhT1NWZXJzaW9uID0gU3RyaW5nKCJVbmtub3duIik7CisjZW5kaWYK
KyAgICByZXR1cm4gdWFPU1ZlcnNpb247Cit9CisKK1N0cmluZyBzdGFuZGFyZFVzZXJBZ2VudChj
b25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZSwgY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvblZl
cnNpb24pCit7CisgICAgLy8gQ3JlYXRlIGEgZGVmYXVsdCB1c2VyIGFnZW50IHN0cmluZyB3aXRo
IGEgbGliZXJhbCBpbnRlcnByZXRhdGlvbiBvZiAKKyAgICAvLyBodHRwczovL2RldmVsb3Blci5t
b3ppbGxhLm9yZy9lbi1VUy9kb2NzL1VzZXJfQWdlbnRfU3RyaW5nc19SZWZlcmVuY2UKKyAgICAv
LworICAgIC8vIEZvcm1pbmcgYSBmdW5jdGlvbmFsIHVzZXIgYWdlbnQgaXMgcmVhbGx5IGRpZmZp
Y3VsdC4gV2UgbXVzdCBtZW50aW9uIFNhZmFyaSwgYmVjYXVzZSBzb21lCisgICAgLy8gc2l0ZXMg
Y2hlY2sgZm9yIHRoYXQgd2hlbiBkZXRlY3RpbmcgV2ViS2l0IGJyb3dzZXJzLiBBZGRpdGlvbmFs
bHkgc29tZSBzaXRlcyBhc3N1bWUgdGhhdAorICAgIC8vIGJyb3dzZXJzIHRoYXQgYXJlICJTYWZh
cmkiIGJ1dCBub3QgcnVubmluZyBvbiBPUyBYIGFyZSB0aGUgU2FmYXJpIGlPUyBicm93c2VyLCBz
byB3ZQorICAgIC8vIGFsc28gY2xhaW0gdG8gYmUgIENocm9taXVtLiBHZXR0aW5nIHRoaXMgd3Jv
bmcgY2FuIGNhdXNlIHNpdGVzIHRvIGxvYWQgdGhlIHdyb25nIEphdmFTY3JpcHQsCisgICAgLy8g
Q1NTLCBvciBjdXN0b20gZm9udHMuIEluIHNvbWUgY2FzZXMgc2l0ZXMgd29uJ3QgbG9hZCByZXNv
dXJjZXMgYXQgYWxsLgorICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQ1N0cmluZywgdWFW
ZXJzaW9uLCAoU3RyaW5nOjpmb3JtYXQoIiVpLiVpIiwgV0VCS0lUX1VTRVJfQUdFTlRfTUFKT1Jf
VkVSU0lPTiwgV0VCS0lUX1VTRVJfQUdFTlRfTUlOT1JfVkVSU0lPTikudXRmOCgpKSk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHN0YXRpY1VBLCAoU3RyaW5nOjpmb3Jt
YXQoIk1vemlsbGEvNS4wICglczsgJXMpIEFwcGxlV2ViS2l0LyVzIChLSFRNTCwgbGlrZSBHZWNr
bykgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJDaHJvbWl1bS8xOC4wLjEwMjUuMTY4IENocm9tZS8xOC4wLjEwMjUuMTY4
IFNhZmFyaS8lcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm1Gb3JVQVN0cmluZygpLCBwbGF0Zm9ybVZlcnNp
b25Gb3JVQVN0cmluZygpLnV0ZjgoKS5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWFWZXJzaW9uLmRhdGEoKSwg
dWFWZXJzaW9uLmRhdGEoKSkpKTsKKyAgICBpZiAoYXBwbGljYXRpb25OYW1lLmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuIHN0YXRpY1VBOworCisgICAgU3RyaW5nIGZpbmFsQXBwbGljYXRpb25W
ZXJzaW9uID0gYXBwbGljYXRpb25WZXJzaW9uOworICAgIGlmIChmaW5hbEFwcGxpY2F0aW9uVmVy
c2lvbi5pc0VtcHR5KCkpCisgICAgICAgIGZpbmFsQXBwbGljYXRpb25WZXJzaW9uID0gdWFWZXJz
aW9uLmRhdGEoKTsKKworICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJXMgJXMvJXMiLCBzdGF0
aWNVQS51dGY4KCkuZGF0YSgpLCBhcHBsaWNhdGlvbk5hbWUudXRmOCgpLmRhdGEoKSwgZmluYWxB
cHBsaWNhdGlvblZlcnNpb24udXRmOCgpLmRhdGEoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1VzZXJBZ2Vu
dEd0ay5oLmluIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1VzZXJBZ2VudEd0ay5oLmlu
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjVhNTBiN2EzMmQyOGYwMjFlODQ2Mzc2ODdkN2RkOWI2YzkwYzc1N2IKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvVXNlckFnZW50R3Rr
LmguaW4KQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgVXNlckFnZW50R3RrX2gKKyNkZWZpbmUgVXNlckFnZW50R3Rr
X2gKKworI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworI2RlZmluZSBXRUJLSVRfVVNFUl9BR0VOVF9NQUpPUl9WRVJTSU9OIChA
V0VCS0lUX1VTRVJfQUdFTlRfTUFKT1JfVkVSU0lPTkApCisjZGVmaW5lIFdFQktJVF9VU0VSX0FH
RU5UX01JTk9SX1ZFUlNJT04gKEBXRUJLSVRfVVNFUl9BR0VOVF9NSU5PUl9WRVJTSU9OQCkKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgc3RhbmRhcmRVc2VyQWdlbnQoY29uc3QgU3Ry
aW5nJiBhcHBsaWNhdGlvbk5hbWUgPSAiIiwgY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvblZlcnNp
b24gPSAiIik7CisKK30KKworI2VuZGlmIC8vIFVzZXJBZ2VudEd0a19oCisKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCmluZGV4IGNmZmUxZGM1ZTA5
Zjg0MWRkOWIzYzkwODY2NGVmYTI4ODk4YTMxZWQuLmI5MzM2MTEwNTZhYWViZTk5OGU0ZDg5YWMx
Yjk3ZWZhYzA2YzNjY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJzZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnNldHRpbmdzLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIK
ICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YWJhc2UuaCIKKyNpbmNsdWRl
ICJVc2VyQWdlbnRHdGsuaCIKICNpbmNsdWRlICJ3ZWJraXRlbnVtdHlwZXMuaCIKICNpbmNsdWRl
ICJ3ZWJraXRnbG9iYWxzcHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHZlcnNpb24uaCIKQEAg
LTM5LDEyICs0MCw2IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaD4K
ICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgogCi0jaWYgT1MoVU5JWCkKLSNpbmNsdWRlIDxz
eXMvdXRzbmFtZS5oPgotI2VsaWYgT1MoV0lORE9XUykKLSNpbmNsdWRlICJTeXN0ZW1JbmZvLmgi
Ci0jZW5kaWYKLQogLyoqCiAgKiBTRUNUSU9OOndlYmtpdHdlYnNldHRpbmdzCiAgKiBAc2hvcnRf
ZGVzY3JpcHRpb246IENvbnRyb2wgdGhlIGJlaGF2aW91ciBvZiBhICNXZWJLaXRXZWJWaWV3CkBA
IC0xMjYsNzEgKzEyMSw2IEBAIGVudW0gewogICAgIFBST1BfTUVESUFfUExBWUJBQ0tfQUxMT1dT
X0lOTElORQogfTsKIAotLy8gQ3JlYXRlIGEgZGVmYXVsdCB1c2VyIGFnZW50IHN0cmluZwotLy8g
VGhpcyBpcyBhIGxpYmVyYWwgaW50ZXJwcmV0YXRpb24gb2YgaHR0cDovL3d3dy5tb3ppbGxhLm9y
Zy9idWlsZC9yZXZpc2VkLXVzZXItYWdlbnQtc3RyaW5ncy5odG1sCi0vLyBTZWUgYWxzbyBodHRw
Oi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9pbnRlcm5ldC9zYWZhcmkvZmFxLmh0bWwjYW5jaG9yMgot
c3RhdGljIFN0cmluZyB3ZWJraXRQbGF0Zm9ybSgpCi17Ci0jaWYgUExBVEZPUk0oWDExKQotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB1YVBsYXRmb3JtLCAoQVNDSUlMaXRl
cmFsKCJYMTE7ICIpKSk7Ci0jZWxpZiBPUyhXSU5ET1dTKQotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCB1YVBsYXRmb3JtLCAoU3RyaW5nKCIiKSkpOwotI2VsaWYgUExBVEZP
Uk0oTUFDKQotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB1YVBsYXRmb3Jt
LCAoQVNDSUlMaXRlcmFsKCJNYWNpbnRvc2g7ICIpKSk7Ci0jZWxpZiBkZWZpbmVkKEdES19XSU5E
T1dJTkdfRElSRUNURkIpCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHVh
UGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoIkRpcmVjdEZCOyAiKSkpOwotI2Vsc2UKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdWFQbGF0Zm9ybSwgKEFTQ0lJTGl0ZXJhbCgi
VW5rbm93bjsgIikpKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIHVhUGxhdGZvcm07Ci19Ci0KLXN0
YXRpYyBTdHJpbmcgd2Via2l0T1NWZXJzaW9uKCkKLXsKLSAgIC8vIEZJWE1FOiBwbGF0Zm9ybS92
ZXJzaW9uIGRldGVjdGlvbiBjYW4gYmUgc2hhcmVkLgotI2lmIE9TKERBUldJTikKLQotI2lmIENQ
VShYODYpCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHVhT1NWZXJzaW9u
LCAoQVNDSUlMaXRlcmFsKCJJbnRlbCBNYWMgT1MgWCIpKSk7Ci0jZWxzZQotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB1YU9TVmVyc2lvbiwgKEFTQ0lJTGl0ZXJhbCgiUFBD
IE1hYyBPUyBYIikpKTsKLSNlbmRpZgotCi0jZWxpZiBPUyhVTklYKQotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCB1YU9TVmVyc2lvbiwgKFN0cmluZygpKSk7Ci0KLSAgICBpZiAoIXVh
T1NWZXJzaW9uLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHVhT1NWZXJzaW9uOwotCi0gICAg
c3RydWN0IHV0c25hbWUgbmFtZTsKLSAgICBpZiAodW5hbWUoJm5hbWUpICE9IC0xKQotICAgICAg
ICB1YU9TVmVyc2lvbiA9IG1ha2VTdHJpbmcobmFtZS5zeXNuYW1lLCAnICcsIG5hbWUubWFjaGlu
ZSk7Ci0gICAgZWxzZQotICAgICAgICB1YU9TVmVyc2lvbiA9IEFTQ0lJTGl0ZXJhbCgiVW5rbm93
biIpOwotI2VsaWYgT1MoV0lORE9XUykKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
cmluZywgdWFPU1ZlcnNpb24sICh3aW5kb3dzVmVyc2lvbkZvclVBU3RyaW5nKCkpKTsKLSNlbHNl
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHVhT1NWZXJzaW9uLCAoQVND
SUlMaXRlcmFsKCJVbmtub3duIikpKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIHVhT1NWZXJzaW9u
OwotfQotCi1zdGF0aWMgU3RyaW5nIGNocm9tZVVzZXJBZ2VudCgpCi17Ci0gICAgLy8gV2UgbWVu
dGlvbiBTYWZhcmkgc2luY2UgbWFueSBicm9rZW4gc2l0ZXMgY2hlY2sgZm9yIGl0IChPbW5pV2Vi
IGRvZXMgdGhpcyB0b28pCi0gICAgLy8gV2UgcmUtdXNlIHRoZSBXZWJLaXQgdmVyc2lvbiwgdGhv
dWdoIGl0IGRvZXNuJ3Qgc2VlbSB0byBtYXR0ZXIgbXVjaCBpbiBwcmFjdGljZQotICAgIC8vIFdl
IGNsYWltIHRvIGJlIENocm9tZSBhcyB3ZWxsLCB3aGljaCBwcmV2ZW50cyBzaXRlcyB0aGF0IGxv
b2sgZm9yIFNhZmFyaSBhbmQgYXNzdW1lCi0gICAgLy8gdGhhdCBzaW5jZSB3ZSBhcmUgbm90IE9T
IFgsIHRoYXQgd2UgYXJlIHRoZSBtb2JpbGUgdmVyc2lvbiBvZiBTYWZhcmkuCi0KLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdWFWZXJzaW9uLCAobWFrZVN0cmluZyhTdHJp
bmc6Om51bWJlcihXRUJLSVRfVVNFUl9BR0VOVF9NQUpPUl9WRVJTSU9OKSwgJy4nLCBTdHJpbmc6
Om51bWJlcihXRUJLSVRfVVNFUl9BR0VOVF9NSU5PUl9WRVJTSU9OKSwgJysnKSkpOwotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBzdGF0aWNVQSwgKG1ha2VTdHJpbmcoIk1v
emlsbGEvNS4wICgiLCB3ZWJraXRQbGF0Zm9ybSgpLCB3ZWJraXRPU1ZlcnNpb24oKSwgIikgQXBw
bGVXZWJLaXQvIiwgdWFWZXJzaW9uKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWFrZVN0cmluZygiIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21p
dW0vMTcuMC45NjMuNTYgQ2hyb21lLzE3LjAuOTYzLjU2IFNhZmFyaS8iLCB1YVZlcnNpb24pKSk7
Ci0KLSAgICByZXR1cm4gc3RhdGljVUE7Ci19Ci0KIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfc2V0
dGluZ3NfZmluYWxpemUoR09iamVjdCogb2JqZWN0KTsKIAogc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl9zZXR0aW5nc19zZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBj
b25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYyk7CkBAIC0xMTI1LDcgKzEwNTUs
NyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eShHT2JqZWN0
KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIGNvbgogICAgICAgICBicmVhazsKICAgICBjYXNlIFBS
T1BfVVNFUl9BR0VOVDoKICAgICAgICAgaWYgKCFnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpIHx8
ICFzdHJsZW4oZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSkpCi0gICAgICAgICAgICBwcml2LT51
c2VyQWdlbnQgPSBjaHJvbWVVc2VyQWdlbnQoKS51dGY4KCk7CisgICAgICAgICAgICBwcml2LT51
c2VyQWdlbnQgPSBzdGFuZGFyZFVzZXJBZ2VudCgpLnV0ZjgoKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgcHJpdi0+dXNlckFnZW50ID0gZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKTsKICAg
ICAgICAgYnJlYWs7CkBAIC0xNTU5LDcgKzE0ODksNyBAQCBzdGF0aWMgU3RyaW5nIHVzZXJBZ2Vu
dEZvclVSTChjb25zdCBLVVJMJiB1cmwpCiAgICAgLy8gRm9yIEdvb2dsZSBkb21haW5zLCBkcm9w
IHRoZSBicm93c2VyJ3MgY3VzdG9tIFVzZXIgQWdlbnQgc3RyaW5nLCBhbmQgdXNlIHRoZQogICAg
IC8vIHN0YW5kYXJkIENocm9tZSBvbmUsIHNvIHRoZXkgZG9uJ3QgZ2l2ZSB1cyBhIGJyb2tlbiBl
eHBlcmllbmNlLgogICAgIGlmIChpc0dvb2dsZURvbWFpbih1cmwuaG9zdCgpKSkKLSAgICAgICAg
cmV0dXJuIGNocm9tZVVzZXJBZ2VudCgpOworICAgICAgICByZXR1cm4gc3RhbmRhcmRVc2VyQWdl
bnQoKTsKIAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBi
L0NoYW5nZUxvZwppbmRleCAyYjdiYzhlMTNlZWQ5MDk4ZjBkZDVlMjNjMmIxZmY0YzMwZmE1Mjg3
Li5jMTJhYzJjYzk5NjcwNzQ3NTJmZGQwZDY3ODUwMzBiMmQ2M2VhMzdhIDEwMDY0NAotLS0gYS9D
aGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDktMDcgIE1h
cnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIE1v
dmUgdXNlciBhZ2VudCBoZWxwZXJzIHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NzQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAgQWRkZWQgYW4gYXV0b2NvbmYgc3RlcCBmb3Ig
dGhlIG5ldyB1c2VyIGFnZW50IHNoYXJlZCBjb2RlIGhlYWRlciBpbgorICAgICAgICBXZWJDb3Jl
LiBUaGlzIGlzIG5lY2Vzc2FyeSBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlIHVzZXIgYWdlbnQgdmVy
c2lvbgorICAgICAgICBiYXNlZCBvbiB0aGUgaW5mb3JtYXRpb24gaW4gdGhlIGNvbmZpZ3VyZS5h
YyBmaWxlLgorCisgICAgICAgICogY29uZmlndXJlLmFjOgorCiAyMDEyLTA5LTA2ICBaYW4gRG9i
ZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgW0d0a10gUmVtb3ZlIGNv
bmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgZmVhdHVyZXMgdGhhdCBhcmUgbm90IHN1cHBvcnRlZCBi
eSB0aGUgR3RrIHBvcnQKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwpp
bmRleCAzMzQ2MTY4Njc2NjBkYjU0ZWZlNjU3MGY1MjRmNGU4NDM4YTJhMjFiLi4xNWM3MTg2MTM3
MGMzNzBjNGM1YjhlM2JmNDBlMTE2NGVkMDhmZWUxIDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMK
KysrIGIvY29uZmlndXJlLmFjCkBAIC0xMjg3LDYgKzEyODcsNyBAQCBHTlVtYWtlZmlsZQogCiBB
Q19DT05GSUdfRklMRVMoWwogU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZlcnNpb24u
aAorRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Vc2VyQWdlbnRHdGsuaDpTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvVXNlckFnZW50R3RrLmguaW4KIF0pCiAKIEFDX0NPTkZJR19GSUxFUyhbCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>