<?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>133075</bug_id>
          
          <creation_ts>2014-05-19 10:40:55 -0700</creation_ts>
          <short_desc>collect web timing data on iOS</short_desc>
          <delta_ts>2014-05-19 16:46:55 -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>iPhone / iPad</rep_platform>
          <op_sys>iOS 7.0</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1010219</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-19 10:40:55 -0700</bug_when>
    <thetext>I collect web timing data from CFNetwork on Mac, and we should do something similar on iOS to make the web timing data more complete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010223</commentid>
    <comment_count>1</comment_count>
      <attachid>231701</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-19 10:47:10 -0700</bug_when>
    <thetext>Created attachment 231701
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010227</commentid>
    <comment_count>2</comment_count>
      <attachid>231702</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-19 10:53:53 -0700</bug_when>
    <thetext>Created attachment 231702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010229</commentid>
    <comment_count>3</comment_count>
      <attachid>231701</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-19 10:55:16 -0700</bug_when>
    <thetext>Comment on attachment 231701
Patch

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

&gt; Source/WebCore/platform/network/ResourceHandle.h:141
&gt; +    static void getTimingData(NSDictionary *, ResourceLoadTiming&amp;);
&gt; +    static void getTimingData(CFDictionaryRef, ResourceLoadTiming&amp;);

