<?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>99447</bug_id>
          
          <creation_ts>2012-10-16 03:32:55 -0700</creation_ts>
          <short_desc>[GTK] Guard GTK specific members in GeolocationProviderGeoclue class for the common use.</short_desc>
          <delta_ts>2026-03-26 08:51:45 -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>WONTFIX</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>99444</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Byungwoo Lee">bw80.lee</reporter>
          <assigned_to name="Byungwoo Lee">bw80.lee</assigned_to>
          <cc>alex</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>d-r</cc>
    
    <cc>gustavo</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>mrobinson</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>743032</commentid>
    <comment_count>0</comment_count>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-10-16 03:32:55 -0700</bug_when>
    <thetext>Currently, GeolocationProviderGeoclue class implemented with gtk-oriented features.

But Geoclue provides dbus API, so some other port can also implement the class.

For the common use, it is better to hide GTK-oriented implementations in the class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767749</commentid>
    <comment_count>1</comment_count>
      <attachid>174355</attachid>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-11-14 22:55:04 -0800</bug_when>
    <thetext>Created attachment 174355
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767796</commentid>
    <comment_count>2</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-11-15 00:42:48 -0800</bug_when>
    <thetext>Would it make sense to generalize the implementation altogether, just use dbus, and remove the GTK/glib-wrapped implementation? (CC&apos;ed some GTK people.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767797</commentid>
    <comment_count>3</comment_count>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-11-15 00:51:52 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Would it make sense to generalize the implementation altogether, just use dbus, and remove the GTK/glib-wrapped implementation? (CC&apos;ed some GTK people.)

As my understanding, GeoClue already provides GTK API, and it uses GDBus.
If some more generalization is needed, wrapper for the GTK geoclue objects(e.g. GeoclueMaster, GeoclueClient, GeocluePosition etc) seems to be needed.

Is there anyone who can give the clear point about this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767802</commentid>
    <comment_count>4</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-11-15 00:59:49 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; Would it make sense to generalize the implementation altogether, just use dbus, and remove the GTK/glib-wrapped implementation? (CC&apos;ed some GTK people.)
&gt; 
&gt; As my understanding, GeoClue already provides GTK API, and it uses GDBus.
&gt; If some more generalization is needed, wrapper for the GTK geoclue objects(e.g. GeoclueMaster, GeoclueClient, GeocluePosition etc) seems to be needed.
&gt; 
&gt; Is there anyone who can give the clear point about this?

I assumed you were planning to upstream/implement a generalized implementation based directly on DBus, not on the GTK API. Is that what you were planning to do?

If so, then we could perhaps phase-out the GTK specific implementation at some point. That was my suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767808</commentid>
    <comment_count>5</comment_count>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-11-15 01:13:19 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; Would it make sense to generalize the implementation altogether, just use dbus, and remove the GTK/glib-wrapped implementation? (CC&apos;ed some GTK people.)
&gt; &gt; 
&gt; &gt; As my understanding, GeoClue already provides GTK API, and it uses GDBus.
&gt; &gt; If some more generalization is needed, wrapper for the GTK geoclue objects(e.g. GeoclueMaster, GeoclueClient, GeocluePosition etc) seems to be needed.
&gt; &gt; 
&gt; &gt; Is there anyone who can give the clear point about this?
&gt; 
&gt; I assumed you were planning to upstream/implement a generalized implementation based directly on DBus, not on the GTK API. Is that what you were planning to do?
Yes, sure!

&gt; 
&gt; If so, then we could perhaps phase-out the GTK specific implementation at some point. That was my suggestion.
Yes I understood.
As you already know, e_dbus doesn&apos;t provide geoclue feature yet.

So I planned to support geolocation feature as below.
1. make some e_dbus wrapper to use e_dbus.
2. make geoclue object (GeoclueMaster...) with the e_dbus wrapper.
3. implement GeolocationProviderGeoclue class with the geoclue object.

I think you mentioned about the #2. (is it?)

If it is acceptable on GTK side, I also think your suggestion is better :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767826</commentid>
    <comment_count>6</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-11-15 01:52:29 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; 
&gt; &gt; If so, then we could perhaps phase-out the GTK specific implementation at some point. That was my suggestion.
&gt; Yes I understood.
&gt; As you already know, e_dbus doesn&apos;t provide geoclue feature yet.
&gt; 
&gt; So I planned to support geolocation feature as below.
&gt; 1. make some e_dbus wrapper to use e_dbus.
&gt; 2. make geoclue object (GeoclueMaster...) with the e_dbus wrapper.
&gt; 3. implement GeolocationProviderGeoclue class with the geoclue object.
&gt; 
&gt; I think you mentioned about the #2. (is it?)

Well, I actually mean: If you use e_dbus and gtk is using gtk-dbus - wouldn&apos;t it make sense to just use dbus without any framework specific wrappers and share the implementation? What do you think?

Otherwise, yes, at least the WebKit-side GoeClue objects should be shared and based on the respective e_dbus or gtk-dbus wrappers.

&gt; If it is acceptable on GTK side, I also think your suggestion is better :)

Any opinions on this from the GTK side?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768095</commentid>
    <comment_count>7</comment_count>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-11-15 08:22:00 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Well, I actually mean: If you use e_dbus and gtk is using gtk-dbus - wouldn&apos;t it make sense to just use dbus without any framework specific wrappers and share the implementation? What do you think?

I&apos;m not sure that this need to be re-implemented on GTK side, because geoclue already provide GTK wrapper.
I&apos;m not a GTK port developer, so I need some opinion of GTK developers about this :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768121</commentid>
    <comment_count>8</comment_count>
      <attachid>174355</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-11-15 08:43:26 -0800</bug_when>
    <thetext>Comment on attachment 174355
Patch

I&apos;m not sure this patch makes sense. GeolocationProviderGeoclue is a geoclue implementation of a geolocation provider. Geoclue is a library that depends on using GLib. There&apos;s nothing specific to GTK+ in this file that I can see. If you want to make a geolocation provider that doesn&apos;t use Geoclue (and by exetension GLib), then you should make an entirely new provider.

I&apos;m also curious about the direction this is moving. Is the EFL port trying to remove all GLib dependencies? That would require switching to the cURL networking back-end, for instance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768179</commentid>
    <comment_count>9</comment_count>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-11-15 09:34:13 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 174355 [details])
