<?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>77652</bug_id>
          
          <creation_ts>2012-02-02 09:34:26 -0800</creation_ts>
          <short_desc>Move ScrollingThread to its own file</short_desc>
          <delta_ts>2012-02-02 09:44:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>levin+threading</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>547930</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-02-02 09:34:26 -0800</bug_when>
    <thetext>Move ScrollingThread to its own file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547931</commentid>
    <comment_count>1</comment_count>
      <attachid>125147</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-02-02 09:38:39 -0800</bug_when>
    <thetext>Created attachment 125147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547934</commentid>
    <comment_count>2</comment_count>
      <attachid>125147</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-02-02 09:40:45 -0800</bug_when>
    <thetext>Comment on attachment 125147
Patch

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

&gt; Source/WebCore/page/scrolling/ScrollingThread.h:77
&gt; +    RetainPtr&lt;CFRunLoopRef&gt; m_threadRunLoop;
&gt; +    RetainPtr&lt;CFRunLoopSourceRef&gt; m_threadRunLoopSource;

You should add a FIXME here to use WebCore::RunLoop at some point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547938</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-02-02 09:44:29 -0800</bug_when>
    <thetext>Committed r106565: &lt;http://trac.webkit.org/changeset/106565&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125147</attachid>
            <date>2012-02-02 09:38:39 -0800</date>
            <delta_ts>2012-02-02 09:40:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77652-20120202093900.patch</filename>
            <type>text/plain</type>
            <size>23195</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTZjYjU0YmUyNjYxZjJh