These are a bit confusing, Why not: static void getConnectionTimingData(CFURLConnectionRef, ResourceLoadTiming&amp;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010230</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-19 10:57:53 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 231701 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=231701&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/network/ResourceHandle.h:141
&gt; &gt; +    static void getTimingData(NSDictionary *, ResourceLoadTiming&amp;);
&gt; &gt; +    static void getTimingData(CFDictionaryRef, ResourceLoadTiming&amp;);
&gt; 
&gt; These are a bit confusing, Why not: static void getConnectionTimingData(CFURLConnectionRef, ResourceLoadTiming&amp;).

One is already used on osx, which uses a NSURLConnection from which I can get a NSDictionary*.  One is going to be used with iOS which uses CFNetwork, and I can only get a CFDictionaryRef.  It is a bit confusing, but that&apos;s how the data is available.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010253</commentid>
    <comment_count>5</comment_count>
      <attachid>231707</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-19 12:10:53 -0700</bug_when>
    <thetext>Created attachment 231707
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010339</commentid>
    <comment_count>6</comment_count>
      <attachid>231707</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-05-19 16:39:52 -0700</bug_when>
    <thetext>Comment on attachment 231707
Patch

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

&gt; Source/WebCore/platform/network/mac/ResourceHandleMac.mm:715
&gt; +    if (timingData) {

Do an early return here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010344</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-19 16:46:55 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/169082</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231701</attachid>
            <date>2014-05-19 10:47:10 -0700</date>
            <delta_ts>2014-05-19 12:10:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133075-20140519104652.patch</filename>
            <type>text/plain</type>
            <size>18281</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTA0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE0LTA1LTE5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ29sbGVjdCB3
ZWIgdGltaW5nIGRhdGEgb24gaU9TLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTMzMDc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAg
ICAgIEFkZGVkIHNldENvbGxlY3RzVGltaW5nRGF0YSBhbmQgZ2V0VGltaW5nRGF0YSB3cmFwcGVy
IGRlY2xhcmF0aW9ucy4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFu
ZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToK
KyAgICAgICAgQ2FsbCBzZXRDb2xsZWN0c1RpbWluZ0RhdGEgd3JhcHBlciB3aGVuIGNyZWF0aW5n
IGEgY29ubmVjdGlvbiB0byBlbnN1cmUgdGhhdCB0aW1pbmcgZGF0YSBpcyBjb2xsZWN0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlv
bkRlbGVnYXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxDb25u
ZWN0aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVSZXNwb25zZUNhbGxiYWNrKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25u
ZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVS
TENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTeW5jaHJvbm91c1Jl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVSZXNwb25zZSk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFuZGxl
Q0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuaDoKKyAgICAgICAgUGFzcyB0aGUgQ0ZVUkxDb25uZWN0
aW9uUmVmIHRvIGRpZFJlY2VpdmVSZXNwb25zZSB0byBnZXQgdGltaW5nIGRhdGEgZnJvbS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpnZXRUaW1pbmdEYXRhKToKKyAgICAgICAgTW92
ZWQgdG8gY29tcGlsZSByZWdhcmRsZXNzIG9mIHVzaW5nIENGTmV0d29yayBhbmQgYWRkZWQgd3Jh
cHBlciB3aXRoIENGRGljdGlvbmFyeVJlZi4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjpzZXRDb2xsZWN0c1RpbWluZ0RhdGEpOgorICAgICAgICBBZGRlZCB3cmFwcGVyIHRvIGNh
bGwgb2JqYyBmdW5jdGlvbiBmcm9tIGMrKy4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21h
Yy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3Jl
UmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVJlc3BvbnNlOl0p
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFz
T3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFu
ZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVJlc3BvbnNl
Ol0pOgorICAgICAgICBQYXNzIGp1c3QgdGhlIE5TRGljdGlvbmFyeSBpbnN0ZWFkIG9mIHRoZSB3
aG9sZSBOU1VSTENvbm5lY3Rpb24uCisKIDIwMTQtMDUtMTggIENocmlzIEZsZWl6YWNoICA8Y2Zs
ZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogaU9TOiB1c2luZyBBWEF0dHJpYnV0ZUNh
Y2hlRW5hYmxlciBpcyB0b28gc2xvdyBmb3IgZXZlcnkgYWNjZXNzaWJpbGl0eUVsZW1lbnRBdElu
ZGV4OgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuaAkocmV2aXNpb24gMTY4OTcwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsMTIgKzEzMSwx
NyBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmICFVU0UoQ0ZORVRXT1JLKQogICAg
IHZvaWQgZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmKTsKICAgICBOU1VSTENvbm5lY3Rpb24gKmNvbm5lY3Rpb24oKSBjb25zdDsK
LSAgICBzdGF0aWMgdm9pZCBnZXRUaW1pbmdEYXRhKE5TVVJMQ29ubmVjdGlvbiosIFJlc291cmNl
TG9hZFRpbWluZyYpOwogICAgIGlkIG1ha2VEZWxlZ2F0ZShib29sKTsKICAgICBpZCBkZWxlZ2F0
ZSgpOwogICAgIHZvaWQgcmVsZWFzZURlbGVnYXRlKCk7CiAjZW5kaWYKLQorICAgICAgICAKKyNp
ZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFdFQl9USU1JTkcpCisgICAgc3RhdGljIHZvaWQg
Z2V0VGltaW5nRGF0YShOU0RpY3Rpb25hcnkgKiwgUmVzb3VyY2VMb2FkVGltaW5nJik7CisgICAg
c3RhdGljIHZvaWQgZ2V0VGltaW5nRGF0YShDRkRpY3Rpb25hcnlSZWYsIFJlc291cmNlTG9hZFRp
bWluZyYpOworICAgIHZvaWQgc2V0Q29sbGVjdHNUaW1pbmdEYXRhKCk7CisjZW5kaWYKKyAgICAg
ICAgCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBzY2hlZHVsZShXVEY6OlNjaGVkdWxl
UGFpciYpOwogICAgIHZvaWQgdW5zY2hlZHVsZShXVEY6OlNjaGVkdWxlUGFpciYpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZOZXQuY3BwCShyZXZpc2lvbiAxNjg5NzApCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNTQsNyArMjU0LDExIEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKICAgICBD
RlVSTENvbm5lY3Rpb25TdGFydChkLT5tX2Nvbm5lY3Rpb24uZ2V0KCkpOwogCiAgICAgTE9HKE5l
dHdvcmssICJDRk5ldCAtIFN0YXJ0aW5nIFVSTCAlcyAoaGFuZGxlPSVwLCBjb25uPSVwKSIsIGZp
cnN0UmVxdWVzdCgpLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHRoaXMsIGQtPm1fY29u
bmVjdGlvbi5nZXQoKSk7Ci0KKyAgICAKKyNpZiBFTkFCTEUoV0VCX1RJTUlORykKKyAgICBzZXRD
b2xsZWN0c1RpbWluZ0RhdGEoKTsKKyNlbmRpZgorICAgIAogICAgIHJldHVybiB0cnVlOwogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxl
Q0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0
ZS5jcHAJKHJldmlzaW9uIDE2ODk3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYxLDkgKzYxLDkgQEAgQ0ZVUkxSZXF1ZXN0UmVmIFJlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVj
dGlvbkRlbGVnYXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT53aWxsU2VuZFJl
cXVlc3QoY2ZSZXF1ZXN0LCBvcmlnaW5hbFJlZGlyZWN0UmVzcG9uc2UpOwogfQogCi12b2lkIFJl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVSZXNwb25zZUNh
bGxiYWNrKENGVVJMQ29ubmVjdGlvblJlZiwgQ0ZVUkxSZXNwb25zZVJlZiBjZlJlc3BvbnNlLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQordm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlv
bkRlbGVnYXRlOjpkaWRSZWNlaXZlUmVzcG9uc2VDYWxsYmFjayhDRlVSTENvbm5lY3Rpb25SZWYg
Y29ubmVjdGlvbiwgQ0ZVUkxSZXNwb25zZVJlZiBjZlJlc3BvbnNlLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQogewotICAgIHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9u
RGVsZWdhdGUqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZFJlY2VpdmVSZXNw
b25zZShjZlJlc3BvbnNlKTsKKyAgICBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZUNGVVJMQ29u
bmVjdGlvbkRlbGVnYXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRSZWNl
aXZlUmVzcG9uc2UoY29ubmVjdGlvbiwgY2ZSZXNwb25zZSk7CiB9CiAKIHZvaWQgUmVzb3VyY2VI
YW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZTo6ZGlkUmVjZWl2ZURhdGFDYWxsYmFjayhDRlVS
TENvbm5lY3Rpb25SZWYsIENGRGF0YVJlZiBkYXRhLCBDRkluZGV4IG9yaWdpbmFsTGVuZ3RoLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNG
VVJMQ29ubmVjdGlvbkRlbGVnYXRlLmgJKHJldmlzaW9uIDE2ODk3MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxl
Z2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw3IEBAIHByaXZhdGU6CiAjZW5kaWYg
Ly8gVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQogCiAgICAgdmlydHVhbCBDRlVS
TFJlcXVlc3RSZWYgd2lsbFNlbmRSZXF1ZXN0KENGVVJMUmVxdWVzdFJlZiwgQ0ZVUkxSZXNwb25z
ZVJlZikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxSZXNw
b25zZVJlZikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxD
b25uZWN0aW9uUmVmLCBDRlVSTFJlc3BvbnNlUmVmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVEYXRhKENGRGF0YVJlZiwgQ0ZJbmRleCBvcmlnaW5hbExlbmd0aCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRGYWlsKENGRXJyb3JSZWYpID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRp
b25RdWV1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1
ZXVlLmNwcAkocmV2aXNpb24gMTY4OTcwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlv
blF1ZXVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA4LDcgKzEwOCw3IEBAIENGVVJMUmVxdWVz
dFJlZiBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmUKICAgICByZXR1cm4gbV9yZXF1ZXN0UmVzdWx0
LmxlYWtSZWYoKTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVn
YXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxSZXNwb25zZVJl
ZiBjZlJlc3BvbnNlKQordm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRl
V2l0aE9wZXJhdGlvblF1ZXVlOjpkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxDb25uZWN0aW9uUmVm
IGNvbm5lY3Rpb24sIENGVVJMUmVzcG9uc2VSZWYgY2ZSZXNwb25zZSkKIHsKICAgICBSZWZQdHI8
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZT4g
cHJvdGVjdG9yKHRoaXMpOwogCkBAIC0xMzEsOCArMTMxLDE1IEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2EKICAgICAgICAgaWYgKF9DRlVSTFJlcXVlc3RDb3B5UHJv
dG9jb2xQcm9wZXJ0eUZvcktleShtX2hhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkuY2ZVUkxSZXF1ZXN0
KERvTm90VXBkYXRlSFRUUEJvZHkpLCBDRlNUUigiRm9yY2VIVE1MTUlNRVR5cGUiKSkpCiAgICAg
ICAgICAgICB3a1NldENGVVJMUmVzcG9uc2VNSU1FVHlwZShjZlJlc3BvbnNlLCBDRlNUUigidGV4
dC9odG1sIikpOwogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCi0KLSAgICAgICAgbV9oYW5kbGUt
PmNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhtX2hhbmRsZSwgY2ZSZXNwb25zZSk7
CisgICAgICAgIAorICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc291cmNlUmVzcG9uc2UoY2ZS
ZXNwb25zZSk7CisjaWYgRU5BQkxFKFdFQl9USU1JTkcpCisgICAgICAgIFJlc291cmNlSGFuZGxl
OjpnZXRUaW1pbmdEYXRhKGFkb3B0Q0YoX0NGVVJMQ29ubmVjdGlvbkNvcHlUaW1pbmdEYXRhKGNv
bm5lY3Rpb24pKS5nZXQoKSwgcmVzb3VyY2VSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSk7
CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CisjZW5kaWYKKyAgICAg
ICAgCisgICAgICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMo
bV9oYW5kbGUsIHJlc291cmNlUmVzcG9uc2UpOwogICAgIH0pOwogICAgIGRpc3BhdGNoX3NlbWFw
aG9yZV93YWl0KG1fc2VtYXBob3JlLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOwogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29u
bmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlv
bkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmgJKHJldmlzaW9uIDE2ODk3MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rp
b25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0
Nyw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldHVwQ29ubmVjdGlvblNjaGVkdWxp
bmcoQ0ZVUkxDb25uZWN0aW9uUmVmKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgQ0ZVUkxSZXF1
ZXN0UmVmIHdpbGxTZW5kUmVxdWVzdChDRlVSTFJlcXVlc3RSZWYsIENGVVJMUmVzcG9uc2VSZWYp
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxSZXNw
b25zZVJlZikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShD
RlVSTENvbm5lY3Rpb25SZWYsIENGVVJMUmVzcG9uc2VSZWYpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShDRkRhdGFSZWYsIENGSW5kZXggb3JpZ2luYWxMZW5ndGgp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKCkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoQ0ZFcnJvclJlZikgb3ZlcnJpZGU7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25u
ZWN0aW9uRGVsZWdhdGUuY3BwCShyZXZpc2lvbiAxNjg5NzApCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rp
b25EZWxlZ2F0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMSw3ICsxMTEsNyBAQCBzdGF0aWMg
dm9pZCBzZXREZWZhdWx0TUlNRVR5cGUoQ0ZVUkxSZXNwCiB9CiAjZW5kaWYgLy8gIVBMQVRGT1JN
KENPQ09BKQogCi12b2lkIFN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25E
ZWxlZ2F0ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKENGVVJMUmVzcG9uc2VSZWYgY2ZSZXNwb25zZSkK
K3ZvaWQgU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOjpk
aWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxDb25uZWN0aW9uUmVmIGNvbm5lY3Rpb24sIENGVVJMUmVz
cG9uc2VSZWYgY2ZSZXNwb25zZSkKIHsKICAgICBMT0coTmV0d29yaywgIkNGTmV0IC0gU3luY2hy
b25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOjpkaWRSZWNlaXZlUmVz
cG9uc2UoaGFuZGxlPSVwKSAoJXMpIiwgbV9oYW5kbGUsIG1faGFuZGxlLT5maXJzdFJlcXVlc3Qo
KS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIApAQCAtMTQzLDggKzE0MywxNSBAQCB2
b2lkIFN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lCiAgICAgaWYgKG1faGFuZGxl
LT5xdWlja0xvb2tIYW5kbGUoKSkKICAgICAgICAgY2ZSZXNwb25zZSA9IG1faGFuZGxlLT5xdWlj
a0xvb2tIYW5kbGUoKS0+Y2ZSZXNwb25zZSgpOwogI2VuZGlmCi0KLSAgICBtX2hhbmRsZS0+Y2xp
ZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZShtX2hhbmRsZSwgY2ZSZXNwb25zZSk7CisgICAgCisg
ICAgUmVzb3VyY2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlKGNmUmVzcG9uc2UpOworI2lmIEVO
QUJMRShXRUJfVElNSU5HKQorICAgIFJlc291cmNlSGFuZGxlOjpnZXRUaW1pbmdEYXRhKGFkb3B0
Q0YoX0NGVVJMQ29ubmVjdGlvbkNvcHlUaW1pbmdEYXRhKGNvbm5lY3Rpb24pKS5nZXQoKSwgcmVz
b3VyY2VSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSk7CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShjb25uZWN0aW9uKTsKKyNlbmRpZgorICAgIAorICAgIG1faGFuZGxlLT5jbGllbnQoKS0+
ZGlkUmVjZWl2ZVJlc3BvbnNlKG1faGFuZGxlLCByZXNvdXJjZVJlc3BvbnNlKTsKIH0KIAogdm9p
ZCBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJl
Y2VpdmVEYXRhKENGRGF0YVJlZiBkYXRhLCBDRkluZGV4IG9yaWdpbmFsTGVuZ3RoKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFu
ZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5l
Y3Rpb25EZWxlZ2F0ZS5oCShyZXZpc2lvbiAxNjg5NzApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25E
ZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIHNldHVwQ29ubmVjdGlvblNjaGVkdWxpbmcoQ0ZVUkxDb25uZWN0aW9uUmVm
KSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgQ0ZVUkxSZXF1ZXN0UmVmIHdpbGxTZW5kUmVxdWVz
dChDRlVSTFJlcXVlc3RSZWYsIENGVVJMUmVzcG9uc2VSZWYpIG92ZXJyaWRlOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShDRlVSTENvbm5lY3Rpb25SZWYsIENG
VVJMUmVzcG9uc2VSZWYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgQ0ZDYWNoZWRVUkxSZXNwb25z
ZVJlZiB3aWxsQ2FjaGVSZXNwb25zZShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNoYWxsZW5nZShDRlVSTEF1dGhDaGFsbGVuZ2VS
ZWYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kQm9keURhdGEoQ0ZJbmRleCB0
b3RhbEJ5dGVzV3JpdHRlbiwgQ0ZJbmRleCB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1dyaXRlKSBvdmVy
cmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCShyZXZpc2lvbiAxNjg5NzApCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJS
ZXNvdXJjZUhhbmRsZUludGVybmFsLmgiCiAKLSNpZiAhVVNFKENGTkVUV09SSykKLQogI2ltcG9y
dCAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCIKICNpbXBvcnQgIkF1dGhlbnRpY2F0aW9uTWFj
LmgiCiAjaW1wb3J0ICJCbG9ja0V4Y2VwdGlvbnMuaCIKQEAgLTg3LDcgKzg1LDkgQEAgLShpZClf
aW5pdFdpdGhSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZQogQGVuZAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KKyAgICAKKyNpZiAhVVNFKENGTkVUV09SSykKKyAgICAKIHN0YXRpYyB2b2lkIGFw
cGx5QmFzaWNBdXRob3JpemF0aW9uSGVhZGVyKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkKIHsKICAgICBTdHJpbmcgYXV0aGVudGljYXRpb25I
ZWFkZXIgPSAiQmFzaWMgIiArIGJhc2U2NEVuY29kZShTdHJpbmcoY3JlZGVudGlhbC51c2VyKCkg
KyAiOiIgKyBjcmVkZW50aWFsLnBhc3N3b3JkKCkpLnV0ZjgoKSk7CkBAIC0zNzAsMzYgKzM3MCw2
IEBAIE5TVVJMQ29ubmVjdGlvbiAqUmVzb3VyY2VIYW5kbGU6OmNvbm5lY3QKICAgICByZXR1cm4g
ZC0+bV9jb25uZWN0aW9uLmdldCgpOwogfQogICAgIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6Z2V0
VGltaW5nRGF0YShOU1VSTENvbm5lY3Rpb24gKmNvbm5lY3Rpb24sIFJlc291cmNlTG9hZFRpbWlu
ZyYgdGltaW5nKQotewotI2lmIEVOQUJMRShXRUJfVElNSU5HKQotICAgIGlmIChOU0RpY3Rpb25h
cnkgKnRpbWluZ0RhdGEgPSBbY29ubmVjdGlvbiBfdGltaW5nRGF0YV0pIHsKLSAgICAgICAgLy8g
VGhpcyBpcyBub3QgdGhlIG5hdmlnYXRpb25TdGFydCB0aW1lIGluIG1vbm90b25pYyB0aW1lLCBi
dXQgdGhlIG90aGVyIHRpbWVzIGFyZSByZWxhdGl2ZSB0byB0aGlzIHRpbWUKLSAgICAgICAgLy8g
YW5kIG9ubHkgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGltZXMgYXJlIHN0b3JlZC4KLSAgICAg
ICAgZG91YmxlIHJlZmVyZW5jZVN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tD
Rk5UaW1pbmdEYXRhVGltaW5nRGF0YUluaXQiXSBkb3VibGVWYWx1ZV07Ci0gICAgICAgIAotICAg
ICAgICBkb3VibGUgZG9tYWluTG9va3VwU3RhcnQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6
QCJfa0NGTlRpbWluZ0RhdGFEb21haW5Mb29rdXBTdGFydCJdIGRvdWJsZVZhbHVlXTsKLSAgICAg
ICAgZG91YmxlIGRvbWFpbkxvb2t1cEVuZCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9r
Q0ZOVGltaW5nRGF0YURvbWFpbkxvb2t1cEVuZCJdIGRvdWJsZVZhbHVlXTsKLSAgICAgICAgZG91
YmxlIGNvbm5lY3RTdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5n
RGF0YUNvbm5lY3RTdGFydCJdIGRvdWJsZVZhbHVlXTsKLSAgICAgICAgZG91YmxlIHNlY3VyZUNv
bm5lY3Rpb25TdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0
YVNlY3VyZUNvbm5lY3Rpb25TdGFydCJdIGRvdWJsZVZhbHVlXTsKLSAgICAgICAgZG91YmxlIGNv
bm5lY3RFbmQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFDb25u
ZWN0RW5kIl0gZG91YmxlVmFsdWVdOwotICAgICAgICBkb3VibGUgcmVxdWVzdFN0YXJ0ID0gW1t0
aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhUmVxdWVzdFN0YXJ0Il0gZG91
YmxlVmFsdWVdOwotICAgICAgICBkb3VibGUgcmVzcG9uc2VTdGFydCA9IFtbdGltaW5nRGF0YSB2
YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YVJlc3BvbnNlU3RhcnQiXSBkb3VibGVWYWx1ZV07
Ci0gICAgICAgIAotICAgICAgICB0aW1pbmcuZG9tYWluTG9va3VwU3RhcnQgPSBkb21haW5Mb29r
dXBTdGFydCA8PSAwID8gLTEgOiAoZG9tYWluTG9va3VwU3RhcnQgLSByZWZlcmVuY2VTdGFydCkg
KiAxMDAwOwotICAgICAgICB0aW1pbmcuZG9tYWluTG9va3VwRW5kID0gZG9tYWluTG9va3VwRW5k
IDw9IDAgPyAtMSA6IChkb21haW5Mb29rdXBFbmQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOwot
ICAgICAgICB0aW1pbmcuY29ubmVjdFN0YXJ0ID0gY29ubmVjdFN0YXJ0IDw9IDAgPyAtMSA6IChj
b25uZWN0U3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOwotICAgICAgICB0aW1pbmcuc2Vj
dXJlQ29ubmVjdGlvblN0YXJ0ID0gc2VjdXJlQ29ubmVjdGlvblN0YXJ0IDw9IDAgPyAtMSA6IChz
ZWN1cmVDb25uZWN0aW9uU3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOwotICAgICAgICB0
aW1pbmcuY29ubmVjdEVuZCA9IGNvbm5lY3RFbmQgPD0gMCA/IC0xIDogKGNvbm5lY3RFbmQgLSBy
ZWZlcmVuY2VTdGFydCkgKiAxMDAwOwotICAgICAgICB0aW1pbmcucmVxdWVzdFN0YXJ0ID0gcmVx
dWVzdFN0YXJ0IDw9IDAgPyAtMSA6IChyZXF1ZXN0U3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAx
MDAwOwotICAgICAgICB0aW1pbmcucmVzcG9uc2VTdGFydCA9IHJlc3BvbnNlU3RhcnQgPD0gMCA/
IC0xIDogKHJlc3BvbnNlU3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOwotICAgIH0KLSNl
bHNlCi0gICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOwotICAgIFVOVVNFRF9QQVJBTSh0aW1p
bmcpOwotI2VuZGlmCi19Ci0gICAgCiBib29sIFJlc291cmNlSGFuZGxlOjpsb2Fkc0Jsb2NrZWQo
KQogewogICAgIHJldHVybiBmYWxzZTsKQEAgLTczNSw4ICs3MDUsNDYgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6Y29udGludWVXaWxsQ2FjaGVSZQogCiAgICAgWyhpZClkZWxlZ2F0ZSgpIGNvbnRp
bnVlV2lsbENhY2hlUmVzcG9uc2U6cmVzcG9uc2VdOwogfQotCisgICAgCisjZW5kaWYgLy8gIVVT
RShDRk5FVFdPUkspCisgICAgCisjaWYgRU5BQkxFKFdFQl9USU1JTkcpIAordm9pZCBSZXNvdXJj
ZUhhbmRsZTo6Z2V0VGltaW5nRGF0YShOU0RpY3Rpb25hcnkgKnRpbWluZ0RhdGEsIFJlc291cmNl
TG9hZFRpbWluZyYgdGltaW5nKQoreworICAgIGlmICh0aW1pbmdEYXRhKSB7CisgICAgICAgIC8v
IFRoaXMgaXMgbm90IHRoZSBuYXZpZ2F0aW9uU3RhcnQgdGltZSBpbiBtb25vdG9uaWMgdGltZSwg
YnV0IHRoZSBvdGhlciB0aW1lcyBhcmUgcmVsYXRpdmUgdG8gdGhpcyB0aW1lCisgICAgICAgIC8v
IGFuZCBvbmx5IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRpbWVzIGFyZSBzdG9yZWQuCisgICAg
ICAgIGRvdWJsZSByZWZlcmVuY2VTdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9r
Q0ZOVGltaW5nRGF0YVRpbWluZ0RhdGFJbml0Il0gZG91YmxlVmFsdWVdOworICAgICAgICAgICAg
CisgICAgICAgIGRvdWJsZSBkb21haW5Mb29rdXBTdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZv
cktleTpAIl9rQ0ZOVGltaW5nRGF0YURvbWFpbkxvb2t1cFN0YXJ0Il0gZG91YmxlVmFsdWVdOwor
ICAgICAgICBkb3VibGUgZG9tYWluTG9va3VwRW5kID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5
OkAiX2tDRk5UaW1pbmdEYXRhRG9tYWluTG9va3VwRW5kIl0gZG91YmxlVmFsdWVdOworICAgICAg
ICBkb3VibGUgY29ubmVjdFN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5U
aW1pbmdEYXRhQ29ubmVjdFN0YXJ0Il0gZG91YmxlVmFsdWVdOworICAgICAgICBkb3VibGUgc2Vj
dXJlQ29ubmVjdGlvblN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1p
bmdEYXRhU2VjdXJlQ29ubmVjdGlvblN0YXJ0Il0gZG91YmxlVmFsdWVdOworICAgICAgICBkb3Vi
bGUgY29ubmVjdEVuZCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0
YUNvbm5lY3RFbmQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgIGRvdWJsZSByZXF1ZXN0U3RhcnQg
PSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFSZXF1ZXN0U3RhcnQi
XSBkb3VibGVWYWx1ZV07CisgICAgICAgIGRvdWJsZSByZXNwb25zZVN0YXJ0ID0gW1t0aW1pbmdE
YXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhUmVzcG9uc2VTdGFydCJdIGRvdWJsZVZh
bHVlXTsKKyAgICAgICAgICAgIAorICAgICAgICB0aW1pbmcuZG9tYWluTG9va3VwU3RhcnQgPSBk
b21haW5Mb29rdXBTdGFydCA8PSAwID8gLTEgOiAoZG9tYWluTG9va3VwU3RhcnQgLSByZWZlcmVu
Y2VTdGFydCkgKiAxMDAwOworICAgICAgICB0aW1pbmcuZG9tYWluTG9va3VwRW5kID0gZG9tYWlu
TG9va3VwRW5kIDw9IDAgPyAtMSA6IChkb21haW5Mb29rdXBFbmQgLSByZWZlcmVuY2VTdGFydCkg
KiAxMDAwOworICAgICAgICB0aW1pbmcuY29ubmVjdFN0YXJ0ID0gY29ubmVjdFN0YXJ0IDw9IDAg
PyAtMSA6IChjb25uZWN0U3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICB0
aW1pbmcuc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gc2VjdXJlQ29ubmVjdGlvblN0YXJ0IDw9IDAg
PyAtMSA6IChzZWN1cmVDb25uZWN0aW9uU3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOwor
ICAgICAgICB0aW1pbmcuY29ubmVjdEVuZCA9IGNvbm5lY3RFbmQgPD0gMCA/IC0xIDogKGNvbm5l
Y3RFbmQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICB0aW1pbmcucmVxdWVzdFN0
YXJ0ID0gcmVxdWVzdFN0YXJ0IDw9IDAgPyAtMSA6IChyZXF1ZXN0U3RhcnQgLSByZWZlcmVuY2VT
dGFydCkgKiAxMDAwOworICAgICAgICB0aW1pbmcucmVzcG9uc2VTdGFydCA9IHJlc3BvbnNlU3Rh
cnQgPD0gMCA/IC0xIDogKHJlc3BvbnNlU3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOwor
ICAgIH0KK30KKyAgICAKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmdldFRpbWluZ0RhdGEoQ0ZEaWN0
aW9uYXJ5UmVmIHRpbWluZ0RhdGEsIFJlc291cmNlTG9hZFRpbWluZyYgdGltaW5nKQoreworICAg
IHJldHVybiBnZXRUaW1pbmdEYXRhKChfX2JyaWRnZSBOU0RpY3Rpb25hcnkqKXRpbWluZ0RhdGEs
IHRpbWluZyk7Cit9CisgICAgCit2b2lkIFJlc291cmNlSGFuZGxlOjpzZXRDb2xsZWN0c1RpbWlu
Z0RhdGEoKQoreworICAgIFdURkxvZ0Fsd2F5cygiU0VUVElORyBDT0xMRUNUUyBUSU1JTkcgREFU
QVxuIik7CisgICAgW05TVVJMQ29ubmVjdGlvbiBfc2V0Q29sbGVjdHNUaW1pbmdEYXRhOllFU107
Cit9CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gIVVTRShD
Rk5FVFdPUkspCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUu
bW0JKHJldmlzaW9uIDE2ODk3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
bWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAg
LTE3Miw3ICsxNzIsNyBAQCAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNv
CiAgICAgCiAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlKHIpOwogI2lmIEVO
QUJMRShXRUJfVElNSU5HKQotICAgIFJlc291cmNlSGFuZGxlOjpnZXRUaW1pbmdEYXRhKGNvbm5l
Y3Rpb24sIHJlc291cmNlUmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpOworICAgIFJlc291
cmNlSGFuZGxlOjpnZXRUaW1pbmdEYXRhKFtjb25uZWN0aW9uIF90aW1pbmdEYXRhXSwgcmVzb3Vy
Y2VSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJB
TShjb25uZWN0aW9uKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNv
cmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQkocmV2aXNpb24gMTY4
OTcwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291
cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0y
MTQsNyArMjE0LDcgQEAgLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljbwog
ICAgICAgICAKICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlKHIpOwog
I2lmIEVOQUJMRShXRUJfVElNSU5HKQotICAgICAgICBSZXNvdXJjZUhhbmRsZTo6Z2V0VGltaW5n
RGF0YShjb25uZWN0aW9uLCByZXNvdXJjZVJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKTsK
KyAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmdldFRpbWluZ0RhdGEoW2Nvbm5lY3Rpb24gX3RpbWlu
Z0RhdGFdLCByZXNvdXJjZVJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKTsKICNlbHNlCiAg
ICAgICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231702</attachid>
            <date>2014-05-19 10:53:53 -0700</date>
            <delta_ts>2014-05-19 12:10:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133075-20140519105336.patch</filename>
            <type>text/plain</type>
            <size>18228</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTA0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE0LTA1LTE5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ29sbGVjdCB3
ZWIgdGltaW5nIGRhdGEgb24gaU9TLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTMzMDc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAg
ICAgIEFkZGVkIHNldENvbGxlY3RzVGltaW5nRGF0YSBhbmQgZ2V0VGltaW5nRGF0YSB3cmFwcGVy
IGRlY2xhcmF0aW9ucy4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFu
ZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToK
KyAgICAgICAgQ2FsbCBzZXRDb2xsZWN0c1RpbWluZ0RhdGEgd3JhcHBlciB3aGVuIGNyZWF0aW5n
IGEgY29ubmVjdGlvbiB0byBlbnN1cmUgdGhhdCB0aW1pbmcgZGF0YSBpcyBjb2xsZWN0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlv
bkRlbGVnYXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxDb25u
ZWN0aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVSZXNwb25zZUNhbGxiYWNrKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25u
ZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVS
TENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTeW5jaHJvbm91c1Jl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVSZXNwb25zZSk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFuZGxl
Q0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuaDoKKyAgICAgICAgUGFzcyB0aGUgQ0ZVUkxDb25uZWN0
aW9uUmVmIHRvIGRpZFJlY2VpdmVSZXNwb25zZSB0byBnZXQgdGltaW5nIGRhdGEgZnJvbS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpnZXRUaW1pbmdEYXRhKToKKyAgICAgICAgTW92
ZWQgdG8gY29tcGlsZSByZWdhcmRsZXNzIG9mIHVzaW5nIENGTmV0d29yayBhbmQgYWRkZWQgd3Jh
cHBlciB3aXRoIENGRGljdGlvbmFyeVJlZi4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjpzZXRDb2xsZWN0c1RpbWluZ0RhdGEpOgorICAgICAgICBBZGRlZCB3cmFwcGVyIHRvIGNh
bGwgb2JqYyBmdW5jdGlvbiBmcm9tIGMrKy4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21h
Yy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3Jl
UmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVJlc3BvbnNlOl0p
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFz
T3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFu
ZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVJlc3BvbnNl
Ol0pOgorICAgICAgICBQYXNzIGp1c3QgdGhlIE5TRGljdGlvbmFyeSBpbnN0ZWFkIG9mIHRoZSB3
aG9sZSBOU1VSTENvbm5lY3Rpb24uCisKIDIwMTQtMDUtMTggIENocmlzIEZsZWl6YWNoICA8Y2Zs
ZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogaU9TOiB1c2luZyBBWEF0dHJpYnV0ZUNh
Y2hlRW5hYmxlciBpcyB0b28gc2xvdyBmb3IgZXZlcnkgYWNjZXNzaWJpbGl0eUVsZW1lbnRBdElu
ZGV4OgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuaAkocmV2aXNpb24gMTY4OTcwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsMTIgKzEzMSwx
NyBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmICFVU0UoQ0ZORVRXT1JLKQogICAg
IHZvaWQgZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmKTsKICAgICBOU1VSTENvbm5lY3Rpb24gKmNvbm5lY3Rpb24oKSBjb25zdDsK
LSAgICBzdGF0aWMgdm9pZCBnZXRUaW1pbmdEYXRhKE5TVVJMQ29ubmVjdGlvbiosIFJlc291cmNl
TG9hZFRpbWluZyYpOwogICAgIGlkIG1ha2VEZWxlZ2F0ZShib29sKTsKICAgICBpZCBkZWxlZ2F0
ZSgpOwogICAgIHZvaWQgcmVsZWFzZURlbGVnYXRlKCk7CiAjZW5kaWYKLQorICAgICAgICAKKyNp
ZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFdFQl9USU1JTkcpCisgICAgc3RhdGljIHZvaWQg
Z2V0VGltaW5nRGF0YShOU0RpY3Rpb25hcnkgKiwgUmVzb3VyY2VMb2FkVGltaW5nJik7CisgICAg
c3RhdGljIHZvaWQgZ2V0VGltaW5nRGF0YShDRkRpY3Rpb25hcnlSZWYsIFJlc291cmNlTG9hZFRp
bWluZyYpOworICAgIHZvaWQgc2V0Q29sbGVjdHNUaW1pbmdEYXRhKCk7CisjZW5kaWYKKyAgICAg
ICAgCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBzY2hlZHVsZShXVEY6OlNjaGVkdWxl
UGFpciYpOwogICAgIHZvaWQgdW5zY2hlZHVsZShXVEY6OlNjaGVkdWxlUGFpciYpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZOZXQuY3BwCShyZXZpc2lvbiAxNjg5NzApCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNTQsNyArMjU0LDExIEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKICAgICBD
RlVSTENvbm5lY3Rpb25TdGFydChkLT5tX2Nvbm5lY3Rpb24uZ2V0KCkpOwogCiAgICAgTE9HKE5l
dHdvcmssICJDRk5ldCAtIFN0YXJ0aW5nIFVSTCAlcyAoaGFuZGxlPSVwLCBjb25uPSVwKSIsIGZp
cnN0UmVxdWVzdCgpLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHRoaXMsIGQtPm1fY29u
bmVjdGlvbi5nZXQoKSk7Ci0KKyAgICAKKyNpZiBFTkFCTEUoV0VCX1RJTUlORykKKyAgICBzZXRD
b2xsZWN0c1RpbWluZ0RhdGEoKTsKKyNlbmRpZgorICAgIAogICAgIHJldHVybiB0cnVlOwogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxl
Q0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0
ZS5jcHAJKHJldmlzaW9uIDE2ODk3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYxLDkgKzYxLDkgQEAgQ0ZVUkxSZXF1ZXN0UmVmIFJlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVj
dGlvbkRlbGVnYXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT53aWxsU2VuZFJl
cXVlc3QoY2ZSZXF1ZXN0LCBvcmlnaW5hbFJlZGlyZWN0UmVzcG9uc2UpOwogfQogCi12b2lkIFJl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVSZXNwb25zZUNh
bGxiYWNrKENGVVJMQ29ubmVjdGlvblJlZiwgQ0ZVUkxSZXNwb25zZVJlZiBjZlJlc3BvbnNlLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQordm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlv
bkRlbGVnYXRlOjpkaWRSZWNlaXZlUmVzcG9uc2VDYWxsYmFjayhDRlVSTENvbm5lY3Rpb25SZWYg
Y29ubmVjdGlvbiwgQ0ZVUkxSZXNwb25zZVJlZiBjZlJlc3BvbnNlLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQogewotICAgIHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9u
RGVsZWdhdGUqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZFJlY2VpdmVSZXNw
b25zZShjZlJlc3BvbnNlKTsKKyAgICBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZUNGVVJMQ29u
bmVjdGlvbkRlbGVnYXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRSZWNl
aXZlUmVzcG9uc2UoY29ubmVjdGlvbiwgY2ZSZXNwb25zZSk7CiB9CiAKIHZvaWQgUmVzb3VyY2VI
YW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZTo6ZGlkUmVjZWl2ZURhdGFDYWxsYmFjayhDRlVS
TENvbm5lY3Rpb25SZWYsIENGRGF0YVJlZiBkYXRhLCBDRkluZGV4IG9yaWdpbmFsTGVuZ3RoLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNG
VVJMQ29ubmVjdGlvbkRlbGVnYXRlLmgJKHJldmlzaW9uIDE2ODk3MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxl
Z2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw3IEBAIHByaXZhdGU6CiAjZW5kaWYg
Ly8gVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQogCiAgICAgdmlydHVhbCBDRlVS
TFJlcXVlc3RSZWYgd2lsbFNlbmRSZXF1ZXN0KENGVVJMUmVxdWVzdFJlZiwgQ0ZVUkxSZXNwb25z
ZVJlZikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxSZXNw
b25zZVJlZikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxD
b25uZWN0aW9uUmVmLCBDRlVSTFJlc3BvbnNlUmVmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVEYXRhKENGRGF0YVJlZiwgQ0ZJbmRleCBvcmlnaW5hbExlbmd0aCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRGYWlsKENGRXJyb3JSZWYpID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRp
b25RdWV1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1
ZXVlLmNwcAkocmV2aXNpb24gMTY4OTcwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlv
blF1ZXVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA4LDcgKzEwOCw3IEBAIENGVVJMUmVxdWVz
dFJlZiBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmUKICAgICByZXR1cm4gbV9yZXF1ZXN0UmVzdWx0
LmxlYWtSZWYoKTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVn
YXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxSZXNwb25zZVJl
ZiBjZlJlc3BvbnNlKQordm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRl
V2l0aE9wZXJhdGlvblF1ZXVlOjpkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxDb25uZWN0aW9uUmVm
IGNvbm5lY3Rpb24sIENGVVJMUmVzcG9uc2VSZWYgY2ZSZXNwb25zZSkKIHsKICAgICBSZWZQdHI8
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZT4g
cHJvdGVjdG9yKHRoaXMpOwogCkBAIC0xMzEsOCArMTMxLDE1IEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2EKICAgICAgICAgaWYgKF9DRlVSTFJlcXVlc3RDb3B5UHJv
dG9jb2xQcm9wZXJ0eUZvcktleShtX2hhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkuY2ZVUkxSZXF1ZXN0
KERvTm90VXBkYXRlSFRUUEJvZHkpLCBDRlNUUigiRm9yY2VIVE1MTUlNRVR5cGUiKSkpCiAgICAg
ICAgICAgICB3a1NldENGVVJMUmVzcG9uc2VNSU1FVHlwZShjZlJlc3BvbnNlLCBDRlNUUigidGV4
dC9odG1sIikpOwogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCi0KLSAgICAgICAgbV9oYW5kbGUt
PmNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhtX2hhbmRsZSwgY2ZSZXNwb25zZSk7
CisgICAgICAgIAorICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc291cmNlUmVzcG9uc2UoY2ZS
ZXNwb25zZSk7CisjaWYgRU5BQkxFKFdFQl9USU1JTkcpCisgICAgICAgIFJlc291cmNlSGFuZGxl
OjpnZXRUaW1pbmdEYXRhKGFkb3B0Q0YoX0NGVVJMQ29ubmVjdGlvbkNvcHlUaW1pbmdEYXRhKGNv
bm5lY3Rpb24pKS5nZXQoKSwgcmVzb3VyY2VSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSk7
CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CisjZW5kaWYKKyAgICAg
ICAgCisgICAgICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMo
bV9oYW5kbGUsIHJlc291cmNlUmVzcG9uc2UpOwogICAgIH0pOwogICAgIGRpc3BhdGNoX3NlbWFw
aG9yZV93YWl0KG1fc2VtYXBob3JlLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOwogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29u
bmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlv
bkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmgJKHJldmlzaW9uIDE2ODk3MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rp
b25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0
Nyw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldHVwQ29ubmVjdGlvblNjaGVkdWxp
bmcoQ0ZVUkxDb25uZWN0aW9uUmVmKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgQ0ZVUkxSZXF1
ZXN0UmVmIHdpbGxTZW5kUmVxdWVzdChDRlVSTFJlcXVlc3RSZWYsIENGVVJMUmVzcG9uc2VSZWYp
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxSZXNw
b25zZVJlZikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShD
RlVSTENvbm5lY3Rpb25SZWYsIENGVVJMUmVzcG9uc2VSZWYpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShDRkRhdGFSZWYsIENGSW5kZXggb3JpZ2luYWxMZW5ndGgp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKCkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoQ0ZFcnJvclJlZikgb3ZlcnJpZGU7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25u
ZWN0aW9uRGVsZWdhdGUuY3BwCShyZXZpc2lvbiAxNjg5NzApCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rp
b25EZWxlZ2F0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMSw3ICsxMTEsNyBAQCBzdGF0aWMg
dm9pZCBzZXREZWZhdWx0TUlNRVR5cGUoQ0ZVUkxSZXNwCiB9CiAjZW5kaWYgLy8gIVBMQVRGT1JN
KENPQ09BKQogCi12b2lkIFN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25E
ZWxlZ2F0ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKENGVVJMUmVzcG9uc2VSZWYgY2ZSZXNwb25zZSkK
K3ZvaWQgU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOjpk
aWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxDb25uZWN0aW9uUmVmIGNvbm5lY3Rpb24sIENGVVJMUmVz
cG9uc2VSZWYgY2ZSZXNwb25zZSkKIHsKICAgICBMT0coTmV0d29yaywgIkNGTmV0IC0gU3luY2hy
b25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOjpkaWRSZWNlaXZlUmVz
cG9uc2UoaGFuZGxlPSVwKSAoJXMpIiwgbV9oYW5kbGUsIG1faGFuZGxlLT5maXJzdFJlcXVlc3Qo
KS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIApAQCAtMTQzLDggKzE0MywxNSBAQCB2
b2lkIFN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lCiAgICAgaWYgKG1faGFuZGxl
LT5xdWlja0xvb2tIYW5kbGUoKSkKICAgICAgICAgY2ZSZXNwb25zZSA9IG1faGFuZGxlLT5xdWlj
a0xvb2tIYW5kbGUoKS0+Y2ZSZXNwb25zZSgpOwogI2VuZGlmCi0KLSAgICBtX2hhbmRsZS0+Y2xp
ZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZShtX2hhbmRsZSwgY2ZSZXNwb25zZSk7CisgICAgCisg
ICAgUmVzb3VyY2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlKGNmUmVzcG9uc2UpOworI2lmIEVO
QUJMRShXRUJfVElNSU5HKQorICAgIFJlc291cmNlSGFuZGxlOjpnZXRUaW1pbmdEYXRhKGFkb3B0
Q0YoX0NGVVJMQ29ubmVjdGlvbkNvcHlUaW1pbmdEYXRhKGNvbm5lY3Rpb24pKS5nZXQoKSwgcmVz
b3VyY2VSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSk7CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShjb25uZWN0aW9uKTsKKyNlbmRpZgorICAgIAorICAgIG1faGFuZGxlLT5jbGllbnQoKS0+
ZGlkUmVjZWl2ZVJlc3BvbnNlKG1faGFuZGxlLCByZXNvdXJjZVJlc3BvbnNlKTsKIH0KIAogdm9p
ZCBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJl
Y2VpdmVEYXRhKENGRGF0YVJlZiBkYXRhLCBDRkluZGV4IG9yaWdpbmFsTGVuZ3RoKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFu
ZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5l
Y3Rpb25EZWxlZ2F0ZS5oCShyZXZpc2lvbiAxNjg5NzApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25E
ZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIHNldHVwQ29ubmVjdGlvblNjaGVkdWxpbmcoQ0ZVUkxDb25uZWN0aW9uUmVm
KSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgQ0ZVUkxSZXF1ZXN0UmVmIHdpbGxTZW5kUmVxdWVz
dChDRlVSTFJlcXVlc3RSZWYsIENGVVJMUmVzcG9uc2VSZWYpIG92ZXJyaWRlOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShDRlVSTENvbm5lY3Rpb25SZWYsIENG
VVJMUmVzcG9uc2VSZWYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgQ0ZDYWNoZWRVUkxSZXNwb25z
ZVJlZiB3aWxsQ2FjaGVSZXNwb25zZShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNoYWxsZW5nZShDRlVSTEF1dGhDaGFsbGVuZ2VS
ZWYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kQm9keURhdGEoQ0ZJbmRleCB0
b3RhbEJ5dGVzV3JpdHRlbiwgQ0ZJbmRleCB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1dyaXRlKSBvdmVy
cmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCShyZXZpc2lvbiAxNjg5NzApCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJS
ZXNvdXJjZUhhbmRsZUludGVybmFsLmgiCiAKLSNpZiAhVVNFKENGTkVUV09SSykKLQogI2ltcG9y
dCAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCIKICNpbXBvcnQgIkF1dGhlbnRpY2F0aW9uTWFj
LmgiCiAjaW1wb3J0ICJCbG9ja0V4Y2VwdGlvbnMuaCIKQEAgLTg3LDcgKzg1LDkgQEAgLShpZClf
aW5pdFdpdGhSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZQogQGVuZAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KKyAgICAKKyNpZiAhVVNFKENGTkVUV09SSykKKyAgICAKIHN0YXRpYyB2b2lkIGFw
cGx5QmFzaWNBdXRob3JpemF0aW9uSGVhZGVyKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkKIHsKICAgICBTdHJpbmcgYXV0aGVudGljYXRpb25I
ZWFkZXIgPSAiQmFzaWMgIiArIGJhc2U2NEVuY29kZShTdHJpbmcoY3JlZGVudGlhbC51c2VyKCkg
KyAiOiIgKyBjcmVkZW50aWFsLnBhc3N3b3JkKCkpLnV0ZjgoKSk7CkBAIC0zNzAsMzYgKzM3MCw2
IEBAIE5TVVJMQ29ubmVjdGlvbiAqUmVzb3VyY2VIYW5kbGU6OmNvbm5lY3QKICAgICByZXR1cm4g
ZC0+bV9jb25uZWN0aW9uLmdldCgpOwogfQogICAgIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6Z2V0
VGltaW5nRGF0YShOU1VSTENvbm5lY3Rpb24gKmNvbm5lY3Rpb24sIFJlc291cmNlTG9hZFRpbWlu
ZyYgdGltaW5nKQotewotI2lmIEVOQUJMRShXRUJfVElNSU5HKQotICAgIGlmIChOU0RpY3Rpb25h
cnkgKnRpbWluZ0RhdGEgPSBbY29ubmVjdGlvbiBfdGltaW5nRGF0YV0pIHsKLSAgICAgICAgLy8g
VGhpcyBpcyBub3QgdGhlIG5hdmlnYXRpb25TdGFydCB0aW1lIGluIG1vbm90b25pYyB0aW1lLCBi
dXQgdGhlIG90aGVyIHRpbWVzIGFyZSByZWxhdGl2ZSB0byB0aGlzIHRpbWUKLSAgICAgICAgLy8g
YW5kIG9ubHkgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGltZXMgYXJlIHN0b3JlZC4KLSAgICAg
ICAgZG91YmxlIHJlZmVyZW5jZVN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tD
Rk5UaW1pbmdEYXRhVGltaW5nRGF0YUluaXQiXSBkb3VibGVWYWx1ZV07Ci0gICAgICAgIAotICAg
ICAgICBkb3VibGUgZG9tYWluTG9va3VwU3RhcnQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6
QCJfa0NGTlRpbWluZ0RhdGFEb21haW5Mb29rdXBTdGFydCJdIGRvdWJsZVZhbHVlXTsKLSAgICAg
ICAgZG91YmxlIGRvbWFpbkxvb2t1cEVuZCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9r
Q0ZOVGltaW5nRGF0YURvbWFpbkxvb2t1cEVuZCJdIGRvdWJsZVZhbHVlXTsKLSAgICAgICAgZG91
YmxlIGNvbm5lY3RTdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5n
RGF0YUNvbm5lY3RTdGFydCJdIGRvdWJsZVZhbHVlXTsKLSAgICAgICAgZG91YmxlIHNlY3VyZUNv
bm5lY3Rpb25TdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0
YVNlY3VyZUNvbm5lY3Rpb25TdGFydCJdIGRvdWJsZVZhbHVlXTsKLSAgICAgICAgZG91YmxlIGNv
bm5lY3RFbmQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFDb25u
ZWN0RW5kIl0gZG91YmxlVmFsdWVdOwotICAgICAgICBkb3VibGUgcmVxdWVzdFN0YXJ0ID0gW1t0
aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhUmVxdWVzdFN0YXJ0Il0gZG91
YmxlVmFsdWVdOwotICAgICAgICBkb3VibGUgcmVzcG9uc2VTdGFydCA9IFtbdGltaW5nRGF0YSB2
YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YVJlc3BvbnNlU3RhcnQiXSBkb3VibGVWYWx1ZV07
Ci0gICAgICAgIAotICAgICAgICB0aW1pbmcuZG9tYWluTG9va3VwU3RhcnQgPSBkb21haW5Mb29r
dXBTdGFydCA8PSAwID8gLTEgOiAoZG9tYWluTG9va3VwU3RhcnQgLSByZWZlcmVuY2VTdGFydCkg
KiAxMDAwOwotICAgICAgICB0aW1pbmcuZG9tYWluTG9va3VwRW5kID0gZG9tYWluTG9va3VwRW5k
IDw9IDAgPyAtMSA6IChkb21haW5Mb29rdXBFbmQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOwot
ICAgICAgICB0aW1pbmcuY29ubmVjdFN0YXJ0ID0gY29ubmVjdFN0YXJ0IDw9IDAgPyAtMSA6IChj
b25uZWN0U3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOwotICAgICAgICB0aW1pbmcuc2Vj
dXJlQ29ubmVjdGlvblN0YXJ0ID0gc2VjdXJlQ29ubmVjdGlvblN0YXJ0IDw9IDAgPyAtMSA6IChz
ZWN1cmVDb25uZWN0aW9uU3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOwotICAgICAgICB0
aW1pbmcuY29ubmVjdEVuZCA9IGNvbm5lY3RFbmQgPD0gMCA/IC0xIDogKGNvbm5lY3RFbmQgLSBy
ZWZlcmVuY2VTdGFydCkgKiAxMDAwOwotICAgICAgICB0aW1pbmcucmVxdWVzdFN0YXJ0ID0gcmVx
dWVzdFN0YXJ0IDw9IDAgPyAtMSA6IChyZXF1ZXN0U3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAx
MDAwOwotICAgICAgICB0aW1pbmcucmVzcG9uc2VTdGFydCA9IHJlc3BvbnNlU3RhcnQgPD0gMCA/
IC0xIDogKHJlc3BvbnNlU3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOwotICAgIH0KLSNl
bHNlCi0gICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOwotICAgIFVOVVNFRF9QQVJBTSh0aW1p
bmcpOwotI2VuZGlmCi19Ci0gICAgCiBib29sIFJlc291cmNlSGFuZGxlOjpsb2Fkc0Jsb2NrZWQo
KQogewogICAgIHJldHVybiBmYWxzZTsKQEAgLTczNSw4ICs3MDUsNDUgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6Y29udGludWVXaWxsQ2FjaGVSZQogCiAgICAgWyhpZClkZWxlZ2F0ZSgpIGNvbnRp
bnVlV2lsbENhY2hlUmVzcG9uc2U6cmVzcG9uc2VdOwogfQotCisgICAgCisjZW5kaWYgLy8gIVVT
RShDRk5FVFdPUkspCisgICAgCisjaWYgRU5BQkxFKFdFQl9USU1JTkcpIAordm9pZCBSZXNvdXJj
ZUhhbmRsZTo6Z2V0VGltaW5nRGF0YShOU0RpY3Rpb25hcnkgKnRpbWluZ0RhdGEsIFJlc291cmNl
TG9hZFRpbWluZyYgdGltaW5nKQoreworICAgIGlmICh0aW1pbmdEYXRhKSB7CisgICAgICAgIC8v
IFRoaXMgaXMgbm90IHRoZSBuYXZpZ2F0aW9uU3RhcnQgdGltZSBpbiBtb25vdG9uaWMgdGltZSwg
YnV0IHRoZSBvdGhlciB0aW1lcyBhcmUgcmVsYXRpdmUgdG8gdGhpcyB0aW1lCisgICAgICAgIC8v
IGFuZCBvbmx5IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRpbWVzIGFyZSBzdG9yZWQuCisgICAg
ICAgIGRvdWJsZSByZWZlcmVuY2VTdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9r
Q0ZOVGltaW5nRGF0YVRpbWluZ0RhdGFJbml0Il0gZG91YmxlVmFsdWVdOworICAgICAgICAgICAg
CisgICAgICAgIGRvdWJsZSBkb21haW5Mb29rdXBTdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZv
cktleTpAIl9rQ0ZOVGltaW5nRGF0YURvbWFpbkxvb2t1cFN0YXJ0Il0gZG91YmxlVmFsdWVdOwor
ICAgICAgICBkb3VibGUgZG9tYWluTG9va3VwRW5kID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5
OkAiX2tDRk5UaW1pbmdEYXRhRG9tYWluTG9va3VwRW5kIl0gZG91YmxlVmFsdWVdOworICAgICAg
ICBkb3VibGUgY29ubmVjdFN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5U
aW1pbmdEYXRhQ29ubmVjdFN0YXJ0Il0gZG91YmxlVmFsdWVdOworICAgICAgICBkb3VibGUgc2Vj
dXJlQ29ubmVjdGlvblN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1p
bmdEYXRhU2VjdXJlQ29ubmVjdGlvblN0YXJ0Il0gZG91YmxlVmFsdWVdOworICAgICAgICBkb3Vi
bGUgY29ubmVjdEVuZCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0
YUNvbm5lY3RFbmQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgIGRvdWJsZSByZXF1ZXN0U3RhcnQg
PSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFSZXF1ZXN0U3RhcnQi
XSBkb3VibGVWYWx1ZV07CisgICAgICAgIGRvdWJsZSByZXNwb25zZVN0YXJ0ID0gW1t0aW1pbmdE
YXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhUmVzcG9uc2VTdGFydCJdIGRvdWJsZVZh
bHVlXTsKKyAgICAgICAgICAgIAorICAgICAgICB0aW1pbmcuZG9tYWluTG9va3VwU3RhcnQgPSBk
b21haW5Mb29rdXBTdGFydCA8PSAwID8gLTEgOiAoZG9tYWluTG9va3VwU3RhcnQgLSByZWZlcmVu
Y2VTdGFydCkgKiAxMDAwOworICAgICAgICB0aW1pbmcuZG9tYWluTG9va3VwRW5kID0gZG9tYWlu
TG9va3VwRW5kIDw9IDAgPyAtMSA6IChkb21haW5Mb29rdXBFbmQgLSByZWZlcmVuY2VTdGFydCkg
KiAxMDAwOworICAgICAgICB0aW1pbmcuY29ubmVjdFN0YXJ0ID0gY29ubmVjdFN0YXJ0IDw9IDAg
PyAtMSA6IChjb25uZWN0U3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICB0
aW1pbmcuc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gc2VjdXJlQ29ubmVjdGlvblN0YXJ0IDw9IDAg
PyAtMSA6IChzZWN1cmVDb25uZWN0aW9uU3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOwor
ICAgICAgICB0aW1pbmcuY29ubmVjdEVuZCA9IGNvbm5lY3RFbmQgPD0gMCA/IC0xIDogKGNvbm5l
Y3RFbmQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICB0aW1pbmcucmVxdWVzdFN0
YXJ0ID0gcmVxdWVzdFN0YXJ0IDw9IDAgPyAtMSA6IChyZXF1ZXN0U3RhcnQgLSByZWZlcmVuY2VT
dGFydCkgKiAxMDAwOworICAgICAgICB0aW1pbmcucmVzcG9uc2VTdGFydCA9IHJlc3BvbnNlU3Rh
cnQgPD0gMCA/IC0xIDogKHJlc3BvbnNlU3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOwor
ICAgIH0KK30KKyAgICAKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmdldFRpbWluZ0RhdGEoQ0ZEaWN0
aW9uYXJ5UmVmIHRpbWluZ0RhdGEsIFJlc291cmNlTG9hZFRpbWluZyYgdGltaW5nKQoreworICAg
IHJldHVybiBnZXRUaW1pbmdEYXRhKChfX2JyaWRnZSBOU0RpY3Rpb25hcnkqKXRpbWluZ0RhdGEs
IHRpbWluZyk7Cit9CisgICAgCit2b2lkIFJlc291cmNlSGFuZGxlOjpzZXRDb2xsZWN0c1RpbWlu
Z0RhdGEoKQoreworICAgIFtOU1VSTENvbm5lY3Rpb24gX3NldENvbGxlY3RzVGltaW5nRGF0YTpZ
RVNdOworfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vICFV
U0UoQ0ZORVRXT1JLKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
V2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVn
YXRlLm1tCShyZXZpc2lvbiAxNjg5NzApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzIsNyArMTcyLDcgQEAgLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24g
KiljbwogICAgIAogICAgIFJlc291cmNlUmVzcG9uc2UgcmVzb3VyY2VSZXNwb25zZShyKTsKICNp
ZiBFTkFCTEUoV0VCX1RJTUlORykKLSAgICBSZXNvdXJjZUhhbmRsZTo6Z2V0VGltaW5nRGF0YShj
b25uZWN0aW9uLCByZXNvdXJjZVJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKTsKKyAgICBS
ZXNvdXJjZUhhbmRsZTo6Z2V0VGltaW5nRGF0YShbY29ubmVjdGlvbiBfdGltaW5nRGF0YV0sIHJl
c291cmNlUmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpOwogI2Vsc2UKICAgICBVTlVTRURf
UEFSQU0oY29ubmVjdGlvbik7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0
ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9X
ZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0JKHJldmlzaW9u
IDE2ODk3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVS
ZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5KQpA
QCAtMjE0LDcgKzIxNCw3IEBAIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICop
Y28KICAgICAgICAgCiAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVzb3VyY2VSZXNwb25zZShy
KTsKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKLSAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmdldFRp
bWluZ0RhdGEoY29ubmVjdGlvbiwgcmVzb3VyY2VSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmco
KSk7CisgICAgICAgIFJlc291cmNlSGFuZGxlOjpnZXRUaW1pbmdEYXRhKFtjb25uZWN0aW9uIF90
aW1pbmdEYXRhXSwgcmVzb3VyY2VSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSk7CiAjZWxz
ZQogICAgICAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231707</attachid>
            <date>2014-05-19 12:10:53 -0700</date>
            <delta_ts>2014-05-19 16:39:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133075-20140519121035.patch</filename>
            <type>text/plain</type>
            <size>19130</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTA1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDE0LTA1LTE5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ29sbGVjdCB3
ZWIgdGltaW5nIGRhdGEgb24gaU9TLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTMzMDc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAg
ICAgIEFkZGVkIHNldENvbGxlY3RzVGltaW5nRGF0YSB3cmFwcGVyIGFuZCBnZXRDb25uZWN0aW9u
VGltaW5nRGF0YSBkZWNsYXJhdGlvbnMuCisgICAgICAgIGdldENvbm5lY3Rpb25UaW1pbmdEYXRh
IHdpdGggYSBkaWN0aW9uYXJ5IHBhcmFtZXRlciBpcyBhIHByaXZhdGUgaGVscGVyIGZ1bmN0aW9u
LgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICBDYWxs
IHNldENvbGxlY3RzVGltaW5nRGF0YSB3cmFwcGVyIHdoZW4gY3JlYXRpbmcgYSBjb25uZWN0aW9u
IHRvIGVuc3VyZSB0aGF0IHRpbWluZyBkYXRhIGlzIGNvbGxlY3RlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0
ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0
ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpkaWRSZWNlaXZlUmVz
cG9uc2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVS
TENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY2YvU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRl
bGVnYXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVD
RlVSTENvbm5lY3Rpb25EZWxlZ2F0ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rp
b25EZWxlZ2F0ZS5oOgorICAgICAgICBQYXNzIHRoZSBDRlVSTENvbm5lY3Rpb25SZWYgdG8gZGlk
UmVjZWl2ZVJlc3BvbnNlIHRvIGdldCB0aW1pbmcgZGF0YSBmcm9tLgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGU6OmdldENvbm5lY3Rpb25UaW1pbmdEYXRhKToKKyAgICAgICAgTW92ZWQg
ZnJvbSBnZXRUaW1pbmdEYXRhIHRvIGNvbXBpbGUgcmVnYXJkbGVzcyBvZiB1c2luZyBDRk5ldHdv
cmsgYW5kIGFkZGVkIHdyYXBwZXIgd2l0aCBDRkRpY3Rpb25hcnlSZWYuCisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZTo6c2V0Q29sbGVjdHNUaW1pbmdEYXRhKToKKyAgICAgICAgQWRk
ZWQgd3JhcHBlciB0byBjYWxsIG9iamMgZnVuY3Rpb24gZnJvbSBjKysuCisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZTo6Z2V0VGltaW5nRGF0YSk6CisgICAgICAgIFJlbmFtZWQgdG8g
Z2V0Q29ubmVjdGlvblRpbWluZ0RhdGEuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMv
V2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJl
c291cmNlSGFuZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVSZXNwb25zZTpdKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09w
ZXJhdGlvblF1ZXVlRGVsZWdhdGUubW06CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRs
ZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVSZXNwb25zZTpd
KToKKyAgICAgICAgVXBkYXRlZCBmdW5jdGlvbiBuYW1lIGZyb20gZ2V0VGltaW5nRGF0YSB0byBn
ZXRDb25uZWN0aW9uVGltaW5nRGF0YS4KKwogMjAxNC0wNS0xOSAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBJbWFnZXMgbWlzc2luZyBzb21ldGltZXMg
d2l0aCBjb21wb3NpdGVkIGNsaXBwaW5nIGxheWVycwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAkocmV2aXNpb24gMTY4OTcwKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzEsMTIgKzEzMSwyMCBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oQ09D
T0EpICYmICFVU0UoQ0ZORVRXT1JLKQogICAgIHZvaWQgZGlkQ2FuY2VsQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKICAgICBOU1VSTENvbm5l
Y3Rpb24gKmNvbm5lY3Rpb24oKSBjb25zdDsKLSAgICBzdGF0aWMgdm9pZCBnZXRUaW1pbmdEYXRh
KE5TVVJMQ29ubmVjdGlvbiosIFJlc291cmNlTG9hZFRpbWluZyYpOwogICAgIGlkIG1ha2VEZWxl
Z2F0ZShib29sKTsKICAgICBpZCBkZWxlZ2F0ZSgpOwogICAgIHZvaWQgcmVsZWFzZURlbGVnYXRl
KCk7CiAjZW5kaWYKLQorICAgICAgICAKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFdF
Ql9USU1JTkcpCisjaWYgVVNFKENGTkVUV09SSykKKyAgICB2b2lkIHNldENvbGxlY3RzVGltaW5n
RGF0YSgpOworICAgIHN0YXRpYyB2b2lkIGdldENvbm5lY3Rpb25UaW1pbmdEYXRhKENGVVJMQ29u
bmVjdGlvblJlZiwgUmVzb3VyY2VMb2FkVGltaW5nJik7CisjZWxzZQorICAgIHN0YXRpYyB2b2lk
IGdldENvbm5lY3Rpb25UaW1pbmdEYXRhKE5TVVJMQ29ubmVjdGlvbiAqLCBSZXNvdXJjZUxvYWRU
aW1pbmcmKTsKKyNlbmRpZgorI2VuZGlmCisgICAgICAgIAogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIHZvaWQgc2NoZWR1bGUoV1RGOjpTY2hlZHVsZVBhaXImKTsKICAgICB2b2lkIHVuc2NoZWR1
bGUoV1RGOjpTY2hlZHVsZVBhaXImKTsKQEAgLTI4OSw2ICsyOTcsMTAgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGNyZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIFNjaGVkdWxpbmdCZWhh
dmlvcik7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoV0VCX1RJTUlO
RykKK3N0YXRpYyB2b2lkIGdldENvbm5lY3Rpb25UaW1pbmdEYXRhKE5TRGljdGlvbmFyeSAqdGlt
aW5nRGF0YSwgUmVzb3VyY2VMb2FkVGltaW5nJik7CisjZW5kaWYKKwogICAgIGZyaWVuZCBjbGFz
cyBSZXNvdXJjZUhhbmRsZUludGVybmFsOwogICAgIE93blB0cjxSZXNvdXJjZUhhbmRsZUludGVy
bmFsPiBkOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZOZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAJKHJldmlzaW9uIDE2ODk3MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI1NCw3ICsyNTQsMTEgQEAgYm9vbCBSZXNvdXJjZUhhbmRs
ZTo6c3RhcnQoKQogICAgIENGVVJMQ29ubmVjdGlvblN0YXJ0KGQtPm1fY29ubmVjdGlvbi5nZXQo
KSk7CiAKICAgICBMT0coTmV0d29yaywgIkNGTmV0IC0gU3RhcnRpbmcgVVJMICVzIChoYW5kbGU9
JXAsIGNvbm49JXApIiwgZmlyc3RSZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSwgdGhpcywgZC0+bV9jb25uZWN0aW9uLmdldCgpKTsKLQorICAgIAorI2lmIEVOQUJMRShXRUJf
VElNSU5HKQorICAgIHNldENvbGxlY3RzVGltaW5nRGF0YSgpOworI2VuZGlmCisgICAgCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJM
Q29ubmVjdGlvbkRlbGVnYXRlLmNwcAkocmV2aXNpb24gMTY4OTcwKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVn
YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEsOSArNjEsOSBAQCBDRlVSTFJlcXVlc3RSZWYg
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlc291cmNl
SGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJ
bmZvKSktPndpbGxTZW5kUmVxdWVzdChjZlJlcXVlc3QsIG9yaWdpbmFsUmVkaXJlY3RSZXNwb25z
ZSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZTo6ZGlk
UmVjZWl2ZVJlc3BvbnNlQ2FsbGJhY2soQ0ZVUkxDb25uZWN0aW9uUmVmLCBDRlVSTFJlc3BvbnNl
UmVmIGNmUmVzcG9uc2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit2b2lkIFJlc291cmNlSGFu
ZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVSZXNwb25zZUNhbGxiYWNrKENG
VVJMQ29ubmVjdGlvblJlZiBjb25uZWN0aW9uLCBDRlVSTFJlc3BvbnNlUmVmIGNmUmVzcG9uc2Us
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7Ci0gICAgc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8p
KS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGNmUmVzcG9uc2UpOworICAgIHN0YXRpY19jYXN0PFJlc291
cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUqPihjb25zdF9jYXN0PHZvaWQqPihjbGll
bnRJbmZvKSktPmRpZFJlY2VpdmVSZXNwb25zZShjb25uZWN0aW9uLCBjZlJlc3BvbnNlKTsKIH0K
IAogdm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOjpkaWRSZWNlaXZl
RGF0YUNhbGxiYWNrKENGVVJMQ29ubmVjdGlvblJlZiwgQ0ZEYXRhUmVmIGRhdGEsIENGSW5kZXgg
b3JpZ2luYWxMZW5ndGgsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVs
ZWdhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuaAkocmV2aXNpb24gMTY4OTcw
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNG
VVJMQ29ubmVjdGlvbkRlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc2LDcgKzc2LDcgQEAg
cHJpdmF0ZToKICNlbmRpZiAvLyBVU0UoTkVUV09SS19DRkRBVEFfQVJSQVlfQ0FMTEJBQ0spCiAK
ICAgICB2aXJ0dWFsIENGVVJMUmVxdWVzdFJlZiB3aWxsU2VuZFJlcXVlc3QoQ0ZVUkxSZXF1ZXN0
UmVmLCBDRlVSTFJlc3BvbnNlUmVmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVS
ZXNwb25zZShDRlVSTFJlc3BvbnNlUmVmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVSZXNwb25zZShDRlVSTENvbm5lY3Rpb25SZWYsIENGVVJMUmVzcG9uc2VSZWYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoQ0ZEYXRhUmVmLCBDRkluZGV4IG9yaWdpbmFs
TGVuZ3RoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoQ0ZFcnJvclJlZikgPSAwOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRl
bGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdh
dGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwCShyZXZpc2lvbiAxNjg5NzApCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVs
ZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsNyArMTA4
LDcgQEAgQ0ZVUkxSZXF1ZXN0UmVmIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZQogICAgIHJldHVy
biBtX3JlcXVlc3RSZXN1bHQubGVha1JlZigpOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25z
ZShDRlVSTFJlc3BvbnNlUmVmIGNmUmVzcG9uc2UpCit2b2lkIFJlc291cmNlSGFuZGxlQ0ZVUkxD
b25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25zZShD
RlVSTENvbm5lY3Rpb25SZWYgY29ubmVjdGlvbiwgQ0ZVUkxSZXNwb25zZVJlZiBjZlJlc3BvbnNl
KQogewogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0
aE9wZXJhdGlvblF1ZXVlPiBwcm90ZWN0b3IodGhpcyk7CiAKQEAgLTEzMSw4ICsxMzEsMTUgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYQogICAgICAgICBpZiAoX0NG
VVJMUmVxdWVzdENvcHlQcm90b2NvbFByb3BlcnR5Rm9yS2V5KG1faGFuZGxlLT5maXJzdFJlcXVl
c3QoKS5jZlVSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSksIENGU1RSKCJGb3JjZUhUTUxN
SU1FVHlwZSIpKSkKICAgICAgICAgICAgIHdrU2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKGNmUmVz
cG9uc2UsIENGU1RSKCJ0ZXh0L2h0bWwiKSk7CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKLQot
ICAgICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKG1faGFu
ZGxlLCBjZlJlc3BvbnNlKTsKKyAgICAgICAgCisgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVz
b3VyY2VSZXNwb25zZShjZlJlc3BvbnNlKTsKKyNpZiBFTkFCTEUoV0VCX1RJTUlORykKKyAgICAg
ICAgUmVzb3VyY2VIYW5kbGU6OmdldENvbm5lY3Rpb25UaW1pbmdEYXRhKGNvbm5lY3Rpb24sIHJl
c291cmNlUmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpOworI2Vsc2UKKyAgICAgICAgVU5V
U0VEX1BBUkFNKGNvbm5lY3Rpb24pOworI2VuZGlmCisgICAgICAgIAorICAgICAgICBtX2hhbmRs
ZS0+Y2xpZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKG1faGFuZGxlLCByZXNvdXJjZVJl
c3BvbnNlKTsKICAgICB9KTsKICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdChtX3NlbWFwaG9y
ZSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhP
cGVyYXRpb25RdWV1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRp
b25RdWV1ZS5oCShyZXZpc2lvbiAxNjg5NzApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0
aW9uUXVldWUuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBzZXR1cENvbm5lY3Rpb25TY2hlZHVsaW5nKENGVVJMQ29ubmVjdGlvblJl
Zikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIENGVVJMUmVxdWVzdFJlZiB3aWxsU2VuZFJlcXVl
c3QoQ0ZVUkxSZXF1ZXN0UmVmLCBDRlVSTFJlc3BvbnNlUmVmKSBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKENGVVJMUmVzcG9uc2VSZWYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxDb25uZWN0aW9uUmVmLCBD
RlVSTFJlc3BvbnNlUmVmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURh
dGEoQ0ZEYXRhUmVmLCBDRkluZGV4IG9yaWdpbmFsTGVuZ3RoKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZygpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRGYWlsKENGRXJyb3JSZWYpIG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVs
ZWdhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcAko
cmV2aXNpb24gMTY4OTcwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9T
eW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTEsNyArMTExLDcgQEAgc3RhdGljIHZvaWQgc2V0RGVmYXVsdE1JTUVU
eXBlKENGVVJMUmVzcAogfQogI2VuZGlmIC8vICFQTEFURk9STShDT0NPQSkKIAotdm9pZCBTeW5j
aHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVS
ZXNwb25zZShDRlVSTFJlc3BvbnNlUmVmIGNmUmVzcG9uc2UpCit2b2lkIFN5bmNocm9ub3VzUmVz
b3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKENG
VVJMQ29ubmVjdGlvblJlZiBjb25uZWN0aW9uLCBDRlVSTFJlc3BvbnNlUmVmIGNmUmVzcG9uc2Up
CiB7CiAgICAgTE9HKE5ldHdvcmssICJDRk5ldCAtIFN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVD
RlVSTENvbm5lY3Rpb25EZWxlZ2F0ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZT0lcCkgKCVz
KSIsIG1faGFuZGxlLCBtX2hhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7CiAKQEAgLTE0Myw4ICsxNDMsMTUgQEAgdm9pZCBTeW5jaHJvbm91c1Jlc291
cmNlSGFuZGxlQ0ZVUkxDb25uZQogICAgIGlmIChtX2hhbmRsZS0+cXVpY2tMb29rSGFuZGxlKCkp
CiAgICAgICAgIGNmUmVzcG9uc2UgPSBtX2hhbmRsZS0+cXVpY2tMb29rSGFuZGxlKCktPmNmUmVz
cG9uc2UoKTsKICNlbmRpZgotCi0gICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlUmVz
cG9uc2UobV9oYW5kbGUsIGNmUmVzcG9uc2UpOworICAgIAorICAgIFJlc291cmNlUmVzcG9uc2Ug
cmVzb3VyY2VSZXNwb25zZShjZlJlc3BvbnNlKTsKKyNpZiBFTkFCTEUoV0VCX1RJTUlORykKKyAg
ICBSZXNvdXJjZUhhbmRsZTo6Z2V0Q29ubmVjdGlvblRpbWluZ0RhdGEoY29ubmVjdGlvbiwgcmVz
b3VyY2VSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSk7CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShjb25uZWN0aW9uKTsKKyNlbmRpZgorICAgIAorICAgIG1faGFuZGxlLT5jbGllbnQoKS0+
ZGlkUmVjZWl2ZVJlc3BvbnNlKG1faGFuZGxlLCByZXNvdXJjZVJlc3BvbnNlKTsKIH0KIAogdm9p
ZCBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJl
Y2VpdmVEYXRhKENGRGF0YVJlZiBkYXRhLCBDRkluZGV4IG9yaWdpbmFsTGVuZ3RoKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFu
ZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5l
Y3Rpb25EZWxlZ2F0ZS5oCShyZXZpc2lvbiAxNjg5NzApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25E
ZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIHNldHVwQ29ubmVjdGlvblNjaGVkdWxpbmcoQ0ZVUkxDb25uZWN0aW9uUmVm
KSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgQ0ZVUkxSZXF1ZXN0UmVmIHdpbGxTZW5kUmVxdWVz
dChDRlVSTFJlcXVlc3RSZWYsIENGVVJMUmVzcG9uc2VSZWYpIG92ZXJyaWRlOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShDRlVSTENvbm5lY3Rpb25SZWYsIENG
VVJMUmVzcG9uc2VSZWYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgQ0ZDYWNoZWRVUkxSZXNwb25z
ZVJlZiB3aWxsQ2FjaGVSZXNwb25zZShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNoYWxsZW5nZShDRlVSTEF1dGhDaGFsbGVuZ2VS
ZWYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kQm9keURhdGEoQ0ZJbmRleCB0
b3RhbEJ5dGVzV3JpdHRlbiwgQ0ZJbmRleCB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1dyaXRlKSBvdmVy
cmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCShyZXZpc2lvbiAxNjg5NzApCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJS
ZXNvdXJjZUhhbmRsZUludGVybmFsLmgiCiAKLSNpZiAhVVNFKENGTkVUV09SSykKLQogI2ltcG9y
dCAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCIKICNpbXBvcnQgIkF1dGhlbnRpY2F0aW9uTWFj
LmgiCiAjaW1wb3J0ICJCbG9ja0V4Y2VwdGlvbnMuaCIKQEAgLTg3LDcgKzg1LDkgQEAgLShpZClf
aW5pdFdpdGhSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZQogQGVuZAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KKyAgICAKKyNpZiAhVVNFKENGTkVUV09SSykKKyAgICAKIHN0YXRpYyB2b2lkIGFw
cGx5QmFzaWNBdXRob3JpemF0aW9uSGVhZGVyKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkKIHsKICAgICBTdHJpbmcgYXV0aGVudGljYXRpb25I
ZWFkZXIgPSAiQmFzaWMgIiArIGJhc2U2NEVuY29kZShTdHJpbmcoY3JlZGVudGlhbC51c2VyKCkg
KyAiOiIgKyBjcmVkZW50aWFsLnBhc3N3b3JkKCkpLnV0ZjgoKSk7CkBAIC0zNzAsMzYgKzM3MCw2
IEBAIE5TVVJMQ29ubmVjdGlvbiAqUmVzb3VyY2VIYW5kbGU6OmNvbm5lY3QKICAgICByZXR1cm4g
ZC0+bV9jb25uZWN0aW9uLmdldCgpOwogfQogICAgIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6Z2V0
VGltaW5nRGF0YShOU1VSTENvbm5lY3Rpb24gKmNvbm5lY3Rpb24sIFJlc291cmNlTG9hZFRpbWlu
ZyYgdGltaW5nKQotewotI2lmIEVOQUJMRShXRUJfVElNSU5HKQotICAgIGlmIChOU0RpY3Rpb25h
cnkgKnRpbWluZ0RhdGEgPSBbY29ubmVjdGlvbiBfdGltaW5nRGF0YV0pIHsKLSAgICAgICAgLy8g
VGhpcyBpcyBub3QgdGhlIG5hdmlnYXRpb25TdGFydCB0aW1lIGluIG1vbm90b25pYyB0aW1lLCBi
dXQgdGhlIG90aGVyIHRpbWVzIGFyZSByZWxhdGl2ZSB0byB0aGlzIHRpbWUKLSAgICAgICAgLy8g
YW5kIG9ubHkgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGltZXMgYXJlIHN0b3JlZC4KLSAgICAg
ICAgZG91YmxlIHJlZmVyZW5jZVN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tD
Rk5UaW1pbmdEYXRhVGltaW5nRGF0YUluaXQiXSBkb3VibGVWYWx1ZV07Ci0gICAgICAgIAotICAg
ICAgICBkb3VibGUgZG9tYWluTG9va3VwU3RhcnQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6
QCJfa0NGTlRpbWluZ0RhdGFEb21haW5Mb29rdXBTdGFydCJdIGRvdWJsZVZhbHVlXTsKLSAgICAg
ICAgZG91YmxlIGRvbWFpbkxvb2t1cEVuZCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9r
Q0ZOVGltaW5nRGF0YURvbWFpbkxvb2t1cEVuZCJdIGRvdWJsZVZhbHVlXTsKLSAgICAgICAgZG91
YmxlIGNvbm5lY3RTdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5n
RGF0YUNvbm5lY3RTdGFydCJdIGRvdWJsZVZhbHVlXTsKLSAgICAgICAgZG91YmxlIHNlY3VyZUNv
bm5lY3Rpb25TdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0
YVNlY3VyZUNvbm5lY3Rpb25TdGFydCJdIGRvdWJsZVZhbHVlXTsKLSAgICAgICAgZG91YmxlIGNv
bm5lY3RFbmQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFDb25u
ZWN0RW5kIl0gZG91YmxlVmFsdWVdOwotICAgICAgICBkb3VibGUgcmVxdWVzdFN0YXJ0ID0gW1t0
aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhUmVxdWVzdFN0YXJ0Il0gZG91
YmxlVmFsdWVdOwotICAgICAgICBkb3VibGUgcmVzcG9uc2VTdGFydCA9IFtbdGltaW5nRGF0YSB2
YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YVJlc3BvbnNlU3RhcnQiXSBkb3VibGVWYWx1ZV07
Ci0gICAgICAgIAotICAgICAgICB0aW1pbmcuZG9tYWluTG9va3VwU3RhcnQgPSBkb21haW5Mb29r
dXBTdGFydCA8PSAwID8gLTEgOiAoZG9tYWluTG9va3VwU3RhcnQgLSByZWZlcmVuY2VTdGFydCkg
KiAxMDAwOwotICAgICAgICB0aW1pbmcuZG9tYWluTG9va3VwRW5kID0gZG9tYWluTG9va3VwRW5k
IDw9IDAgPyAtMSA6IChkb21haW5Mb29rdXBFbmQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOwot
ICAgICAgICB0aW1pbmcuY29ubmVjdFN0YXJ0ID0gY29ubmVjdFN0YXJ0IDw9IDAgPyAtMSA6IChj
b25uZWN0U3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOwotICAgICAgICB0aW1pbmcuc2Vj
dXJlQ29ubmVjdGlvblN0YXJ0ID0gc2VjdXJlQ29ubmVjdGlvblN0YXJ0IDw9IDAgPyAtMSA6IChz
ZWN1cmVDb25uZWN0aW9uU3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOwotICAgICAgICB0
aW1pbmcuY29ubmVjdEVuZCA9IGNvbm5lY3RFbmQgPD0gMCA/IC0xIDogKGNvbm5lY3RFbmQgLSBy
ZWZlcmVuY2VTdGFydCkgKiAxMDAwOwotICAgICAgICB0aW1pbmcucmVxdWVzdFN0YXJ0ID0gcmVx
dWVzdFN0YXJ0IDw9IDAgPyAtMSA6IChyZXF1ZXN0U3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAx
MDAwOwotICAgICAgICB0aW1pbmcucmVzcG9uc2VTdGFydCA9IHJlc3BvbnNlU3RhcnQgPD0gMCA/
IC0xIDogKHJlc3BvbnNlU3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOwotICAgIH0KLSNl
bHNlCi0gICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOwotICAgIFVOVVNFRF9QQVJBTSh0aW1p
bmcpOwotI2VuZGlmCi19Ci0gICAgCiBib29sIFJlc291cmNlSGFuZGxlOjpsb2Fkc0Jsb2NrZWQo
KQogewogICAgIHJldHVybiBmYWxzZTsKQEAgLTczNSw4ICs3MDUsNTggQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6Y29udGludWVXaWxsQ2FjaGVSZQogCiAgICAgWyhpZClkZWxlZ2F0ZSgpIGNvbnRp
bnVlV2lsbENhY2hlUmVzcG9uc2U6cmVzcG9uc2VdOwogfQotCisgICAgCisjZW5kaWYgLy8gIVVT
RShDRk5FVFdPUkspCisgICAgCisjaWYgRU5BQkxFKFdFQl9USU1JTkcpCisgICAgCit2b2lkIFJl
c291cmNlSGFuZGxlOjpnZXRDb25uZWN0aW9uVGltaW5nRGF0YShOU0RpY3Rpb25hcnkgKnRpbWlu
Z0RhdGEsIFJlc291cmNlTG9hZFRpbWluZyYgdGltaW5nKQoreworICAgIGlmICh0aW1pbmdEYXRh
KSB7CisgICAgICAgIC8vIFRoaXMgaXMgbm90IHRoZSBuYXZpZ2F0aW9uU3RhcnQgdGltZSBpbiBt
b25vdG9uaWMgdGltZSwgYnV0IHRoZSBvdGhlciB0aW1lcyBhcmUgcmVsYXRpdmUgdG8gdGhpcyB0
aW1lCisgICAgICAgIC8vIGFuZCBvbmx5IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRpbWVzIGFy
ZSBzdG9yZWQuCisgICAgICAgIGRvdWJsZSByZWZlcmVuY2VTdGFydCA9IFtbdGltaW5nRGF0YSB2
YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YVRpbWluZ0RhdGFJbml0Il0gZG91YmxlVmFsdWVd
OworICAgICAgICAgICAgCisgICAgICAgIGRvdWJsZSBkb21haW5Mb29rdXBTdGFydCA9IFtbdGlt
aW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YURvbWFpbkxvb2t1cFN0YXJ0Il0g
ZG91YmxlVmFsdWVdOworICAgICAgICBkb3VibGUgZG9tYWluTG9va3VwRW5kID0gW1t0aW1pbmdE
YXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhRG9tYWluTG9va3VwRW5kIl0gZG91Ymxl
VmFsdWVdOworICAgICAgICBkb3VibGUgY29ubmVjdFN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVl
Rm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhQ29ubmVjdFN0YXJ0Il0gZG91YmxlVmFsdWVdOworICAg
ICAgICBkb3VibGUgc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9y
S2V5OkAiX2tDRk5UaW1pbmdEYXRhU2VjdXJlQ29ubmVjdGlvblN0YXJ0Il0gZG91YmxlVmFsdWVd
OworICAgICAgICBkb3VibGUgY29ubmVjdEVuZCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpA
Il9rQ0ZOVGltaW5nRGF0YUNvbm5lY3RFbmQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgIGRvdWJs
ZSByZXF1ZXN0U3RhcnQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0Rh
dGFSZXF1ZXN0U3RhcnQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgIGRvdWJsZSByZXNwb25zZVN0
YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhUmVzcG9uc2VT
dGFydCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAgICAgIAorICAgICAgICB0aW1pbmcuZG9tYWlu
TG9va3VwU3RhcnQgPSBkb21haW5Mb29rdXBTdGFydCA8PSAwID8gLTEgOiAoZG9tYWluTG9va3Vw
U3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICB0aW1pbmcuZG9tYWluTG9v
a3VwRW5kID0gZG9tYWluTG9va3VwRW5kIDw9IDAgPyAtMSA6IChkb21haW5Mb29rdXBFbmQgLSBy
ZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICB0aW1pbmcuY29ubmVjdFN0YXJ0ID0gY29u
bmVjdFN0YXJ0IDw9IDAgPyAtMSA6IChjb25uZWN0U3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAx
MDAwOworICAgICAgICB0aW1pbmcuc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gc2VjdXJlQ29ubmVj
dGlvblN0YXJ0IDw9IDAgPyAtMSA6IChzZWN1cmVDb25uZWN0aW9uU3RhcnQgLSByZWZlcmVuY2VT
dGFydCkgKiAxMDAwOworICAgICAgICB0aW1pbmcuY29ubmVjdEVuZCA9IGNvbm5lY3RFbmQgPD0g
MCA/IC0xIDogKGNvbm5lY3RFbmQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICB0
aW1pbmcucmVxdWVzdFN0YXJ0ID0gcmVxdWVzdFN0YXJ0IDw9IDAgPyAtMSA6IChyZXF1ZXN0U3Rh
cnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICB0aW1pbmcucmVzcG9uc2VTdGFy
dCA9IHJlc3BvbnNlU3RhcnQgPD0gMCA/IC0xIDogKHJlc3BvbnNlU3RhcnQgLSByZWZlcmVuY2VT
dGFydCkgKiAxMDAwOworICAgIH0KK30KKyAgICAKKyNpZiBVU0UoQ0ZORVRXT1JLKQorICAgIAor
dm9pZCBSZXNvdXJjZUhhbmRsZTo6c2V0Q29sbGVjdHNUaW1pbmdEYXRhKCkKK3sKKyAgICBbTlNV
UkxDb25uZWN0aW9uIF9zZXRDb2xsZWN0c1RpbWluZ0RhdGE6WUVTXTsKK30KKyAgICAKK3ZvaWQg
UmVzb3VyY2VIYW5kbGU6OmdldENvbm5lY3Rpb25UaW1pbmdEYXRhKENGVVJMQ29ubmVjdGlvblJl
ZiBjb25uZWN0aW9uLCBSZXNvdXJjZUxvYWRUaW1pbmcmIHRpbWluZykKK3sKKyAgICBnZXRDb25u
ZWN0aW9uVGltaW5nRGF0YSgoX19icmlkZ2UgTlNEaWN0aW9uYXJ5KikoYWRvcHRDRihfQ0ZVUkxD
b25uZWN0aW9uQ29weVRpbWluZ0RhdGEoY29ubmVjdGlvbikpLmdldCgpKSwgdGltaW5nKTsKK30K
KyAgICAKKyNlbHNlCisgICAgCit2b2lkIFJlc291cmNlSGFuZGxlOjpnZXRDb25uZWN0aW9uVGlt
aW5nRGF0YShOU1VSTENvbm5lY3Rpb24gKmNvbm5lY3Rpb24sIFJlc291cmNlTG9hZFRpbWluZyYg
dGltaW5nKQoreworICAgIGdldENvbm5lY3Rpb25UaW1pbmdEYXRhKFtjb25uZWN0aW9uIF90aW1p
bmdEYXRhXSwgdGltaW5nKTsKK30KKyAgICAKKyNlbmRpZgorICAgIAorI2VuZGlmIC8vIEVOQUJM
RShXRUJfVElNSU5HKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyAhVVNF
KENGTkVUV09SSykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dl
YkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0
ZS5tbQkocmV2aXNpb24gMTY4OTcwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5KQpA
QCAtMTcyLDcgKzE3Miw3IEBAIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICop
Y28KICAgICAKICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc291cmNlUmVzcG9uc2Uocik7CiAjaWYg
RU5BQkxFKFdFQl9USU1JTkcpCi0gICAgUmVzb3VyY2VIYW5kbGU6OmdldFRpbWluZ0RhdGEoY29u
bmVjdGlvbiwgcmVzb3VyY2VSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSk7CisgICAgUmVz
b3VyY2VIYW5kbGU6OmdldENvbm5lY3Rpb25UaW1pbmdEYXRhKGNvbm5lY3Rpb24sIHJlc291cmNl
UmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
Y29ubmVjdGlvbik7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3Jl
UmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0JKHJldmlzaW9uIDE2ODk3
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJj
ZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjE0
LDcgKzIxNCw3IEBAIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY28KICAg
ICAgICAgCiAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVzb3VyY2VSZXNwb25zZShyKTsKICNp
ZiBFTkFCTEUoV0VCX1RJTUlORykKLSAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmdldFRpbWluZ0Rh
dGEoY29ubmVjdGlvbiwgcmVzb3VyY2VSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSk7Cisg
ICAgICAgIFJlc291cmNlSGFuZGxlOjpnZXRDb25uZWN0aW9uVGltaW5nRGF0YShjb25uZWN0aW9u
LCByZXNvdXJjZVJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKTsKICNlbHNlCiAgICAgICAg
IFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKICNlbmRpZgo=
</data>
<flag name="review"
          id="256160"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>