&gt; I&apos;m not sure this patch makes sense. GeolocationProviderGeoclue is a geoclue implementation of a geolocation provider. Geoclue is a library that depends on using GLib. There&apos;s nothing specific to GTK+ in this file that I can see. If you want to make a geolocation provider that doesn&apos;t use Geoclue (and by exetension GLib), then you should make an entirely new provider.

Ok, the comment makes some confusion. &apos;to remove glib dependency&apos; is the purpose of this patch.
geoclue also provides the DBus API, and EFL have e_dbus module.
So EFL seems to be able to use geoclue without glib dependency.

&gt; 
&gt; I&apos;m also curious about the direction this is moving. Is the EFL port trying to remove all GLib dependencies? That would require switching to the cURL networking back-end, for instance.

As my understanding, &apos;do not make glib dependency if possible&apos; is the EFL guide. And I heard that there was a discussion about using geoclue glib library, and the conclusion was not using the glib library because geoclue has DBus API.

Please let me know if I have some misunderstanding.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768187</commentid>
    <comment_count>10</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-11-15 09:41:14 -0800</bug_when>
    <thetext>(In reply to comment #9)

&gt; As my understanding, &apos;do not make glib dependency if possible&apos; is the EFL guide. And I heard that there was a discussion about using geoclue glib library, and the conclusion was not using the glib library because geoclue has DBus API.
&gt; 
&gt; Please let me know if I have some misunderstanding.


For me, the stability of the C API is more reassuring than that of the DBus API. I&apos;d rather have this code in another file.

I&apos;m still curious what your plans with libsoup are. Are you going to switch to the cURL backend?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768217</commentid>
    <comment_count>11</comment_count>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-11-15 10:03:39 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; For me, the stability of the C API is more reassuring than that of the DBus API. I&apos;d rather have this code in another file.

Yes C API looks more popular than dbus API. (Actually it is very hard to find the document or reference for the dbus API)
Do you think using current class is better if EFL want to use geoclue?
How about your opinion dominik and other EFL guys?

&gt; 
&gt; I&apos;m still curious what your plans with libsoup are. Are you going to switch to the cURL backend?

I don&apos;t have any plan about libsoup now. Is it weird to you that trying not to use geoclue glib API but still using libsoup?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768242</commentid>
    <comment_count>12</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-11-15 10:16:54 -0800</bug_when>
    <thetext>(In reply to comment #11)

&gt; I don&apos;t have any plan about libsoup now. Is it weird to you that trying not to use geoclue glib API but still using libsoup?

Indeed, if you plan to eliminate dependencies on GLib you have a lot of work to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768641</commentid>
    <comment_count>13</comment_count>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-11-15 16:24:59 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Indeed, if you plan to eliminate dependencies on GLib you have a lot of work to do.

For the clarification, I haven&apos;t consider about &apos;removing entire GLib dependency from EFL port&apos; in this patch.
As you said, &apos;removing all GLib dependancy from EFL port&apos; is very big thing.
Sorry for the confusion if you got such point from my comment :)
(I just planned to use geoclue without glib dependency on EFL port.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2193950</commentid>
    <comment_count>14</comment_count>
    <who name="Marcos Caceres">marcosc</who>
    <bug_when>2026-03-26 08:50:43 -0700</bug_when>
    <thetext>Closing as WONTFIX. This bug requested cleanup of GeolocationProviderGeoclue for the EFL port. The EFL port was subsequently removed from WebKit entirely, making this work moot. No further action needed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174355</attachid>
            <date>2012-11-14 22:55:04 -0800</date>
            <delta_ts>2012-11-15 08:43:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99447-20121115155303.patch</filename>
            <type>text/plain</type>
            <size>19377</size>
            <attacher name="Byungwoo Lee">bw80.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWM0NTU1MTg4NWIxZTk1
ZGQ0YTQ1NDA2YjY4ZjYyMzcwZTIzNzQ2Mi4uMjNlZWNlMGVjYTkwNGNlZmIzNDA5OGJlZGE2YmNk
OGQxMjM0MTdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTExLTE0ICBCeXVu
Z3dvbyBMZWUgIDxidzgwLmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbR1RLXSBHdWFyZCBH
VEsgc3BlY2lmaWMgbWVtYmVycyBvZiBHZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1ZSBmb3IgdGhl
IGNvbW1vbiB1c2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05OTQ0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZvciB0aGUgY29tbW9uIHVzZSwgc29tZSBHVEsgcG9ydCBzcGVjaWZpYyBtZW1iZXJzIGlu
IHRoZQorICAgICAgICBHZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1ZSBjbGFzcyBhcmUgZ3VhcmRl
ZCB3aXRoIHRoZSBtYWNybyBQTEFURk9STShHVEspLgorICAgICAgICBBbmQgdGhlIEdlb2xvY2F0
aW9uUHJvdmlkZXJHZW9jbHVlLmNwcCBpcyBtb3ZlZCB0byB0aGUKKyAgICAgICAgV2ViQ29yZS9w
bGF0Zm9ybS9nZW9jbHVlL2d0ay9HZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1ZUd0ay5jcHAKKwor
ICAgICAgICBDdXJyZW50IEdlb2xvY2F0aW9uUHJvdmlkZXJHZW9jbHVlIGNsYXNzIGlzIGltcGxl
bWVudGVkIG9ubHkgZm9yIHRoZQorICAgICAgICBHVEsgcG9ydC4gKEl0IHVzZXMgZ29iamVjdCBh
bmQgZ2VvY2x1ZSBnbGliIGFwaSBhbmQgb3RoZXIgZmVhdHVyZXMKKyAgICAgICAgZm9yIFdlYktp
dCBHVEsgcG9ydCBsaWtlIEdSZWZQdHIpCisKKyAgICAgICAgQnV0IGdlb2NsdWUgaXRzZWxmIHBy
b3ZpZGVzIERCdXMgQVBJLCBzbyBvdGhlciBwb3J0IGFsc28gY2FuIHVzZQorICAgICAgICBnZW9j
bHVlIGZ1bmN0aW9uYWxpdHkgZm9yIGdlb2xvY2F0aW9uIHByb3ZpZGVyLgorCisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBwbGF0Zm9ybS9nZW9jbHVlL0dlb2xvY2F0
aW9uUHJvdmlkZXJHZW9jbHVlLmg6CisgICAgICAgIChHZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ2VvY2x1ZS9ndGsvR2VvbG9jYXRpb25Qcm92aWRlckdl
b2NsdWVHdGsuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VvY2x1
ZS9HZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1ZS5jcHAuCisgICAgICAgIChnZXRQb3NpdGlvbkNh
bGxiYWNrKToKKyAgICAgICAgKHBvc2l0aW9uQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKGNy
ZWF0ZUdlb2NsdWVQb3NpdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKGdlb2NsdWVDbGllbnRTZXRS
ZXF1aXJlbWVudHNDYWxsYmFjayk6CisgICAgICAgIChjcmVhdGVHZW9jbHVlQ2xpZW50Q2FsbGJh
Y2spOgorICAgICAgICAoR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWU6Okdlb2xvY2F0aW9uUHJv
dmlkZXJHZW9jbHVlKToKKyAgICAgICAgKEdlb2xvY2F0aW9uUHJvdmlkZXJHZW9jbHVlOjp+R2Vv
bG9jYXRpb25Qcm92aWRlckdlb2NsdWUpOgorICAgICAgICAoR2VvbG9jYXRpb25Qcm92aWRlckdl
b2NsdWU6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoR2VvbG9jYXRpb25Qcm92aWRlckdlb2Ns
dWU6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChHZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1ZTo6
c2V0RW5hYmxlSGlnaEFjY3VyYWN5KToKKyAgICAgICAgKEdlb2xvY2F0aW9uUHJvdmlkZXJHZW9j
bHVlOjppbml0aWFsaXplR2VvY2x1ZUNsaWVudCk6CisgICAgICAgIChHZW9sb2NhdGlvblByb3Zp
ZGVyR2VvY2x1ZTo6aW5pdGlhbGl6ZUdlb2NsdWVQb3NpdGlvbik6CisgICAgICAgIChHZW9sb2Nh
dGlvblByb3ZpZGVyR2VvY2x1ZTo6dXBkYXRlQ2xpZW50UmVxdWlyZW1lbnRzKToKKyAgICAgICAg
KEdlb2xvY2F0aW9uUHJvdmlkZXJHZW9jbHVlOjpwb3NpdGlvbkNoYW5nZWQpOgorICAgICAgICAo
R2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWU6OmVycm9yT2NjdXJyZWQpOgorCiAyMDEyLTExLTE0
ICBEaXJrIFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgU3VwcG9ydCBhbmlt
YXRpb24gb2YgYmFzaWMgc2hhcGUgJ3BvbHlnb24nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCA1YmYxZjIxYzY5MTY5NWZjYmU2MmE0MzI1MjEzY2NjNGQ0M2Y4MmIyLi5kNGQ4MDA0
ZmE4MWRlYjEzMjVkZjE3NGY3NTc2NGNmMzkyYWRhNzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KQEAgLTU5MjQsOCArNTkyNCw4IEBAIHdlYmNvcmVndGtfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3RrL0F1ZGlvQnVzR3RrLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dlb2NsdWUvR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWUuaCBc
Ci0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VvY2x1ZS9HZW9sb2NhdGlvblByb3ZpZGVyR2Vv
Y2x1ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlb2NsdWUvR2VvbG9jYXRpb25Q
cm92aWRlckdlb2NsdWVDbGllbnQuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VvY2x1
ZS9ndGsvR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWVHdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dFBsYXRm
b3JtUHJpdmF0ZUNhaXJvLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9HU3RyZWFtZXJHV29ybGQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dlb2NsdWUvR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2VvY2x1ZS9HZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1ZS5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1Mzc2MDQ5MDNjYjQ2NDBiNTk1NGJiYjk1
MDQ2M2FkMWJkNGRhZmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VvY2x1ZS9HZW9sb2NhdGlvblByb3ZpZGVy
R2VvY2x1ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxODEgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWUuaCIKLQotI2lmIEVOQUJMRShH
RU9MT0NBVElPTikKLQotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KLQotdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7Ci0KLXN0YXRpYyB2b2lkIGdldFBvc2l0aW9uQ2FsbGJhY2soR2Vv
Y2x1ZVBvc2l0aW9uKiBwb3NpdGlvbiwgR2VvY2x1ZVBvc2l0aW9uRmllbGRzIGZpZWxkcywgaW50
IHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWx0
aXR1ZGUsIEdlb2NsdWVBY2N1cmFjeSogYWNjdXJhY3ksIEdFcnJvciogZXJyb3IsIEdlb2xvY2F0
aW9uUHJvdmlkZXJHZW9jbHVlKiBwcm92aWRlcikKLXsKLSAgICBpZiAoZXJyb3IpIHsKLSAgICAg
ICAgcHJvdmlkZXItPmVycm9yT2NjdXJyZWQoZXJyb3ItPm1lc3NhZ2UpOwotICAgICAgICBnX2Vy
cm9yX2ZyZWUoZXJyb3IpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIHByb3ZpZGVyLT5w
b3NpdGlvbkNoYW5nZWQocG9zaXRpb24sIGZpZWxkcywgdGltZXN0YW1wLCBsYXRpdHVkZSwgbG9u
Z2l0dWRlLCBhbHRpdHVkZSwgYWNjdXJhY3kpOwotfQotCi1zdGF0aWMgdm9pZCBwb3NpdGlvbkNo
YW5nZWRDYWxsYmFjayhHZW9jbHVlUG9zaXRpb24qIHBvc2l0aW9uLCBHZW9jbHVlUG9zaXRpb25G
aWVsZHMgZmllbGRzLCBpbnQgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25n
aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgR2VvY2x1ZUFjY3VyYWN5KiBhY2N1cmFjeSwgR2VvbG9j
YXRpb25Qcm92aWRlckdlb2NsdWUqIHByb3ZpZGVyKQotewotICAgIHByb3ZpZGVyLT5wb3NpdGlv
bkNoYW5nZWQocG9zaXRpb24sIGZpZWxkcywgdGltZXN0YW1wLCBsYXRpdHVkZSwgbG9uZ2l0dWRl
LCBhbHRpdHVkZSwgYWNjdXJhY3kpOwotfQotCi1zdGF0aWMgdm9pZCBjcmVhdGVHZW9jbHVlUG9z
aXRpb25DYWxsYmFjayhHZW9jbHVlTWFzdGVyQ2xpZW50KiwgR2VvY2x1ZVBvc2l0aW9uKiBwb3Np
dGlvbiwgR0Vycm9yICplcnJvciwgR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWUqIHByb3ZpZGVy
KQotewotICAgIGlmIChlcnJvcikgewotICAgICAgICBwcm92aWRlci0+ZXJyb3JPY2N1cnJlZChl
cnJvci0+bWVzc2FnZSk7Ci0gICAgICAgIGdfZXJyb3JfZnJlZShlcnJvcik7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0gICAgcHJvdmlkZXItPmluaXRpYWxpemVHZW9jbHVlUG9zaXRpb24ocG9z
aXRpb24pOwotfQotCi1zdGF0aWMgdm9pZCBnZW9jbHVlQ2xpZW50U2V0UmVxdWlyZW1lbnRzQ2Fs
bGJhY2soR2VvY2x1ZU1hc3RlckNsaWVudCogY2xpZW50LCBHRXJyb3IqIGVycm9yLCBHZW9sb2Nh
dGlvblByb3ZpZGVyR2VvY2x1ZSogcHJvdmlkZXIpCi17Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAg
ICAgIHByb3ZpZGVyLT5lcnJvck9jY3VycmVkKGVycm9yLT5tZXNzYWdlKTsKLSAgICAgICAgZ19l
cnJvcl9mcmVlKGVycm9yKTsKLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIGNyZWF0ZUdlb2NsdWVD
bGllbnRDYWxsYmFjayhHZW9jbHVlTWFzdGVyKiwgR2VvY2x1ZU1hc3RlckNsaWVudCogY2xpZW50
LCBjaGFyKiwgR0Vycm9yKiBlcnJvciwgR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWUqIHByb3Zp
ZGVyKQotewotICAgIGlmIChlcnJvcikgewotICAgICAgICBwcm92aWRlci0+ZXJyb3JPY2N1cnJl
ZChlcnJvci0+bWVzc2FnZSk7Ci0gICAgICAgIGdfZXJyb3JfZnJlZShlcnJvcik7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0gICAgcHJvdmlkZXItPmluaXRpYWxpemVHZW9jbHVlQ2xpZW50KGNs
aWVudCk7Ci19Ci0KLUdlb2xvY2F0aW9uUHJvdmlkZXJHZW9jbHVlOjpHZW9sb2NhdGlvblByb3Zp
ZGVyR2VvY2x1ZShHZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1ZUNsaWVudCogY2xpZW50KQotICAg
IDogbV9jbGllbnQoY2xpZW50KQotICAgICwgbV9nZW9jbHVlQ2xpZW50KDApCi0gICAgLCBtX2dl
b2NsdWVQb3NpdGlvbigwKQotICAgICwgbV9sYXRpdHVkZSgwKQotICAgICwgbV9sb25naXR1ZGUo
MCkKLSAgICAsIG1fYWx0aXR1ZGUoMCkKLSAgICAsIG1fYWNjdXJhY3koMCkKLSAgICAsIG1fYWx0
aXR1ZGVBY2N1cmFjeSgwKQotICAgICwgbV90aW1lc3RhbXAoMCkKLSAgICAsIG1fZW5hYmxlSGln
aEFjY3VyYWN5KGZhbHNlKQotICAgICwgbV9pc1VwZGF0aW5nKGZhbHNlKQotewotICAgIEFTU0VS
VChtX2NsaWVudCk7Ci19Ci0KLUdlb2xvY2F0aW9uUHJvdmlkZXJHZW9jbHVlOjp+R2VvbG9jYXRp
b25Qcm92aWRlckdlb2NsdWUoKQotewotfQotCi12b2lkIEdlb2xvY2F0aW9uUHJvdmlkZXJHZW9j
bHVlOjpzdGFydFVwZGF0aW5nKCkKLXsKLSAgICBBU1NFUlQoIW1fZ2VvY2x1ZUNsaWVudCk7Ci0K
LSAgICBHUmVmUHRyPEdlb2NsdWVNYXN0ZXI+IG1hc3RlciA9IGFkb3B0R1JlZihnZW9jbHVlX21h
c3Rlcl9nZXRfZGVmYXVsdCgpKTsKLSAgICBnZW9jbHVlX21hc3Rlcl9jcmVhdGVfY2xpZW50X2Fz
eW5jKG1hc3Rlci5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHZW9jbHVlQ3JlYXRlQ2xpZW50Q2Fs
bGJhY2s+KGNyZWF0ZUdlb2NsdWVDbGllbnRDYWxsYmFjayksIHRoaXMpOwotICAgIG1faXNVcGRh
dGluZyA9IHRydWU7Ci19Ci0KLXZvaWQgR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWU6OnN0b3BV
cGRhdGluZygpCi17Ci0gICAgbV9nZW9jbHVlUG9zaXRpb24uY2xlYXIoKTsKLSAgICBtX2dlb2Ns
dWVDbGllbnQuY2xlYXIoKTsKLSAgICBtX2lzVXBkYXRpbmcgPSBmYWxzZTsKLX0KLQotdm9pZCBH
ZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1ZTo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wgZW5h
YmxlKQotewotICAgIG1fZW5hYmxlSGlnaEFjY3VyYWN5ID0gZW5hYmxlOwotCi0gICAgLy8gSWYg
d2UncmUgYWxyZWFkeSB1cGRhdGluZyB3ZSBzaG91bGQgcmVwb3J0IHRoZSBuZXcgcmVxdWlyZW1l
bnRzIGluIG9yZGVyCi0gICAgLy8gdG8gY2hhbmdlIHRvIGEgbW9yZSBzdWl0YWJsZSBwcm92aWRl
ciBpZiBuZWVkZWQuIElmIG5vdCwgcmV0dXJuLgotICAgIGlmICghbV9pc1VwZGF0aW5nKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICB1cGRhdGVDbGllbnRSZXF1aXJlbWVudHMoKTsKLX0KLQotdm9p
ZCBHZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1ZTo6aW5pdGlhbGl6ZUdlb2NsdWVDbGllbnQoR2Vv
Y2x1ZU1hc3RlckNsaWVudCogZ2VvY2x1ZUNsaWVudCkKLXsKLSAgICBBU1NFUlQoR0VPQ0xVRV9J
U19NQVNURVJfQ0xJRU5UKGdlb2NsdWVDbGllbnQpKTsKLQotICAgIC8vIFN0b3JlIHRoZSBHZW9j
bHVlTWFzdGVyQ2xpZW50IG9iamVjdCBhcyBjcmVhdGVkIGJ5IEdlb0NsdWUuCi0gICAgbV9nZW9j
bHVlQ2xpZW50ID0gYWRvcHRHUmVmKGdlb2NsdWVDbGllbnQpOwotCi0gICAgLy8gU2V0IHRoZSBy
ZXF1aXJlbWVudCBmb3IgdGhlIGNsaWVudCBhbmQgYXNrIGl0IHRvIGNyZWF0ZSBhIHBvc2l0aW9u
IGFzc29jaWF0ZWQgdG8gaXQuCi0gICAgdXBkYXRlQ2xpZW50UmVxdWlyZW1lbnRzKCk7Ci0gICAg
Z2VvY2x1ZV9tYXN0ZXJfY2xpZW50X2NyZWF0ZV9wb3NpdGlvbl9hc3luYyhtX2dlb2NsdWVDbGll
bnQuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Q3JlYXRlUG9zaXRpb25DYWxsYmFjaz4oY3JlYXRl
R2VvY2x1ZVBvc2l0aW9uQ2FsbGJhY2spLCB0aGlzKTsKLX0KLQotdm9pZCBHZW9sb2NhdGlvblBy
b3ZpZGVyR2VvY2x1ZTo6aW5pdGlhbGl6ZUdlb2NsdWVQb3NpdGlvbihHZW9jbHVlUG9zaXRpb24q
IGdlb2NsdWVQb3NpdGlvbikKLXsKLSAgICBBU1NFUlQoR0VPQ0xVRV9JU19QT1NJVElPTihnZW9j
bHVlUG9zaXRpb24pKTsKLQotICAgIC8vIFN0b3JlcyB0aGUgR2VvY2x1ZVBvc2l0aW9uIG9iamVj
dCBhc3NvY2lhdGVkIHdpdGggdGhlIEdlb2NsdWVNYXN0ZXJDbGllbnQuCi0gICAgbV9nZW9jbHVl
UG9zaXRpb24gPSBhZG9wdEdSZWYoZ2VvY2x1ZVBvc2l0aW9uKTsKLQotICAgIC8vIEdldCB0aGUg
aW5pdGlhbCBwb3NpdGlvbiBhbmQga2VlcCB1cGRhdGVkIG9mIGZ1cnRoZXIgY2hhbmdlcy4KLSAg
ICBnZW9jbHVlX3Bvc2l0aW9uX2dldF9wb3NpdGlvbl9hc3luYyhtX2dlb2NsdWVQb3NpdGlvbi5n
ZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHZW9jbHVlUG9zaXRpb25DYWxsYmFjaz4oZ2V0UG9zaXRp
b25DYWxsYmFjayksIHRoaXMpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9nZW9jbHVlUG9zaXRp
b24uZ2V0KCksICJwb3NpdGlvbi1jaGFuZ2VkIiwgR19DQUxMQkFDSyhwb3NpdGlvbkNoYW5nZWRD
YWxsYmFjayksIHRoaXMpOwotfQotCi12b2lkIEdlb2xvY2F0aW9uUHJvdmlkZXJHZW9jbHVlOjp1
cGRhdGVDbGllbnRSZXF1aXJlbWVudHMoKQotewotICAgIGlmICghbV9nZW9jbHVlQ2xpZW50KQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBHZW9jbHVlQWNjdXJhY3lMZXZlbCBhY2N1cmFjeUxldmVs
ID0gbV9lbmFibGVIaWdoQWNjdXJhY3kgPyBHRU9DTFVFX0FDQ1VSQUNZX0xFVkVMX0RFVEFJTEVE
IDogR0VPQ0xVRV9BQ0NVUkFDWV9MRVZFTF9MT0NBTElUWTsKLSAgICBnZW9jbHVlX21hc3Rlcl9j
bGllbnRfc2V0X3JlcXVpcmVtZW50c19hc3luYyhtX2dlb2NsdWVDbGllbnQuZ2V0KCksIGFjY3Vy
YWN5TGV2ZWwsIDAsIGZhbHNlLCBHRU9DTFVFX1JFU09VUkNFX0FMTCwgcmVpbnRlcnByZXRfY2Fz
dDxHZW9jbHVlU2V0UmVxdWlyZW1lbnRzQ2FsbGJhY2s+KGdlb2NsdWVDbGllbnRTZXRSZXF1aXJl
bWVudHNDYWxsYmFjayksIHRoaXMpOwotfQotCi12b2lkIEdlb2xvY2F0aW9uUHJvdmlkZXJHZW9j
bHVlOjpwb3NpdGlvbkNoYW5nZWQoR2VvY2x1ZVBvc2l0aW9uKiBwb3NpdGlvbiwgR2VvY2x1ZVBv
c2l0aW9uRmllbGRzIGZpZWxkcywgaW50IHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3Vi
bGUgbG9uZ2l0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIEdlb2NsdWVBY2N1cmFjeSogYWNjdXJhY3kp
Ci17Ci0gICAgaWYgKCEoZmllbGRzICYgR0VPQ0xVRV9QT1NJVElPTl9GSUVMRFNfTEFUSVRVREUg
JiYgZmllbGRzICYgR0VPQ0xVRV9QT1NJVElPTl9GSUVMRFNfTE9OR0lUVURFKSkgewotICAgICAg
ICBlcnJvck9jY3VycmVkKCJQb3NpdGlvbiBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4iKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1fdGltZXN0YW1wID0gdGltZXN0YW1wOwotICAg
IG1fbGF0aXR1ZGUgPSBsYXRpdHVkZTsKLSAgICBtX2xvbmdpdHVkZSA9IGxvbmdpdHVkZTsKLSAg
ICBtX2FsdGl0dWRlID0gYWx0aXR1ZGU7Ci0KLSAgICBnZW9jbHVlX2FjY3VyYWN5X2dldF9kZXRh
aWxzKGFjY3VyYWN5LCAwLCAmbV9hY2N1cmFjeSwgJm1fYWx0aXR1ZGVBY2N1cmFjeSk7Ci0KLSAg
ICBtX2NsaWVudC0+bm90aWZ5UG9zaXRpb25DaGFuZ2VkKG1fdGltZXN0YW1wLCBtX2xhdGl0dWRl
LCBtX2xvbmdpdHVkZSwgbV9hbHRpdHVkZSwgbV9hY2N1cmFjeSwgbV9hbHRpdHVkZUFjY3VyYWN5
KTsKLX0KLQotdm9pZCBHZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1ZTo6ZXJyb3JPY2N1cnJlZChj
b25zdCBjaGFyKiBtZXNzYWdlKQotewotICAgIG1fY2xpZW50LT5ub3RpZnlFcnJvck9jY3VycmVk
KG1lc3NhZ2UpOwotfQotCi0jZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FUSU9OKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VvY2x1ZS9HZW9sb2NhdGlvblByb3ZpZGVyR2Vv
Y2x1ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VvY2x1ZS9HZW9sb2NhdGlvblByb3Zp
ZGVyR2VvY2x1ZS5oCmluZGV4IDRhNzc0MzFhNGIxNTg2YTkxZDE3OGJmODJlMGZkYWE4MGI5YWIw
YmUuLmU2ODc4NGNhZTc0NDA5OWEyNjdhZjMxZTNiMWMyZjk3NjQzZTk0MWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlb2NsdWUvR2VvbG9jYXRpb25Qcm92aWRlckdlb2Ns
dWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW9jbHVlL0dlb2xvY2F0aW9uUHJv
dmlkZXJHZW9jbHVlLmgKQEAgLTIzLDkgKzIzLDEyIEBACiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9O
KQogCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWVDbGllbnQuaCIKKworI2lm
IFBMQVRGT1JNKEdUSykKICNpbmNsdWRlIDxnZW9jbHVlL2dlb2NsdWUtbWFzdGVyLmg+CiAjaW5j
bHVkZSA8Z2VvY2x1ZS9nZW9jbHVlLXBvc2l0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3Qv
R1JlZlB0ci5oPgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzgsMTYgKzQx
LDE5IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3BVcGRhdGluZygpOwogICAgIHZvaWQgc2V0RW5h
YmxlSGlnaEFjY3VyYWN5KGJvb2wpOwogCisjaWYgUExBVEZPUk0oR1RLKQogICAgIC8vIFRvIGJl
IHVzZWQgZnJvbSBzaWduYWwgY2FsbGJhY2tzLgogICAgIHZvaWQgaW5pdGlhbGl6ZUdlb2NsdWVD
bGllbnQoR2VvY2x1ZU1hc3RlckNsaWVudCopOwogICAgIHZvaWQgaW5pdGlhbGl6ZUdlb2NsdWVQ
b3NpdGlvbihHZW9jbHVlUG9zaXRpb24qKTsKICAgICB2b2lkIHVwZGF0ZUNsaWVudFJlcXVpcmVt
ZW50cygpOwogICAgIHZvaWQgcG9zaXRpb25DaGFuZ2VkKEdlb2NsdWVQb3NpdGlvbiosIEdlb2Ns
dWVQb3NpdGlvbkZpZWxkcywgaW50LCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBHZW9jbHVlQWNj
dXJhY3kqKTsKICAgICB2b2lkIGVycm9yT2NjdXJyZWQoY29uc3QgY2hhciopOworI2VuZGlmCiAK
IHByaXZhdGU6CiAgICAgR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWVDbGllbnQqIG1fY2xpZW50
OwogCisjaWYgUExBVEZPUk0oR1RLKQogICAgIEdSZWZQdHI8R2VvY2x1ZU1hc3RlckNsaWVudD4g
bV9nZW9jbHVlQ2xpZW50OwogICAgIEdSZWZQdHI8R2VvY2x1ZVBvc2l0aW9uPiBtX2dlb2NsdWVQ
b3NpdGlvbjsKIApAQCAtNjAsNiArNjYsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2VuYWJs
ZUhpZ2hBY2N1cmFjeTsKICAgICBib29sIG1faXNVcGRhdGluZzsKKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z2VvY2x1ZS9ndGsvR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWVHdGsuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ2VvY2x1ZS9ndGsvR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWVHdGsu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmU1Mzc2MDQ5MDNjYjQ2NDBiNTk1NGJiYjk1MDQ2M2FkMWJkNGRhZmYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW9jbHVlL2d0ay9H
ZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1ZUd0ay5jcHAKQEAgLTAsMCArMSwxODEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uUHJvdmlkZXJHZW9jbHVlLmgiCisKKyNpZiBF
TkFCTEUoR0VPTE9DQVRJT04pCisKKyNpbmNsdWRlIDx3dGYvZ29iamVjdC9HT3duUHRyLmg+CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMgdm9pZCBnZXRQb3NpdGlvbkNhbGxi
YWNrKEdlb2NsdWVQb3NpdGlvbiogcG9zaXRpb24sIEdlb2NsdWVQb3NpdGlvbkZpZWxkcyBmaWVs
ZHMsIGludCB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91
YmxlIGFsdGl0dWRlLCBHZW9jbHVlQWNjdXJhY3kqIGFjY3VyYWN5LCBHRXJyb3IqIGVycm9yLCBH
ZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1ZSogcHJvdmlkZXIpCit7CisgICAgaWYgKGVycm9yKSB7
CisgICAgICAgIHByb3ZpZGVyLT5lcnJvck9jY3VycmVkKGVycm9yLT5tZXNzYWdlKTsKKyAgICAg
ICAgZ19lcnJvcl9mcmVlKGVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBwcm92
aWRlci0+cG9zaXRpb25DaGFuZ2VkKHBvc2l0aW9uLCBmaWVsZHMsIHRpbWVzdGFtcCwgbGF0aXR1
ZGUsIGxvbmdpdHVkZSwgYWx0aXR1ZGUsIGFjY3VyYWN5KTsKK30KKworc3RhdGljIHZvaWQgcG9z
aXRpb25DaGFuZ2VkQ2FsbGJhY2soR2VvY2x1ZVBvc2l0aW9uKiBwb3NpdGlvbiwgR2VvY2x1ZVBv
c2l0aW9uRmllbGRzIGZpZWxkcywgaW50IHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3Vi
bGUgbG9uZ2l0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIEdlb2NsdWVBY2N1cmFjeSogYWNjdXJhY3ks
IEdlb2xvY2F0aW9uUHJvdmlkZXJHZW9jbHVlKiBwcm92aWRlcikKK3sKKyAgICBwcm92aWRlci0+
cG9zaXRpb25DaGFuZ2VkKHBvc2l0aW9uLCBmaWVsZHMsIHRpbWVzdGFtcCwgbGF0aXR1ZGUsIGxv
bmdpdHVkZSwgYWx0aXR1ZGUsIGFjY3VyYWN5KTsKK30KKworc3RhdGljIHZvaWQgY3JlYXRlR2Vv
Y2x1ZVBvc2l0aW9uQ2FsbGJhY2soR2VvY2x1ZU1hc3RlckNsaWVudCosIEdlb2NsdWVQb3NpdGlv
biogcG9zaXRpb24sIEdFcnJvciAqZXJyb3IsIEdlb2xvY2F0aW9uUHJvdmlkZXJHZW9jbHVlKiBw
cm92aWRlcikKK3sKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgcHJvdmlkZXItPmVycm9yT2Nj
dXJyZWQoZXJyb3ItPm1lc3NhZ2UpOworICAgICAgICBnX2Vycm9yX2ZyZWUoZXJyb3IpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIHByb3ZpZGVyLT5pbml0aWFsaXplR2VvY2x1ZVBvc2l0
aW9uKHBvc2l0aW9uKTsKK30KKworc3RhdGljIHZvaWQgZ2VvY2x1ZUNsaWVudFNldFJlcXVpcmVt
ZW50c0NhbGxiYWNrKEdlb2NsdWVNYXN0ZXJDbGllbnQqIGNsaWVudCwgR0Vycm9yKiBlcnJvciwg
R2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWUqIHByb3ZpZGVyKQoreworICAgIGlmIChlcnJvcikg
eworICAgICAgICBwcm92aWRlci0+ZXJyb3JPY2N1cnJlZChlcnJvci0+bWVzc2FnZSk7CisgICAg
ICAgIGdfZXJyb3JfZnJlZShlcnJvcik7CisgICAgfQorfQorCitzdGF0aWMgdm9pZCBjcmVhdGVH
ZW9jbHVlQ2xpZW50Q2FsbGJhY2soR2VvY2x1ZU1hc3RlciosIEdlb2NsdWVNYXN0ZXJDbGllbnQq
IGNsaWVudCwgY2hhciosIEdFcnJvciogZXJyb3IsIEdlb2xvY2F0aW9uUHJvdmlkZXJHZW9jbHVl
KiBwcm92aWRlcikKK3sKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgcHJvdmlkZXItPmVycm9y
T2NjdXJyZWQoZXJyb3ItPm1lc3NhZ2UpOworICAgICAgICBnX2Vycm9yX2ZyZWUoZXJyb3IpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIHByb3ZpZGVyLT5pbml0aWFsaXplR2VvY2x1ZUNs
aWVudChjbGllbnQpOworfQorCitHZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1ZTo6R2VvbG9jYXRp
b25Qcm92aWRlckdlb2NsdWUoR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWVDbGllbnQqIGNsaWVu
dCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fZ2VvY2x1ZUNsaWVudCgwKQorICAg
ICwgbV9nZW9jbHVlUG9zaXRpb24oMCkKKyAgICAsIG1fbGF0aXR1ZGUoMCkKKyAgICAsIG1fbG9u
Z2l0dWRlKDApCisgICAgLCBtX2FsdGl0dWRlKDApCisgICAgLCBtX2FjY3VyYWN5KDApCisgICAg
LCBtX2FsdGl0dWRlQWNjdXJhY3koMCkKKyAgICAsIG1fdGltZXN0YW1wKDApCisgICAgLCBtX2Vu
YWJsZUhpZ2hBY2N1cmFjeShmYWxzZSkKKyAgICAsIG1faXNVcGRhdGluZyhmYWxzZSkKK3sKKyAg
ICBBU1NFUlQobV9jbGllbnQpOworfQorCitHZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1ZTo6fkdl
b2xvY2F0aW9uUHJvdmlkZXJHZW9jbHVlKCkKK3sKK30KKwordm9pZCBHZW9sb2NhdGlvblByb3Zp
ZGVyR2VvY2x1ZTo6c3RhcnRVcGRhdGluZygpCit7CisgICAgQVNTRVJUKCFtX2dlb2NsdWVDbGll
bnQpOworCisgICAgR1JlZlB0cjxHZW9jbHVlTWFzdGVyPiBtYXN0ZXIgPSBhZG9wdEdSZWYoZ2Vv
Y2x1ZV9tYXN0ZXJfZ2V0X2RlZmF1bHQoKSk7CisgICAgZ2VvY2x1ZV9tYXN0ZXJfY3JlYXRlX2Ns
aWVudF9hc3luYyhtYXN0ZXIuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R2VvY2x1ZUNyZWF0ZUNs
aWVudENhbGxiYWNrPihjcmVhdGVHZW9jbHVlQ2xpZW50Q2FsbGJhY2spLCB0aGlzKTsKKyAgICBt
X2lzVXBkYXRpbmcgPSB0cnVlOworfQorCit2b2lkIEdlb2xvY2F0aW9uUHJvdmlkZXJHZW9jbHVl
OjpzdG9wVXBkYXRpbmcoKQoreworICAgIG1fZ2VvY2x1ZVBvc2l0aW9uLmNsZWFyKCk7CisgICAg
bV9nZW9jbHVlQ2xpZW50LmNsZWFyKCk7CisgICAgbV9pc1VwZGF0aW5nID0gZmFsc2U7Cit9CisK
K3ZvaWQgR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWU6OnNldEVuYWJsZUhpZ2hBY2N1cmFjeShi
b29sIGVuYWJsZSkKK3sKKyAgICBtX2VuYWJsZUhpZ2hBY2N1cmFjeSA9IGVuYWJsZTsKKworICAg
IC8vIElmIHdlJ3JlIGFscmVhZHkgdXBkYXRpbmcgd2Ugc2hvdWxkIHJlcG9ydCB0aGUgbmV3IHJl
cXVpcmVtZW50cyBpbiBvcmRlcgorICAgIC8vIHRvIGNoYW5nZSB0byBhIG1vcmUgc3VpdGFibGUg
cHJvdmlkZXIgaWYgbmVlZGVkLiBJZiBub3QsIHJldHVybi4KKyAgICBpZiAoIW1faXNVcGRhdGlu
ZykKKyAgICAgICAgcmV0dXJuOworCisgICAgdXBkYXRlQ2xpZW50UmVxdWlyZW1lbnRzKCk7Cit9
CisKK3ZvaWQgR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWU6OmluaXRpYWxpemVHZW9jbHVlQ2xp
ZW50KEdlb2NsdWVNYXN0ZXJDbGllbnQqIGdlb2NsdWVDbGllbnQpCit7CisgICAgQVNTRVJUKEdF
T0NMVUVfSVNfTUFTVEVSX0NMSUVOVChnZW9jbHVlQ2xpZW50KSk7CisKKyAgICAvLyBTdG9yZSB0
aGUgR2VvY2x1ZU1hc3RlckNsaWVudCBvYmplY3QgYXMgY3JlYXRlZCBieSBHZW9DbHVlLgorICAg
IG1fZ2VvY2x1ZUNsaWVudCA9IGFkb3B0R1JlZihnZW9jbHVlQ2xpZW50KTsKKworICAgIC8vIFNl
dCB0aGUgcmVxdWlyZW1lbnQgZm9yIHRoZSBjbGllbnQgYW5kIGFzayBpdCB0byBjcmVhdGUgYSBw
b3NpdGlvbiBhc3NvY2lhdGVkIHRvIGl0LgorICAgIHVwZGF0ZUNsaWVudFJlcXVpcmVtZW50cygp
OworICAgIGdlb2NsdWVfbWFzdGVyX2NsaWVudF9jcmVhdGVfcG9zaXRpb25fYXN5bmMobV9nZW9j
bHVlQ2xpZW50LmdldCgpLCByZWludGVycHJldF9jYXN0PENyZWF0ZVBvc2l0aW9uQ2FsbGJhY2s+
KGNyZWF0ZUdlb2NsdWVQb3NpdGlvbkNhbGxiYWNrKSwgdGhpcyk7Cit9CisKK3ZvaWQgR2VvbG9j
YXRpb25Qcm92aWRlckdlb2NsdWU6OmluaXRpYWxpemVHZW9jbHVlUG9zaXRpb24oR2VvY2x1ZVBv
c2l0aW9uKiBnZW9jbHVlUG9zaXRpb24pCit7CisgICAgQVNTRVJUKEdFT0NMVUVfSVNfUE9TSVRJ
T04oZ2VvY2x1ZVBvc2l0aW9uKSk7CisKKyAgICAvLyBTdG9yZXMgdGhlIEdlb2NsdWVQb3NpdGlv
biBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBHZW9jbHVlTWFzdGVyQ2xpZW50LgorICAgIG1f
Z2VvY2x1ZVBvc2l0aW9uID0gYWRvcHRHUmVmKGdlb2NsdWVQb3NpdGlvbik7CisKKyAgICAvLyBH
ZXQgdGhlIGluaXRpYWwgcG9zaXRpb24gYW5kIGtlZXAgdXBkYXRlZCBvZiBmdXJ0aGVyIGNoYW5n
ZXMuCisgICAgZ2VvY2x1ZV9wb3NpdGlvbl9nZXRfcG9zaXRpb25fYXN5bmMobV9nZW9jbHVlUG9z
aXRpb24uZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R2VvY2x1ZVBvc2l0aW9uQ2FsbGJhY2s+KGdl
dFBvc2l0aW9uQ2FsbGJhY2spLCB0aGlzKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KG1fZ2VvY2x1
ZVBvc2l0aW9uLmdldCgpLCAicG9zaXRpb24tY2hhbmdlZCIsIEdfQ0FMTEJBQ0socG9zaXRpb25D
aGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKK30KKwordm9pZCBHZW9sb2NhdGlvblByb3ZpZGVyR2Vv
Y2x1ZTo6dXBkYXRlQ2xpZW50UmVxdWlyZW1lbnRzKCkKK3sKKyAgICBpZiAoIW1fZ2VvY2x1ZUNs
aWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgR2VvY2x1ZUFjY3VyYWN5TGV2ZWwgYWNjdXJh
Y3lMZXZlbCA9IG1fZW5hYmxlSGlnaEFjY3VyYWN5ID8gR0VPQ0xVRV9BQ0NVUkFDWV9MRVZFTF9E
RVRBSUxFRCA6IEdFT0NMVUVfQUNDVVJBQ1lfTEVWRUxfTE9DQUxJVFk7CisgICAgZ2VvY2x1ZV9t
YXN0ZXJfY2xpZW50X3NldF9yZXF1aXJlbWVudHNfYXN5bmMobV9nZW9jbHVlQ2xpZW50LmdldCgp
LCBhY2N1cmFjeUxldmVsLCAwLCBmYWxzZSwgR0VPQ0xVRV9SRVNPVVJDRV9BTEwsIHJlaW50ZXJw
cmV0X2Nhc3Q8R2VvY2x1ZVNldFJlcXVpcmVtZW50c0NhbGxiYWNrPihnZW9jbHVlQ2xpZW50U2V0
UmVxdWlyZW1lbnRzQ2FsbGJhY2spLCB0aGlzKTsKK30KKwordm9pZCBHZW9sb2NhdGlvblByb3Zp
ZGVyR2VvY2x1ZTo6cG9zaXRpb25DaGFuZ2VkKEdlb2NsdWVQb3NpdGlvbiogcG9zaXRpb24sIEdl
b2NsdWVQb3NpdGlvbkZpZWxkcyBmaWVsZHMsIGludCB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVk
ZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBHZW9jbHVlQWNjdXJhY3kqIGFj
Y3VyYWN5KQoreworICAgIGlmICghKGZpZWxkcyAmIEdFT0NMVUVfUE9TSVRJT05fRklFTERTX0xB
VElUVURFICYmIGZpZWxkcyAmIEdFT0NMVUVfUE9TSVRJT05fRklFTERTX0xPTkdJVFVERSkpIHsK
KyAgICAgICAgZXJyb3JPY2N1cnJlZCgiUG9zaXRpb24gY291bGQgbm90IGJlIGRldGVybWluZWQu
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3RpbWVzdGFtcCA9IHRpbWVzdGFt
cDsKKyAgICBtX2xhdGl0dWRlID0gbGF0aXR1ZGU7CisgICAgbV9sb25naXR1ZGUgPSBsb25naXR1
ZGU7CisgICAgbV9hbHRpdHVkZSA9IGFsdGl0dWRlOworCisgICAgZ2VvY2x1ZV9hY2N1cmFjeV9n
ZXRfZGV0YWlscyhhY2N1cmFjeSwgMCwgJm1fYWNjdXJhY3ksICZtX2FsdGl0dWRlQWNjdXJhY3kp
OworCisgICAgbV9jbGllbnQtPm5vdGlmeVBvc2l0aW9uQ2hhbmdlZChtX3RpbWVzdGFtcCwgbV9s
YXRpdHVkZSwgbV9sb25naXR1ZGUsIG1fYWx0aXR1ZGUsIG1fYWNjdXJhY3ksIG1fYWx0aXR1ZGVB
Y2N1cmFjeSk7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWU6OmVycm9yT2Nj
dXJyZWQoY29uc3QgY2hhciogbWVzc2FnZSkKK3sKKyAgICBtX2NsaWVudC0+bm90aWZ5RXJyb3JP
Y2N1cnJlZChtZXNzYWdlKTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShHRU9MT0NBVElPTikK
</data>
<flag name="review"
          id="189384"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>