YTUxMmJhYzBlNGJmYTAxYTA5MzVhN2Q1YS4uNjhiMTJlZTk0NjcwMzBlZmFiYjMzOWEwYzE2YWVj
MDIyZTBlODM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTAyLTAyICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBTY3JvbGxp
bmdUaHJlYWQgdG8gaXRzIG93biBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03NzY1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMganVzdCBzaHVmZmxlcyBzb21lIGNsYXNzZXMgYXJvdW5kIGFu
ZCBtYWtlcyBTY3JvbGxpbmdDb29yZGluYXRvciBjYWxsIGludG8gU2Nyb2xsaW5nVGhyZWFkLgor
ICAgICAgICBIb3BlZnVsbHkgd2UnbGwgYmUgYWJsZSB0byBtYWtlIFNjcm9sbGluZ1RocmVhZCB1
c2UgdGhlIG5ldyBXZWJDb3JlOjpSdW5Mb29wIGNsYXNzIGV2ZW50dWFsbHkuCisKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgIChTY3JvbGxpbmdDb29yZGluYXRv
cik6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RocmVhZDo6
U2Nyb2xsaW5nVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RocmVhZDo6aXND
dXJyZW50VGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RocmVhZDo6ZGlzcGF0
Y2gpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVGhyZWFkOjpzaGFyZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nVGhyZWFkOjpjcmVhdGVUaHJlYWRJZk5lZWRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUaHJlYWQ6OnRocmVhZENhbGxiYWNrKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RocmVhZDo6dGhyZWFkQm9keSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUaHJlYWQ6OmRpc3BhdGNoRnVuY3Rpb25zRnJvbVNjcm9sbGluZ1RocmVhZCk6
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTY3JvbGxpbmdUaHJlYWQpOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxCeU9uU2Nyb2xsaW5nVGhyZWFkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVNYWluRnJhbWVT
Y3JvbGxMYXllclBvc2l0aW9uT25TY3JvbGxpbmdUaHJlYWQpOgorICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUaHJlYWRNYWMubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUaHJlYWQ6OmluaXRpYWxpemVSdW5Mb29w
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RocmVhZDo6d2FrZVVwUnVuTG9vcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUaHJlYWQ6OnRocmVhZFJ1bkxvb3BTb3VyY2VDYWxs
YmFjayk6CisKIDIwMTItMDItMDIgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbUkVHUkVTU0lPTl0gU2xvdyBjb250aW51
b3VzIERPTSB0cmF2ZXJzYWwgd2l0aCBVcC9Eb3duIGtleXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MTY3MmRjZTQ3MGNhYzg2
YjUwZTVkNzM3Y2RhNTAzYmNkOTcxZjAzLi44MDVlOTBlOGY3MTgyYzFkNWM0OGE5ZDliMGQxOTFk
OTQ1ZWRjNTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC01ODcsNiArNTg3LDkgQEAKIAkJMUFGNjJFRTYxNERBMjJBNzAwNDE1
NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGNjJFRTMxNERBMjJBNzAwNDE1NTZDIC8qIFNjcm9s
bGluZ0Nvb3JkaW5hdG9yTWFjLm1tICovOyB9OwogCQkxQUY2MkVFNzE0REEyMkE3MDA0MTU1NkMg
LyogU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUFGNjJFRTQxNERBMjJBNzAwNDE1NTZDIC8qIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yLmNwcCAqLzsgfTsKIAkJMUFGNjJFRTgxNERBMjJBNzAwNDE1NTZDIC8qIFNjcm9s
bGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQUY2MkVFNTE0REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxQUY2
MkYyNDE0REFGRTkxMDA0MTU1NkMgLyogU2Nyb2xsaW5nVGhyZWFkTWFjLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGNjJGMjMxNERBRkU5MTAwNDE1
NTZDIC8qIFNjcm9sbGluZ1RocmVhZE1hYy5tbSAqLzsgfTsKKwkJMUFGNjJGMjUxNERBRkU5RTAw
NDE1NTZDIC8qIFNjcm9sbGluZ1RocmVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQUY2MkYyMDE0REFGRTc5MDA0MTU1NkMgLyogU2Nyb2xsaW5n
VGhyZWFkLmNwcCAqLzsgfTsKKwkJMUFGNjJGMjYxNERBRkVBMTAwNDE1NTZDIC8qIFNjcm9sbGlu
Z1RocmVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUFGNjJGMjExNERBRkU3OTAwNDE1NTZDIC8qIFNjcm9sbGluZ1RocmVhZC5oICovOyB9OwogCQkx
QUY4RTExQTEyNTY1OTI2MDAyMzBGRjcgLyogUHJveHlTZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRjhFMTE5MTI1NjU5MjYwMDIzMEZGNyAv
KiBQcm94eVNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTFBRjhFMTMzMTI1NjVBNDQwMDIzMEZGNyAvKiBQcm94eVNlcnZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUY4RTEzMjEyNTY1
QTQ0MDAyMzBGRjcgLyogUHJveHlTZXJ2ZXIuY3BwICovOyB9OwogCQkxQUY4RTFDMzEyNTY3M0Uw
MDAyMzBGRjcgLyogUHJveHlTZXJ2ZXJDRk5ldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUY4RTFDMTEyNTY3M0UwMDAyMzBGRjcgLyogUHJveHlT
ZXJ2ZXJDRk5ldC5jcHAgKi87IH07CkBAIC03MzIzLDYgKzczMjYsOSBAQAogCQkxQUY2MkVFMzE0
REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFGNjJFRTQxNERBMjJBNzAwNDE1NTZDIC8q
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUFGNjJFRTUxNERBMjJBNzAwNDE1NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBRjYyRjIwMTREQUZFNzkwMDQxNTU2QyAv
KiBTY3JvbGxpbmdUaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2Nyb2xsaW5nVGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUFG
NjJGMjExNERBRkU3OTAwNDE1NTZDIC8qIFNjcm9sbGluZ1RocmVhZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdUaHJlYWQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUFGNjJGMjMxNERBRkU5MTAwNDE1NTZDIC8qIFNjcm9sbGluZ1RocmVhZE1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGluZ1Ro
cmVhZE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFGOEUxMTkxMjU2NTky
NjAwMjMwRkY3IC8qIFByb3h5U2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFByb3h5U2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBRjhFMTMy
MTI1NjVBNDQwMDIzMEZGNyAvKiBQcm94eVNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBQcm94eVNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFBRjhFMUMxMTI1NjczRTAwMDIzMEZGNyAvKiBQcm94eVNlcnZlckNGTmV0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3h5U2VydmVyQ0ZOZXQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM5MTEsNiArMTM5MTcsOCBAQAogCQkJ
CTFBRjYyRUUyMTREQTIyQTcwMDQxNTU2QyAvKiBtYWMgKi8sCiAJCQkJMUFGNjJFRTQxNERBMjJB
NzAwNDE1NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCAqLywKIAkJCQkxQUY2MkVFNTE0
REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCAqLywKKwkJCQkxQUY2MkYy
MDE0REFGRTc5MDA0MTU1NkMgLyogU2Nyb2xsaW5nVGhyZWFkLmNwcCAqLywKKwkJCQkxQUY2MkYy
MTE0REFGRTc5MDA0MTU1NkMgLyogU2Nyb2xsaW5nVGhyZWFkLmggKi8sCiAJCQkpOwogCQkJcGF0
aCA9IHNjcm9sbGluZzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMzkxOSw2ICsx
MzkyNyw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFBRjYy
RUUzMTREQTIyQTcwMDQxNTU2QyAvKiBTY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbSAqLywKKwkJ
CQkxQUY2MkYyMzE0REFGRTkxMDA0MTU1NkMgLyogU2Nyb2xsaW5nVGhyZWFkTWFjLm1tICovLAog
CQkJKTsKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjQw
ODgsNiArMjQwOTcsNyBAQAogCQkJCTA3MjBCMEExMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmlj
RXZlbnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkNGNjg3OEExNEQzMkVGRjAwMzQwRjM5
IC8qIEVsZW1lbnRBdHRyaWJ1dGVEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY2MkVFODE0
REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFBRjYyRjI2MTREQUZFQTEwMDQxNTU2QyAvKiBTY3JvbGxpbmdUaHJlYWQuaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtMjcwMTQsNiArMjcwMjQsOCBAQAogCQkJCTJDRjY4Nzg4MTREMzJFQjUwMDM0
MEYzOSAvKiBFbGVtZW50QXR0cmlidXRlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUY2
MkVFNjE0REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0gaW4gU291
cmNlcyAqLywKIAkJCQkxQUY2MkVFNzE0REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUFGNjJGMjQxNERBRkU5MTAwNDE1NTZDIC8q
IFNjcm9sbGluZ1RocmVhZE1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTFBRjYyRjI1MTREQUZF
OUUwMDQxNTU2QyAvKiBTY3JvbGxpbmdUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5j
cHAKaW5kZXggYzgzYmNiNGFhMDM0YzkyODM1ZTI1YTIzYmE1ZDIyMzQwYWNhOWFlYS4uMTM1NTMy
NjdmNmU2NzBjNjdiZDgwMWNkMWRlMDExNDMwMDYyMDRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMzUs
NiArMzUsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZl
bnQuaCIKICNpbmNsdWRlICJTY3JvbGxBbmltYXRvci5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ1Ro
cmVhZC5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtMTEzLDcgKzExNCw3IEBA
IGJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50CiAgICAgICAgIGRlbHRhWSA9IDA7CiAKICAgICBJbnRT
aXplIHNjcm9sbE9mZnNldCA9IEludFNpemUoLWRlbHRhWCwgLWRlbHRhWSk7Ci0gICAgZGlzcGF0
Y2hPblNjcm9sbGluZ1RocmVhZChiaW5kKCZTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQnlP
blNjcm9sbGluZ1RocmVhZCwgdGhpcywgc2Nyb2xsT2Zmc2V0KSk7CisgICAgU2Nyb2xsaW5nVGhy
ZWFkOjpkaXNwYXRjaChiaW5kKCZTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQnlPblNjcm9s
bGluZ1RocmVhZCwgdGhpcywgc2Nyb2xsT2Zmc2V0KSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGlu
YXRvci5oCmluZGV4IGUyOTVkODAzMTVjNjExMzNmZDY0YjNmOWM3MThhYjI0MDM4ZWUyZDguLjJj
ZTIwOTlkOTllOGYyYWI1OGIwYzAzZDFiOWU0MDhhZjY0OGJkYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtODUs
MTEgKzg1LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTY3JvbGxpbmdDb29y
ZGluYXRvcihQYWdlKik7CiAKLSAgICAvLyBGSVhNRTogT25jZSB3ZSBoYXZlIGEgcHJvcGVyIHRo
cmVhZC9ydW4gbG9vcCBhYnN0cmFjdGlvbiB3ZSBzaG91bGQgZ2V0IHJpZCBvZiB0aGVzZQotICAg
IC8vIGZ1bmN0aW9ucyBhbmQganVzdCB1c2Ugc29tZXRoaW5nIGxpa2Ugc2Nyb2xsaW5nUnVuTG9v
cCgpLT5kaXNwYXRjaChmdW5jdGlvbik7Ci0gICAgc3RhdGljIGJvb2wgaXNTY3JvbGxpbmdUaHJl
YWQoKTsKLSAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaE9uU2Nyb2xsaW5nVGhyZWFkKGNvbnN0IEZ1
bmN0aW9uPHZvaWQoKT4mKTsKLQogICAgIC8vIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIGNhbiBv
bmx5IGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4KICAgICB2b2lkIGRpZFVwZGF0ZU1h
aW5GcmFtZVNjcm9sbFBvc2l0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjNWE0MDVkYWE4MjQ1NzQ2
NzRmOTViOTMyYzJjM2I5NjA2NDExYWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuY3BwCkBAIC0wLDAgKzEsMTExIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ1RocmVh
ZC5oIgorCisjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitTY3JvbGxpbmdUaHJlYWQ6OlNjcm9sbGluZ1RocmVhZCgpCisgICAgOiBtX3RocmVh
ZElkZW50aWZpZXIoMCkKK3sKK30KKworYm9vbCBTY3JvbGxpbmdUaHJlYWQ6OmlzQ3VycmVudFRo
cmVhZCgpCit7CisgICAgaWYgKCFzaGFyZWQoKS5tX3RocmVhZElkZW50aWZpZXIpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBjdXJyZW50VGhyZWFkKCkgPT0gc2hhcmVkKCku
bV90aHJlYWRJZGVudGlmaWVyOworfQorCit2b2lkIFNjcm9sbGluZ1RocmVhZDo6ZGlzcGF0Y2go
Y29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCit7CisgICAgc2hhcmVkKCkuY3JlYXRl
VGhyZWFkSWZOZWVkZWQoKTsKKworICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKHNo
YXJlZCgpLm1fZnVuY3Rpb25zTXV0ZXgpOworICAgICAgICBzaGFyZWQoKS5tX2Z1bmN0aW9ucy5h
cHBlbmQoZnVuY3Rpb24pOworICAgIH0KKworICAgIHNoYXJlZCgpLndha2VVcFJ1bkxvb3AoKTsK
K30KKworU2Nyb2xsaW5nVGhyZWFkJiBTY3JvbGxpbmdUaHJlYWQ6OnNoYXJlZCgpCit7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChTY3JvbGxpbmdUaHJlYWQsIHNjcm9sbGluZ1RocmVhZCwgKCkp
OworICAgIHJldHVybiBzY3JvbGxpbmdUaHJlYWQ7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVGhyZWFk
OjpjcmVhdGVUaHJlYWRJZk5lZWRlZCgpCit7CisgICAgaWYgKG1fdGhyZWFkSWRlbnRpZmllcikK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV90aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFk
KHRocmVhZENhbGxiYWNrLCB0aGlzLCAiV2ViQ29yZTogU2Nyb2xsaW5nIik7CisKKyAgICAvLyBX
YWl0IGZvciB0aGUgdGhyZWFkIHRvIGluaXRpYWxpemUgdGhlIHJ1biBsb29wLgorICAgIHsKKyAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRl
eCk7CisKKyAgICAgICAgd2hpbGUgKCFtX3RocmVhZFJ1bkxvb3ApCisgICAgICAgICAgICBtX2lu
aXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uLndhaXQobV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlv
bk11dGV4KTsKKyAgICB9Cit9CisKK3ZvaWQqIFNjcm9sbGluZ1RocmVhZDo6dGhyZWFkQ2FsbGJh
Y2sodm9pZCogc2Nyb2xsaW5nVGhyZWFkKQoreworICAgIHN0YXRpY19jYXN0PFNjcm9sbGluZ1Ro
cmVhZCo+KHNjcm9sbGluZ1RocmVhZCktPnRocmVhZEJvZHkoKTsKKworICAgIHJldHVybiAwOwor
fQorCit2b2lkIFNjcm9sbGluZ1RocmVhZDo6dGhyZWFkQm9keSgpCit7CisgICAgQVNTRVJUKGlz
Q3VycmVudFRocmVhZCgpKTsKKworICAgIGluaXRpYWxpemVSdW5Mb29wKCk7Cit9CisKK3ZvaWQg
U2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRjaEZ1bmN0aW9uc0Zyb21TY3JvbGxpbmdUaHJlYWQoKQor
eworICAgIEFTU0VSVChpc0N1cnJlbnRUaHJlYWQoKSk7CisKKyAgICBWZWN0b3I8RnVuY3Rpb248
dm9pZCgpPiA+IGZ1bmN0aW9uczsKKyAgICAKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX2Z1bmN0aW9uc011dGV4KTsKKyAgICAgICAgbV9mdW5jdGlvbnMuc3dhcChmdW5jdGlv
bnMpOworICAgIH0KKyAgICAKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZ1bmN0aW9ucy5z
aXplKCk7ICsraSkKKyAgICAgICAgZnVuY3Rpb25zW2ldKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJTkcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJmNWI4OTljY2M1ZmVmZDkxY2U2MzU5NDBmNjhkNDM0ZDAyOTc1NDAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuaApAQCAt
MCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTY3JvbGxpbmdUaHJlYWRfaAorI2Rl
ZmluZSBTY3JvbGxpbmdUaHJlYWRfaAorCisjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykK
KworI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KworI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjZW5kaWYK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JvbGxpbmdUaHJlYWQgeworICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFNjcm9sbGluZ1RocmVhZCk7CisKK3B1YmxpYzoKKyAgICBzdGF0
aWMgYm9vbCBpc0N1cnJlbnRUaHJlYWQoKTsKKyAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaChjb25z
dCBGdW5jdGlvbjx2b2lkKCk+Jik7CisKK3ByaXZhdGU6CisgICAgU2Nyb2xsaW5nVGhyZWFkKCk7
CisKKyAgICBzdGF0aWMgU2Nyb2xsaW5nVGhyZWFkJiBzaGFyZWQoKTsKKworICAgIHZvaWQgY3Jl
YXRlVGhyZWFkSWZOZWVkZWQoKTsKKyAgICBzdGF0aWMgdm9pZCogdGhyZWFkQ2FsbGJhY2sodm9p
ZCogc2Nyb2xsaW5nVGhyZWFkKTsKKyAgICB2b2lkIHRocmVhZEJvZHkoKTsKKyAgICB2b2lkIGRp
c3BhdGNoRnVuY3Rpb25zRnJvbVNjcm9sbGluZ1RocmVhZCgpOworCisgICAgdm9pZCBpbml0aWFs
aXplUnVuTG9vcCgpOworICAgIHZvaWQgd2FrZVVwUnVuTG9vcCgpOworCisjaWYgUExBVEZPUk0o
TUFDKQorICAgIHN0YXRpYyB2b2lkIHRocmVhZFJ1bkxvb3BTb3VyY2VDYWxsYmFjayh2b2lkKiBz
Y3JvbGxpbmdUaHJlYWQpOworICAgIHZvaWQgdGhyZWFkUnVuTG9vcFNvdXJjZUNhbGxiYWNrKCk7
CisjZW5kaWYKKworICAgIFRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJZGVudGlmaWVyOworCisg
ICAgVGhyZWFkQ29uZGl0aW9uIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb247CisgICAgTXV0
ZXggbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4OworCisgICAgTXV0ZXggbV9mdW5j
dGlvbnNNdXRleDsKKyAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPiA+IG1fZnVuY3Rpb25zOwor
CisjaWYgUExBVEZPUk0oTUFDKQorICAgIFJldGFpblB0cjxDRlJ1bkxvb3BSZWY+IG1fdGhyZWFk
UnVuTG9vcDsKKyAgICBSZXRhaW5QdHI8Q0ZSdW5Mb29wU291cmNlUmVmPiBtX3RocmVhZFJ1bkxv
b3BTb3VyY2U7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJTkcpCisKKyNlbmRpZiAvLyBTY3JvbGxpbmdUaHJl
YWRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCmluZGV4IDAwNTM1ZDJiOTg1ODUwMWJmNDE4ZmJj
MjQwMTIyZGUyMTVkMmNjYmYuLmZmNzBmODJjZmQwYWU1NjFmOGQwYmFmMjQxYWRlNDk3YWYxY2Y5
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdDb29yZGluYXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KQEAgLTMxLDYgKzMxLDcgQEAKIAogI2ltcG9y
dCAiRnJhbWVWaWV3LmgiCiAjaW1wb3J0ICJQYWdlLmgiCisjaW1wb3J0ICJTY3JvbGxpbmdUaHJl
YWQuaCIKICNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgogI2ltcG9ydCA8d3RmL0Z1
bmN0aW9uYWwuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC00MCwxMjcgKzQxLDYg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTY3JvbGxpbmdUaHJlYWQgewotcHVi
bGljOgotICAgIFNjcm9sbGluZ1RocmVhZCgpCi0gICAgICAgIDogbV90aHJlYWRJZGVudGlmaWVy
KDApCi0gICAgewotICAgIH0KLQotICAgIGJvb2wgaXNDdXJyZW50VGhyZWFkKCkgY29uc3Q7Ci0g
ICAgdm9pZCBkaXNwYXRjaChjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7Ci0KLXByaXZhdGU6Ci0g
ICAgdm9pZCBjcmVhdGVUaHJlYWRJZk5lZWRlZCgpOwotCi0gICAgc3RhdGljIHZvaWQqIHRocmVh
ZENhbGxiYWNrKHZvaWQqIHNjcm9sbGluZ1RocmVhZCk7Ci0gICAgdm9pZCB0aHJlYWRCb2R5KCk7
Ci0KLSAgICBzdGF0aWMgdm9pZCB0aHJlYWRSdW5Mb29wU291cmNlQ2FsbGJhY2sodm9pZCogc2Ny
b2xsaW5nVGhyZWFkKTsKLSAgICB2b2lkIHRocmVhZFJ1bkxvb3BTb3VyY2VDYWxsYmFjaygpOwot
Ci0gICAgVGhyZWFkSWRlbnRpZmllciBtX3RocmVhZElkZW50aWZpZXI7Ci0KLSAgICBUaHJlYWRD
b25kaXRpb24gbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbjsKLSAgICBNdXRleCBtX2luaXRp
YWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXg7Ci0gICAgCi0gICAgUmV0YWluUHRyPENGUnVuTG9v
cFJlZj4gbV90aHJlYWRSdW5Mb29wOwotICAgIFJldGFpblB0cjxDRlJ1bkxvb3BTb3VyY2VSZWY+
IG1fdGhyZWFkUnVuTG9vcFNvdXJjZTsKLQotICAgIE11dGV4IG1fZnVuY3Rpb25zTXV0ZXg7Ci0g
ICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4gPiBtX2Z1bmN0aW9uczsKLX07Ci0KLWJvb2wgU2Ny
b2xsaW5nVGhyZWFkOjppc0N1cnJlbnRUaHJlYWQoKSBjb25zdAotewotICAgIGlmICghbV90aHJl
YWRJZGVudGlmaWVyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gY3VycmVu
dFRocmVhZCgpID09IG1fdGhyZWFkSWRlbnRpZmllcjsKLX0KLQotdm9pZCBTY3JvbGxpbmdUaHJl
YWQ6OmNyZWF0ZVRocmVhZElmTmVlZGVkKCkKLXsKLSAgICBpZiAobV90aHJlYWRJZGVudGlmaWVy
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3RocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJl
YWQodGhyZWFkQ2FsbGJhY2ssIHRoaXMsICJXZWJDb3JlOiBTY3JvbGxpbmciKTsKLQotICAgIC8v
IFdhaXQgZm9yIHRoZSB0aHJlYWQgdG8gaW5pdGlhbGl6ZSB0aGUgcnVuIGxvb3AuCi0gICAgewot
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11
dGV4KTsKLQotICAgICAgICB3aGlsZSAoIW1fdGhyZWFkUnVuTG9vcCkKLSAgICAgICAgICAgIG1f
aW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb24ud2FpdChtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0
aW9uTXV0ZXgpOwotICAgIH0KLX0KLQotdm9pZCogU2Nyb2xsaW5nVGhyZWFkOjp0aHJlYWRDYWxs
YmFjayh2b2lkKiBzY3JvbGxpbmdUaHJlYWQpCi17Ci0gICAgc3RhdGljX2Nhc3Q8U2Nyb2xsaW5n
VGhyZWFkKj4oc2Nyb2xsaW5nVGhyZWFkKS0+dGhyZWFkQm9keSgpOwotCi0gICAgcmV0dXJuIDA7
Ci19Ci0KLXZvaWQgU2Nyb2xsaW5nVGhyZWFkOjp0aHJlYWRCb2R5KCkKLXsKLSAgICBBU1NFUlQo
aXNDdXJyZW50VGhyZWFkKCkpOwotCi0gICAgLy8gSW5pdGlhbGl6ZSB0aGUgcnVuIGxvb3AuCi0g
ICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9pbml0aWFsaXplUnVuTG9vcENvbmRp
dGlvbk11dGV4KTsKLQotICAgICAgICBtX3RocmVhZFJ1bkxvb3AgPSBDRlJ1bkxvb3BHZXRDdXJy
ZW50KCk7Ci0KLSAgICAgICAgQ0ZSdW5Mb29wU291cmNlQ29udGV4dCBjb250ZXh0ID0geyAwLCB0
aGlzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCB0aHJlYWRSdW5Mb29wU291cmNlQ2FsbGJhY2sgfTsK
LSAgICAgICAgbV90aHJlYWRSdW5Mb29wU291cmNlID0gYWRvcHRDRihDRlJ1bkxvb3BTb3VyY2VD
cmVhdGUoMCwgMCwgJmNvbnRleHQpKTsKLSAgICAgICAgQ0ZSdW5Mb29wQWRkU291cmNlKENGUnVu
TG9vcEdldEN1cnJlbnQoKSwgbV90aHJlYWRSdW5Mb29wU291cmNlLmdldCgpLCBrQ0ZSdW5Mb29w
RGVmYXVsdE1vZGUpOwotCi0gICAgICAgIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb24uYnJv
YWRjYXN0KCk7Ci0gICAgfQotCi0gICAgQ0ZSdW5Mb29wUnVuKCk7Ci19Ci0KLXZvaWQgU2Nyb2xs
aW5nVGhyZWFkOjp0aHJlYWRSdW5Mb29wU291cmNlQ2FsbGJhY2sodm9pZCogc2Nyb2xsaW5nVGhy
ZWFkKQotewotICAgIHN0YXRpY19jYXN0PFNjcm9sbGluZ1RocmVhZCo+KHNjcm9sbGluZ1RocmVh
ZCktPnRocmVhZFJ1bkxvb3BTb3VyY2VDYWxsYmFjaygpOwotfQotCi12b2lkIFNjcm9sbGluZ1Ro
cmVhZDo6dGhyZWFkUnVuTG9vcFNvdXJjZUNhbGxiYWNrKCkKLXsKLSAgICBBU1NFUlQoaXNDdXJy
ZW50VGhyZWFkKCkpOwotCi0gICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQgKCk+ID4gZnVuY3Rpb25z
OwotCi0gICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvbnNNdXRleCk7
Ci0gICAgICAgIG1fZnVuY3Rpb25zLnN3YXAoZnVuY3Rpb25zKTsKLSAgICB9Ci0KLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGZ1bmN0aW9ucy5zaXplKCk7ICsraSkKLSAgICAgICAgZnVuY3Rp
b25zW2ldKCk7Ci19Ci0KLXZvaWQgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRjaChjb25zdCBGdW5j
dGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKLXsKLSAgICBjcmVhdGVUaHJlYWRJZk5lZWRlZCgpOwot
Ci0gICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvbnNNdXRleCk7Ci0g
ICAgICAgIG1fZnVuY3Rpb25zLmFwcGVuZChmdW5jdGlvbik7Ci0gICAgfQotCi0gICAgQ0ZSdW5M
b29wU291cmNlU2lnbmFsKG1fdGhyZWFkUnVuTG9vcFNvdXJjZS5nZXQoKSk7Ci0gICAgQ0ZSdW5M
b29wV2FrZVVwKG1fdGhyZWFkUnVuTG9vcC5nZXQoKSk7Ci19Ci0KLXN0YXRpYyBTY3JvbGxpbmdU
aHJlYWQmIHNjcm9sbGluZ1RocmVhZCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTY3Jv
bGxpbmdUaHJlYWQsIHNjcm9sbGluZ1RocmVhZCwgKCkpOwotICAgIHJldHVybiBzY3JvbGxpbmdU
aHJlYWQ7Ci19Ci0KIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmZyYW1lVmlld0hvcml6b250
YWxTY3JvbGxiYXJMYXllckRpZENoYW5nZShGcmFtZVZpZXcqIGZyYW1lVmlldywgR3JhcGhpY3NM
YXllciopCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTE5NywxOSArNzcsOSBA
QCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpmcmFtZVZpZXdTY3JvbGxMYXllckRpZENoYW5n
ZShGcmFtZVZpZXcqIGZyYW1lVmlldywgYwogICAgIC8vIEZJWE1FOiBJbmZvcm0gdGhlIHNjcm9s
bGluZyB0aHJlYWQ/CiB9CiAKLWJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmlzU2Nyb2xsaW5n
VGhyZWFkKCkKLXsKLSAgICByZXR1cm4gc2Nyb2xsaW5nVGhyZWFkKCkuaXNDdXJyZW50VGhyZWFk
KCk7Ci19Ci0KLXZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmRpc3BhdGNoT25TY3JvbGxpbmdU
aHJlYWQoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCi17Ci0gICAgcmV0dXJuIHNj
cm9sbGluZ1RocmVhZCgpLmRpc3BhdGNoKGZ1bmN0aW9uKTsKLX0KLQogdm9pZCBTY3JvbGxpbmdD
b29yZGluYXRvcjo6c2Nyb2xsQnlPblNjcm9sbGluZ1RocmVhZChjb25zdCBJbnRTaXplJiBvZmZz
ZXQpCiB7Ci0gICAgQVNTRVJUKGlzU2Nyb2xsaW5nVGhyZWFkKCkpOworICAgIEFTU0VSVChTY3Jv
bGxpbmdUaHJlYWQ6OmlzQ3VycmVudFRocmVhZCgpKTsKIAogICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX21haW5GcmFtZUdlb21ldHJ5TXV0ZXgpOwogCkBAIC0yMzQsNyArMTA0LDcgQEAgdm9pZCBT
Y3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQnlPblNjcm9sbGluZ1RocmVhZChjb25zdCBJbnRT
aXplJiBvZmZzZXQpCiAKIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZU1haW5GcmFt
ZVNjcm9sbExheWVyUG9zaXRpb25PblNjcm9sbGluZ1RocmVhZChjb25zdCBGbG9hdFBvaW50JiBz
Y3JvbGxMYXllclBvc2l0aW9uKQogewotICAgIEFTU0VSVChpc1Njcm9sbGluZ1RocmVhZCgpKTsK
KyAgICBBU1NFUlQoU2Nyb2xsaW5nVGhyZWFkOjppc0N1cnJlbnRUaHJlYWQoKSk7CiAgICAgQVNT
RVJUKCFtX21haW5GcmFtZUdlb21ldHJ5TXV0ZXgudHJ5TG9jaygpKTsKIAogICAgIFtDQVRyYW5z
YWN0aW9uIGJlZ2luXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L21hYy9TY3JvbGxpbmdUaHJlYWRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVGhyZWFkTWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2YTc2ODExM2E5ZDEzODll
ZjE3MTQwZDI1ZjM0YWUzYzkxNDQ0YTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVGhyZWFkTWFjLm1tCkBAIC0wLDAgKzEsNjkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2Nyb2xsaW5n
VGhyZWFkLmgiCisKKyNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3ZvaWQgU2Nyb2xsaW5nVGhyZWFkOjppbml0aWFsaXplUnVuTG9vcCgpCit7
CisgICAgLy8gSW5pdGlhbGl6ZSB0aGUgcnVuIGxvb3AuCisgICAgeworICAgICAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKKworICAgICAg
ICBtX3RocmVhZFJ1bkxvb3AgPSBDRlJ1bkxvb3BHZXRDdXJyZW50KCk7CisKKyAgICAgICAgQ0ZS
dW5Mb29wU291cmNlQ29udGV4dCBjb250ZXh0ID0geyAwLCB0aGlzLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLCB0aHJlYWRSdW5Mb29wU291cmNlQ2FsbGJhY2sgfTsKKyAgICAgICAgbV90aHJlYWRSdW5M
b29wU291cmNlID0gYWRvcHRDRihDRlJ1bkxvb3BTb3VyY2VDcmVhdGUoMCwgMCwgJmNvbnRleHQp
KTsKKyAgICAgICAgQ0ZSdW5Mb29wQWRkU291cmNlKENGUnVuTG9vcEdldEN1cnJlbnQoKSwgbV90
aHJlYWRSdW5Mb29wU291cmNlLmdldCgpLCBrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUpOworCisgICAg
ICAgIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb24uYnJvYWRjYXN0KCk7CisgICAgfQorCisg
ICAgQ0ZSdW5Mb29wUnVuKCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVGhyZWFkOjp3YWtlVXBSdW5M
b29wKCkKK3sKKyAgICBDRlJ1bkxvb3BTb3VyY2VTaWduYWwobV90aHJlYWRSdW5Mb29wU291cmNl
LmdldCgpKTsKKyAgICBDRlJ1bkxvb3BXYWtlVXAobV90aHJlYWRSdW5Mb29wLmdldCgpKTsKK30K
Kwordm9pZCBTY3JvbGxpbmdUaHJlYWQ6OnRocmVhZFJ1bkxvb3BTb3VyY2VDYWxsYmFjayh2b2lk
KiBzY3JvbGxpbmdUaHJlYWQpCit7CisgICAgc3RhdGljX2Nhc3Q8U2Nyb2xsaW5nVGhyZWFkKj4o
c2Nyb2xsaW5nVGhyZWFkKS0+dGhyZWFkUnVuTG9vcFNvdXJjZUNhbGxiYWNrKCk7Cit9CisKK3Zv
aWQgU2Nyb2xsaW5nVGhyZWFkOjp0aHJlYWRSdW5Mb29wU291cmNlQ2FsbGJhY2soKQoreworICAg
IGRpc3BhdGNoRnVuY3Rpb25zRnJvbVNjcm9sbGluZ1RocmVhZCgpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQo=
</data>
<flag name="review"
          id="126584"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>