<?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>10866</bug_id>
          
          <creation_ts>2006-09-15 01:14:30 -0700</creation_ts>
          <short_desc>Code in kcanvas/ should not use Private</short_desc>
          <delta_ts>2006-09-16 10:19:19 -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>SVG</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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="Rob Buis">rwlbuis</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>55565</commentid>
    <comment_count>0</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-09-15 01:14:30 -0700</bug_when>
    <thetext>The old kcanvas code uses a d pointer to minimize changes to the header files. This
is not used in webkit, so remove it and conform to webkit style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55566</commentid>
    <comment_count>1</comment_count>
      <attachid>10571</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-09-15 01:24:20 -0700</bug_when>
    <thetext>Created attachment 10571
Cleanup patch

This should be a simple and useful patch...
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55615</commentid>
    <comment_count>2</comment_count>
      <attachid>10571</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-09-15 14:56:27 -0700</bug_when>
    <thetext>Comment on attachment 10571
Cleanup patch

Looks fine.  Assuming it passes the layout tests r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55669</commentid>
    <comment_count>3</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-09-16 10:19:19 -0700</bug_when>
    <thetext>Landed in r16393.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10571</attachid>
            <date>2006-09-15 01:24:20 -0700</date>
            <delta_ts>2006-09-15 14:56:27 -0700</delta_ts>
            <desc>Cleanup patch</desc>
            <filename>10866.diff</filename>
            <type>text/plain</type>
            <size>34123</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNjM2OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTIwIEBACisyMDA2LTA5LTE1ICBSb2IgQnVpcyAgPGJ1aXNAa2RlLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwOi8vYnVn
emlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTEwODY2CisgICAgICAgIENvZGUg
aW4ga2NhbnZhcy8gc2hvdWxkIG5vdCB1c2UgUHJpdmF0ZQorCisgICAgICAgIFJlbW92ZSBQcml2
YXRlIGNsYXNzZXMgYW5kIHR3ZWFrIGNvZGluZyBzdHlsZS4KKworICAgICAgICBXQVJOSU5HOiBO
TyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQKKworICAgICAgICAqIGtjYW52YXMvUmVuZGVy
UGF0aC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQYXRoOjpSZW5kZXJQYXRoKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclBhdGg6On5SZW5kZXJQYXRoKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclBhdGg6OmxvY2FsVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clBhdGg6OnNldExvY2FsVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclBhdGg6
OmZpbGxDb250YWlucyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQYXRoOjpyZWxhdGl2ZUJC
b3gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUGF0aDo6c2V0UGF0aCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJQYXRoOjpwYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclBhdGg6
OmxheW91dCk6CisgICAgICAgICoga2NhbnZhcy9SZW5kZXJQYXRoLmg6CisgICAgICAgICoga2Nh
bnZhcy9SZW5kZXJTVkdDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
Q29udGFpbmVyOjpSZW5kZXJTVkdDb250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U1ZHQ29udGFpbmVyOjp+UmVuZGVyU1ZHQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNWR0NvbnRhaW5lcjo6ZHJhd3NDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdDb250YWluZXI6OnNldERyYXdzQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU1ZHQ29udGFpbmVyOjpsb2NhbFRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdDb250YWluZXI6OnNldExvY2FsVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNWR0NvbnRhaW5lcjo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0Nv
bnRhaW5lcjo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHQ29udGFpbmVyOjpz
ZXRWaWV3cG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdDb250YWluZXI6OnZpZXdw
b3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0NvbnRhaW5lcjo6c2V0Vmlld0JveCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdDb250YWluZXI6OnZpZXdCb3gpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU1ZHQ29udGFpbmVyOjpzZXRBbGlnbik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTVkdDb250YWluZXI6OmFsaWduKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNWR0NvbnRhaW5lcjo6c2V0U2xpY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHQ29u
dGFpbmVyOjpzbGljZSk6CisgICAgICAgICoga2NhbnZhcy9SZW5kZXJTVkdDb250YWluZXIuaDoK
KyAgICAgICAgKiBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRmlsbFBhaW50ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6S1JlbmRlcmluZ0ZpbGxQYWludGVyOjpLUmVuZGVyaW5nRmlsbFBhaW50
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6S1JlbmRlcmluZ0ZpbGxQYWludGVyOjp+S1JlbmRlcmlu
Z0ZpbGxQYWludGVyKToKKyAgICAgICAgKFdlYkNvcmU6OktSZW5kZXJpbmdGaWxsUGFpbnRlcjo6
ZmlsbFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6S1JlbmRlcmluZ0ZpbGxQYWludGVyOjpzZXRG
aWxsUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpLUmVuZGVyaW5nRmlsbFBhaW50ZXI6Om9wYWNp
dHkpOgorICAgICAgICAoV2ViQ29yZTo6S1JlbmRlcmluZ0ZpbGxQYWludGVyOjpzZXRPcGFjaXR5
KToKKyAgICAgICAgKiBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRmlsbFBhaW50ZXIuaDoKKyAg
ICAgICAgKiBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudDo6S1JlbmRl
cmluZ1BhaW50U2VydmVyR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6S1JlbmRlcmluZ1Bh
aW50U2VydmVyR3JhZGllbnQ6On5LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudDo6Z3JhZGllbnRTdG9w
cyk6CisgICAgICAgIChXZWJDb3JlOjpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudDo6c2V0
R3JhZGllbnRTdG9wcyk6CisgICAgICAgIChXZWJDb3JlOjpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJH
cmFkaWVudDo6c3ByZWFkTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OktSZW5kZXJpbmdQYWlu
dFNlcnZlckdyYWRpZW50OjpzZXRHcmFkaWVudFNwcmVhZE1ldGhvZCk6CisgICAgICAgIChXZWJD
b3JlOjpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudDo6Ym91bmRpbmdCb3hNb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OktSZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50OjpzZXRCb3VuZGlu
Z0JveE1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6S1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGll
bnQ6OmdyYWRpZW50VHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OktSZW5kZXJpbmdQYWlu
dFNlcnZlckdyYWRpZW50OjpzZXRHcmFkaWVudFRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3Jl
OjpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJMaW5lYXJHcmFkaWVudDo6S1JlbmRlcmluZ1BhaW50U2Vy
dmVyTGluZWFyR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6S1JlbmRlcmluZ1BhaW50U2Vy
dmVyTGluZWFyR3JhZGllbnQ6On5LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJMaW5lYXJHcmFkaWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJMaW5lYXJHcmFkaWVudDo6
Z3JhZGllbnRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJM
aW5lYXJHcmFkaWVudDo6c2V0R3JhZGllbnRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpLUmVu
ZGVyaW5nUGFpbnRTZXJ2ZXJMaW5lYXJHcmFkaWVudDo6Z3JhZGllbnRFbmQpOgorICAgICAgICAo
V2ViQ29yZTo6S1JlbmRlcmluZ1BhaW50U2VydmVyTGluZWFyR3JhZGllbnQ6OnNldEdyYWRpZW50
RW5kKToKKyAgICAgICAgKFdlYkNvcmU6OktSZW5kZXJpbmdQYWludFNlcnZlclJhZGlhbEdyYWRp
ZW50OjpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJSYWRpYWxHcmFkaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJSYWRpYWxHcmFkaWVudDo6fktSZW5kZXJpbmdQYWlu
dFNlcnZlclJhZGlhbEdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OktSZW5kZXJpbmdQYWlu
dFNlcnZlclJhZGlhbEdyYWRpZW50OjpncmFkaWVudENlbnRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJSYWRpYWxHcmFkaWVudDo6c2V0R3JhZGllbnRDZW50ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6S1JlbmRlcmluZ1BhaW50U2VydmVyUmFkaWFsR3JhZGllbnQ6
OmdyYWRpZW50Rm9jYWwpOgorICAgICAgICAoV2ViQ29yZTo6S1JlbmRlcmluZ1BhaW50U2VydmVy
UmFkaWFsR3JhZGllbnQ6OnNldEdyYWRpZW50Rm9jYWwpOgorICAgICAgICAoV2ViQ29yZTo6S1Jl
bmRlcmluZ1BhaW50U2VydmVyUmFkaWFsR3JhZGllbnQ6OmdyYWRpZW50UmFkaXVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OktSZW5kZXJpbmdQYWludFNlcnZlclJhZGlhbEdyYWRpZW50OjpzZXRHcmFk
aWVudFJhZGl1cyk6CisgICAgICAgIChXZWJDb3JlOjpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFk
aWVudDo6bGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6S1JlbmRlcmluZ1BhaW50U2VydmVy
R3JhZGllbnQ6OnNldExpc3RlbmVyKToKKyAgICAgICAgKiBrY2FudmFzL2RldmljZS9LUmVuZGVy
aW5nUGFpbnRTZXJ2ZXJHcmFkaWVudC5oOgorICAgICAgICAqIGtjYW52YXMvZGV2aWNlL0tSZW5k
ZXJpbmdQYWludFNlcnZlclBhdHRlcm4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6S1JlbmRlcmlu
Z1BhaW50U2VydmVyUGF0dGVybjo6S1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVybik6CisgICAg
ICAgIChXZWJDb3JlOjpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuOjp+S1JlbmRlcmluZ1Bh
aW50U2VydmVyUGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpLUmVuZGVyaW5nUGFpbnRTZXJ2
ZXJQYXR0ZXJuOjpzZXRCYm94KToKKyAgICAgICAgKFdlYkNvcmU6OktSZW5kZXJpbmdQYWludFNl
cnZlclBhdHRlcm46OmJib3gpOgorICAgICAgICAoV2ViQ29yZTo6S1JlbmRlcmluZ1BhaW50U2Vy
dmVyUGF0dGVybjo6Ym91bmRpbmdCb3hNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OktSZW5kZXJp
bmdQYWludFNlcnZlclBhdHRlcm46OnNldEJvdW5kaW5nQm94TW9kZSk6CisgICAgICAgIChXZWJD
b3JlOjpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuOjp0aWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OktSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm46OnNldFRpbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6S1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVybjo6cGF0dGVyblRyYW5zZm9ybSk6Cisg
ICAgICAgIChXZWJDb3JlOjpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuOjpzZXRQYXR0ZXJu
VHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OktSZW5kZXJpbmdQYWludFNlcnZlclBhdHRl
cm46Omxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OktSZW5kZXJpbmdQYWludFNlcnZlclBh
dHRlcm46OnNldExpc3RlbmVyKToKKyAgICAgICAgKiBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5n
UGFpbnRTZXJ2ZXJQYXR0ZXJuLmg6CisgICAgICAgICoga2NhbnZhcy9kZXZpY2UvS1JlbmRlcmlu
Z1BhaW50U2VydmVyU29saWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6S1JlbmRlcmluZ1BhaW50
U2VydmVyU29saWQ6OktSZW5kZXJpbmdQYWludFNlcnZlclNvbGlkKToKKyAgICAgICAgKFdlYkNv
cmU6OktSZW5kZXJpbmdQYWludFNlcnZlclNvbGlkOjp+S1JlbmRlcmluZ1BhaW50U2VydmVyU29s
aWQpOgorICAgICAgICAoV2ViQ29yZTo6S1JlbmRlcmluZ1BhaW50U2VydmVyU29saWQ6OmNvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OktSZW5kZXJpbmdQYWludFNlcnZlclNvbGlkOjpzZXRDb2xv
cik6CisgICAgICAgICoga2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyU29saWQu
aDoKKyAgICAgICAgKiBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nU3Ryb2tlUGFpbnRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpLUmVuZGVyaW5nU3Ryb2tlUGFpbnRlcjo6S1JlbmRlcmluZ1N0
cm9rZVBhaW50ZXIpOgorICAgICAgICAoV2ViQ29yZTo6S1JlbmRlcmluZ1N0cm9rZVBhaW50ZXI6
On5LUmVuZGVyaW5nU3Ryb2tlUGFpbnRlcik6CisgICAgICAgIChXZWJDb3JlOjpLUmVuZGVyaW5n
U3Ryb2tlUGFpbnRlcjo6c3Ryb2tlV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6S1JlbmRlcmlu
Z1N0cm9rZVBhaW50ZXI6OnNldFN0cm9rZVdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OktSZW5k
ZXJpbmdTdHJva2VQYWludGVyOjpzdHJva2VNaXRlckxpbWl0KToKKyAgICAgICAgKFdlYkNvcmU6
OktSZW5kZXJpbmdTdHJva2VQYWludGVyOjpzZXRTdHJva2VNaXRlckxpbWl0KToKKyAgICAgICAg
KFdlYkNvcmU6OktSZW5kZXJpbmdTdHJva2VQYWludGVyOjpzdHJva2VDYXBTdHlsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpLUmVuZGVyaW5nU3Ryb2tlUGFpbnRlcjo6c2V0U3Ryb2tlQ2FwU3R5bGUp
OgorICAgICAgICAoV2ViQ29yZTo6S1JlbmRlcmluZ1N0cm9rZVBhaW50ZXI6OnN0cm9rZUpvaW5T
dHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpLUmVuZGVyaW5nU3Ryb2tlUGFpbnRlcjo6c2V0U3Ry
b2tlSm9pblN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OktSZW5kZXJpbmdTdHJva2VQYWludGVy
OjpkYXNoT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OktSZW5kZXJpbmdTdHJva2VQYWludGVy
OjpzZXREYXNoT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OktSZW5kZXJpbmdTdHJva2VQYWlu
dGVyOjpkYXNoQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6S1JlbmRlcmluZ1N0cm9rZVBhaW50
ZXI6OnNldERhc2hBcnJheSk6CisgICAgICAgIChXZWJDb3JlOjpLUmVuZGVyaW5nU3Ryb2tlUGFp
bnRlcjo6b3BhY2l0eSk6CisgICAgICAgIChXZWJDb3JlOjpLUmVuZGVyaW5nU3Ryb2tlUGFpbnRl
cjo6c2V0T3BhY2l0eSk6CisgICAgICAgIChXZWJDb3JlOjpLUmVuZGVyaW5nU3Ryb2tlUGFpbnRl
cjo6ZGlydHkpOgorICAgICAgICAoV2ViQ29yZTo6S1JlbmRlcmluZ1N0cm9rZVBhaW50ZXI6OnNl
dERpcnR5KToKKyAgICAgICAgKiBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nU3Ryb2tlUGFpbnRl
ci5oOgorCiAyMDA2LTA5LTE0ICBNYXJrIFJvd2UgIDxvcGVuZGFyd2luLm9yZ0BiZGFzaC5uZXQu
bno+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbS4KSW5kZXg6IFdlYkNvcmUva2NhbnZhcy9S
ZW5kZXJQYXRoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tjYW52YXMvUmVuZGVyUGF0aC5j
cHAJKHJldmlzaW9uIDE2MzY3KQorKysgV2ViQ29yZS9rY2FudmFzL1JlbmRlclBhdGguY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zNywzNiArMzcsMjUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jbGFzcyBSZW5kZXJQYXRoOjpQcml2YXRlIHsKLXB1YmxpYzoKLSAgICBQYXRoIHBhdGg7Ci0K
LSAgICBGbG9hdFJlY3QgZmlsbEJCb3g7Ci0gICAgRmxvYXRSZWN0IHN0cm9rZUJib3g7Ci0gICAg
QWZmaW5lVHJhbnNmb3JtIG1hdHJpeDsKLSAgICBJbnRSZWN0IGFic29sdXRlQm91bmRzOwotfTsK
LQogLy8gUmVuZGVyUGF0aAogUmVuZGVyUGF0aDo6UmVuZGVyUGF0aChSZW5kZXJTdHlsZSogc3R5
bGUsIFNWR1N0eWxlZEVsZW1lbnQqIG5vZGUpCi0gICAgOiBSZW5kZXJPYmplY3Qobm9kZSksIGQo
bmV3IFByaXZhdGUpCisgICAgOiBSZW5kZXJPYmplY3Qobm9kZSkKIHsKICAgICBBU1NFUlQoc3R5
bGUgIT0gMCk7CiB9CiAKIFJlbmRlclBhdGg6On5SZW5kZXJQYXRoKCkKIHsKLSAgICBkZWxldGUg
ZDsKIH0KIAogQWZmaW5lVHJhbnNmb3JtIFJlbmRlclBhdGg6OmxvY2FsVHJhbnNmb3JtKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gZC0+bWF0cml4OworICAgIHJldHVybiBtX21hdHJpeDsKIH0KIAog
dm9pZCBSZW5kZXJQYXRoOjpzZXRMb2NhbFRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFuc2Zvcm0g
Jm1hdHJpeCkKIHsKLSAgICBkLT5tYXRyaXggPSBtYXRyaXg7CisgICAgbV9tYXRyaXggPSBtYXRy
aXg7CiB9CiAKIApAQCAtODIsNyArNzEsNyBAQCBGbG9hdFBvaW50IFJlbmRlclBhdGg6Om1hcEFi
c29sdXRlUG9pbnRUCiAKIGJvb2wgUmVuZGVyUGF0aDo6ZmlsbENvbnRhaW5zKGNvbnN0IEZsb2F0
UG9pbnQmIHBvaW50LCBib29sIHJlcXVpcmVzRmlsbCkgY29uc3QKIHsKLSAgICBpZiAoZC0+cGF0
aC5pc0VtcHR5KCkpCisgICAgaWYgKG1fcGF0aC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIGlmIChyZXF1aXJlc0ZpbGwgJiYgIUtTVkdQYWludGVyRmFjdG9yeTo6Zmls
bFBhaW50U2VydmVyKHN0eWxlKCksIHRoaXMpKQpAQCAtOTQsMzAgKzgzLDMwIEBAIGJvb2wgUmVu
ZGVyUGF0aDo6ZmlsbENvbnRhaW5zKGNvbnN0IEZsb2EKIAogRmxvYXRSZWN0IFJlbmRlclBhdGg6
OnJlbGF0aXZlQkJveChib29sIGluY2x1ZGVTdHJva2UpIGNvbnN0CiB7Ci0gICAgaWYgKGQtPnBh
dGguaXNFbXB0eSgpKQorICAgIGlmIChtX3BhdGguaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4g
RmxvYXRSZWN0KCk7CiAKICAgICBpZiAoaW5jbHVkZVN0cm9rZSkgewotICAgICAgICBpZiAoZC0+
c3Ryb2tlQmJveC5pc0VtcHR5KCkpCi0gICAgICAgICAgICBkLT5zdHJva2VCYm94ID0gc3Ryb2tl
QkJveCgpOwotICAgICAgICByZXR1cm4gZC0+c3Ryb2tlQmJveDsKKyAgICAgICAgaWYgKG1fc3Ry
b2tlQmJveC5pc0VtcHR5KCkpCisgICAgICAgICAgICBtX3N0cm9rZUJib3ggPSBzdHJva2VCQm94
KCk7CisgICAgICAgIHJldHVybiBtX3N0cm9rZUJib3g7CiAgICAgfQogCi0gICAgaWYgKGQtPmZp
bGxCQm94LmlzRW1wdHkoKSkKLSAgICAgICAgZC0+ZmlsbEJCb3ggPSBwYXRoKCkuYm91bmRpbmdS
ZWN0KCk7Ci0gICAgcmV0dXJuIGQtPmZpbGxCQm94OworICAgIGlmIChtX2ZpbGxCQm94LmlzRW1w
dHkoKSkKKyAgICAgICAgbV9maWxsQkJveCA9IHBhdGgoKS5ib3VuZGluZ1JlY3QoKTsKKyAgICBy
ZXR1cm4gbV9maWxsQkJveDsKIH0KIAogdm9pZCBSZW5kZXJQYXRoOjpzZXRQYXRoKGNvbnN0IFBh
dGgmIG5ld1BhdGgpCiB7Ci0gICAgZC0+cGF0aCA9IG5ld1BhdGg7Ci0gICAgZC0+c3Ryb2tlQmJv
eCA9IEZsb2F0UmVjdCgpOwotICAgIGQtPmZpbGxCQm94ID0gRmxvYXRSZWN0KCk7CisgICAgbV9w
YXRoID0gbmV3UGF0aDsKKyAgICBtX3N0cm9rZUJib3ggPSBGbG9hdFJlY3QoKTsKKyAgICBtX2Zp
bGxCQm94ID0gRmxvYXRSZWN0KCk7CiB9CiAKIGNvbnN0IFBhdGgmIFJlbmRlclBhdGg6OnBhdGgo
KSBjb25zdAogewotICAgIHJldHVybiBkLT5wYXRoOworICAgIHJldHVybiBtX3BhdGg7CiB9CiAK
IHZvaWQgUmVuZGVyUGF0aDo6bGF5b3V0KCkKQEAgLTEyOSwxNCArMTE4LDE0IEBAIHZvaWQgUmVu
ZGVyUGF0aDo6bGF5b3V0KCkKICAgICBJbnRSZWN0IG9sZEJvdW5kczsKICAgICBib29sIGNoZWNr
Rm9yUmVwYWludCA9IGNoZWNrRm9yUmVwYWludER1cmluZ0xheW91dCgpOwogICAgIGlmIChzZWxm
TmVlZHNMYXlvdXQoKSAmJiBjaGVja0ZvclJlcGFpbnQpCi0gICAgICAgIG9sZEJvdW5kcyA9IGQt
PmFic29sdXRlQm91bmRzOworICAgICAgICBvbGRCb3VuZHMgPSBtX2Fic29sdXRlQm91bmRzOwog
CiAgICAgc3RhdGljX2Nhc3Q8U1ZHU3R5bGVkRWxlbWVudCo+KGVsZW1lbnQoKSktPm5vdGlmeUF0
dHJpYnV0ZUNoYW5nZSgpOwogCi0gICAgZC0+YWJzb2x1dGVCb3VuZHMgPSBnZXRBYnNvbHV0ZVJl
cGFpbnRSZWN0KCk7CisgICAgbV9hYnNvbHV0ZUJvdW5kcyA9IGdldEFic29sdXRlUmVwYWludFJl
Y3QoKTsKIAotICAgIHNldFdpZHRoKGQtPmFic29sdXRlQm91bmRzLndpZHRoKCkpOwotICAgIHNl
dEhlaWdodChkLT5hYnNvbHV0ZUJvdW5kcy5oZWlnaHQoKSk7CisgICAgc2V0V2lkdGgobV9hYnNv
bHV0ZUJvdW5kcy53aWR0aCgpKTsKKyAgICBzZXRIZWlnaHQobV9hYnNvbHV0ZUJvdW5kcy5oZWln
aHQoKSk7CiAKICAgICBpZiAoc2VsZk5lZWRzTGF5b3V0KCkgJiYgY2hlY2tGb3JSZXBhaW50KQog
ICAgICAgICByZXBhaW50QWZ0ZXJMYXlvdXRJZk5lZWRlZChvbGRCb3VuZHMsIG9sZEJvdW5kcyk7
CkluZGV4OiBXZWJDb3JlL2tjYW52YXMvUmVuZGVyUGF0aC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUva2NhbnZhcy9SZW5kZXJQYXRoLmgJKHJldmlzaW9uIDE2MzY3KQorKysgV2ViQ29yZS9rY2Fu
dmFzL1JlbmRlclBhdGguaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2RlZmlu
ZSBSZW5kZXJQYXRoX0gKICNpZmRlZiBTVkdfU1VQUE9SVAogCisjaW5jbHVkZSAiQWZmaW5lVHJh
bnNmb3JtLmgiCiAjaW5jbHVkZSAiRGVwcmVjYXRlZFZhbHVlTGlzdC5oIgogI2luY2x1ZGUgIkZs
b2F0UmVjdC5oIgogCkBAIC05OSw4ICsxMDAsMTIgQEAgcHJpdmF0ZToKICAgICAKICAgICBQb2lu
dGVyRXZlbnRzSGl0UnVsZXMgcG9pbnRlckV2ZW50c0hpdFJ1bGVzKCk7CiAKLSAgICBjbGFzcyBQ
cml2YXRlOwotICAgIFByaXZhdGUgKmQ7CisgICAgUGF0aCBtX3BhdGg7CisKKyAgICBtdXRhYmxl
IEZsb2F0UmVjdCBtX2ZpbGxCQm94OworICAgIG11dGFibGUgRmxvYXRSZWN0IG1fc3Ryb2tlQmJv
eDsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbV9tYXRyaXg7CisgICAgSW50UmVjdCBtX2Fic29sdXRl
Qm91bmRzOwogfTsKIAogfQpJbmRleDogV2ViQ29yZS9rY2FudmFzL1JlbmRlclNWR0NvbnRhaW5l
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rY2FudmFzL1JlbmRlclNWR0NvbnRhaW5lci5j
cHAJKHJldmlzaW9uIDE2MzY3KQorKysgV2ViQ29yZS9rY2FudmFzL1JlbmRlclNWR0NvbnRhaW5l
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDUxICszMSwzNiBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIFJlbmRlclNWR0NvbnRhaW5lcjo6UHJpdmF0ZQotewotcHVibGljOgot
ICAgIFByaXZhdGUoKSA6IGRyYXdzQ29udGVudHModHJ1ZSksIHNsaWNlKGZhbHNlKSB7IH0gICAg
Ci0gICAgflByaXZhdGUoKSB7IH0KLQotICAgIGJvb2wgZHJhd3NDb250ZW50cyA6IDE7Ci0gICAg
Ym9vbCBzbGljZSA6IDE7Ci0gICAgQWZmaW5lVHJhbnNmb3JtIG1hdHJpeDsKLSAgICAKLSAgICBG
bG9hdFJlY3Qgdmlld3BvcnQ7Ci0gICAgRmxvYXRSZWN0IHZpZXdCb3g7Ci0gICAgS0NBbGlnbiBh
bGlnbjsKLSAgICBJbnRSZWN0IGFic29sdXRlQm91bmRzOwotfTsKLQogUmVuZGVyU1ZHQ29udGFp
bmVyOjpSZW5kZXJTVkdDb250YWluZXIoU1ZHU3R5bGVkRWxlbWVudCAqbm9kZSkKLTogUmVuZGVy
Q29udGFpbmVyKG5vZGUpLCBkKG5ldyBQcml2YXRlKCkpCisgICAgOiBSZW5kZXJDb250YWluZXIo
bm9kZSkKKyAgICAsIG1fZHJhd3NDb250ZW50cyh0cnVlKQorICAgICwgbV9zbGljZShmYWxzZSkK
IHsKICAgICBzZXRSZXBsYWNlZCh0cnVlKTsKIH0KIAogUmVuZGVyU1ZHQ29udGFpbmVyOjp+UmVu
ZGVyU1ZHQ29udGFpbmVyKCkKIHsKLSAgICBkZWxldGUgZDsKIH0KIAogYm9vbCBSZW5kZXJTVkdD
b250YWluZXI6OmRyYXdzQ29udGVudHMoKSBjb25zdAogewotICAgIHJldHVybiBkLT5kcmF3c0Nv
bnRlbnRzOworICAgIHJldHVybiBtX2RyYXdzQ29udGVudHM7CiB9CiAKIHZvaWQgUmVuZGVyU1ZH
Q29udGFpbmVyOjpzZXREcmF3c0NvbnRlbnRzKGJvb2wgZHJhd3NDb250ZW50cykKIHsKLSAgICBk
LT5kcmF3c0NvbnRlbnRzID0gZHJhd3NDb250ZW50czsKKyAgICBtX2RyYXdzQ29udGVudHMgPSBk
cmF3c0NvbnRlbnRzOwogfQogCiBBZmZpbmVUcmFuc2Zvcm0gUmVuZGVyU1ZHQ29udGFpbmVyOjps
b2NhbFRyYW5zZm9ybSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGQtPm1hdHJpeDsKKyAgICByZXR1
cm4gbV9tYXRyaXg7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHQ29udGFpbmVyOjpzZXRMb2NhbFRyYW5z
Zm9ybShjb25zdCBBZmZpbmVUcmFuc2Zvcm0gJm1hdHJpeCkKK3ZvaWQgUmVuZGVyU1ZHQ29udGFp
bmVyOjpzZXRMb2NhbFRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIG1hdHJpeCkKIHsK
LSAgICBkLT5tYXRyaXggPSBtYXRyaXg7CisgICAgbV9tYXRyaXggPSBtYXRyaXg7CiB9CiAKIGJv
b2wgUmVuZGVyU1ZHQ29udGFpbmVyOjpjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdApAQCAtMTE0LDcg
Kzk5LDcgQEAgdm9pZCBSZW5kZXJTVkdDb250YWluZXI6OmxheW91dCgpCiAgICAgSW50UmVjdCBv
bGRCb3VuZHM7CiAgICAgYm9vbCBjaGVja0ZvclJlcGFpbnQgPSBjaGVja0ZvclJlcGFpbnREdXJp
bmdMYXlvdXQoKTsKICAgICBpZiAoc2VsZk5lZWRzTGF5b3V0KCkgJiYgY2hlY2tGb3JSZXBhaW50
KQotICAgICAgICBvbGRCb3VuZHMgPSBkLT5hYnNvbHV0ZUJvdW5kczsKKyAgICAgICAgb2xkQm91
bmRzID0gbV9hYnNvbHV0ZUJvdW5kczsKIAogICAgIFJlbmRlck9iamVjdCogY2hpbGQgPSBmaXJz
dENoaWxkKCk7CiAgICAgd2hpbGUgKGNoaWxkKSB7CkBAIC0xMjYsNyArMTExLDcgQEAgdm9pZCBS
ZW5kZXJTVkdDb250YWluZXI6OmxheW91dCgpCiAgICAgY2FsY1dpZHRoKCk7CiAgICAgY2FsY0hl
aWdodCgpOwogCi0gICAgZC0+YWJzb2x1dGVCb3VuZHMgPSBnZXRBYnNvbHV0ZVJlcGFpbnRSZWN0
KCk7CisgICAgbV9hYnNvbHV0ZUJvdW5kcyA9IGdldEFic29sdXRlUmVwYWludFJlY3QoKTsKIAog
ICAgIGlmIChzZWxmTmVlZHNMYXlvdXQoKSAmJiBjaGVja0ZvclJlcGFpbnQpCiAgICAgICAgIHJl
cGFpbnRBZnRlckxheW91dElmTmVlZGVkKG9sZEJvdW5kcywgb2xkQm91bmRzKTsKQEAgLTEzOCw4
ICsxMjMsOCBAQCB2b2lkIFJlbmRlclNWR0NvbnRhaW5lcjo6cGFpbnQoUGFpbnRJbmZvCiAgICAg
ICAgIHJldHVybjsKICAgICAKICAgICAvLyBObyBvbmUgc2hvdWxkIGJlIHRyYW5zZm9ybWluZyB1
cyB2aWEgdGhlc2UuCi0gICAgLy9BU1NFUlQoZC0+eCA9PSAwKTsKLSAgICAvL0FTU0VSVChkLT55
ID09IDApOworICAgIC8vQVNTRVJUKG1feCA9PSAwKTsKKyAgICAvL0FTU0VSVChtX3kgPT0gMCk7
CiAgICAgICAgIAogICAgIGlmIChzaG91bGRQYWludEJhY2tncm91bmRPckJvcmRlcigpICYmIChw
YWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZUZvcmVncm91bmQgfHwgcGFpbnRJbmZvLnBoYXNl
ID09IFBhaW50UGhhc2VTZWxlY3Rpb24pKSAKICAgICAgICAgcGFpbnRCb3hEZWNvcmF0aW9ucyhw
YWludEluZm8sIHBhcmVudFgsIHBhcmVudFkpOwpAQCAtMjE0LDMyICsxOTksMzIgQEAgdm9pZCBS
ZW5kZXJTVkdDb250YWluZXI6OnBhaW50KFBhaW50SW5mbwogCiB2b2lkIFJlbmRlclNWR0NvbnRh
aW5lcjo6c2V0Vmlld3BvcnQoY29uc3QgRmxvYXRSZWN0JiB2aWV3cG9ydCkKIHsKLSAgICBkLT52
aWV3cG9ydCA9IHZpZXdwb3J0OworICAgIG1fdmlld3BvcnQgPSB2aWV3cG9ydDsKIH0KIAogRmxv
YXRSZWN0IFJlbmRlclNWR0NvbnRhaW5lcjo6dmlld3BvcnQoKSBjb25zdAogewotICAgcmV0dXJu
IGQtPnZpZXdwb3J0OworICAgcmV0dXJuIG1fdmlld3BvcnQ7CiB9CiAKIHZvaWQgUmVuZGVyU1ZH
Q29udGFpbmVyOjpzZXRWaWV3Qm94KGNvbnN0IEZsb2F0UmVjdCYgdmlld0JveCkKIHsKLSAgICBk
LT52aWV3Qm94ID0gdmlld0JveDsKKyAgICBtX3ZpZXdCb3ggPSB2aWV3Qm94OwogfQogCiBGbG9h
dFJlY3QgUmVuZGVyU1ZHQ29udGFpbmVyOjp2aWV3Qm94KCkgY29uc3QKIHsKLSAgICByZXR1cm4g
ZC0+dmlld0JveDsKKyAgICByZXR1cm4gbV92aWV3Qm94OwogfQogCiB2b2lkIFJlbmRlclNWR0Nv
bnRhaW5lcjo6c2V0QWxpZ24oS0NBbGlnbiBhbGlnbikKIHsKLSAgICBkLT5hbGlnbiA9IGFsaWdu
OworICAgIG1fYWxpZ24gPSBhbGlnbjsKIH0KIAogS0NBbGlnbiBSZW5kZXJTVkdDb250YWluZXI6
OmFsaWduKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZC0+YWxpZ247CisgICAgcmV0dXJuIG1fYWxp
Z247CiB9CiAKIEFmZmluZVRyYW5zZm9ybSBSZW5kZXJTVkdDb250YWluZXI6OnZpZXdwb3J0VHJh
bnNmb3JtKCkgY29uc3QKQEAgLTI4NSw3ICsyNzAsNyBAQCBBZmZpbmVUcmFuc2Zvcm0gUmVuZGVy
U1ZHQ29udGFpbmVyOjphYnNvCiAgICAgcmV0dXJuIHZpZXdwb3J0VHJhbnNmb3JtKCkgKiBSZW5k
ZXJDb250YWluZXI6OmFic29sdXRlVHJhbnNmb3JtKCk7CiB9CiAKLWJvb2wgUmVuZGVyU1ZHQ29u
dGFpbmVyOjpmaWxsQ29udGFpbnMoY29uc3QgRmxvYXRQb2ludCAmcCkgY29uc3QKK2Jvb2wgUmVu
ZGVyU1ZHQ29udGFpbmVyOjpmaWxsQ29udGFpbnMoY29uc3QgRmxvYXRQb2ludCYgcCkgY29uc3QK
IHsKICAgICBSZW5kZXJPYmplY3QgKmN1cnJlbnQgPSBmaXJzdENoaWxkKCk7CiAgICAgd2hpbGUg
KGN1cnJlbnQgIT0gMCkgewpAQCAtMjk3LDcgKzI4Miw3IEBAIGJvb2wgUmVuZGVyU1ZHQ29udGFp
bmVyOjpmaWxsQ29udGFpbnMoY28KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgUmVuZGVy
U1ZHQ29udGFpbmVyOjpzdHJva2VDb250YWlucyhjb25zdCBGbG9hdFBvaW50ICZwKSBjb25zdAor
Ym9vbCBSZW5kZXJTVkdDb250YWluZXI6OnN0cm9rZUNvbnRhaW5zKGNvbnN0IEZsb2F0UG9pbnQm
IHApIGNvbnN0CiB7CiAgICAgUmVuZGVyT2JqZWN0ICpjdXJyZW50ID0gZmlyc3RDaGlsZCgpOwog
ICAgIHdoaWxlIChjdXJyZW50ICE9IDApIHsKQEAgLTMyNSwxMiArMzEwLDEyIEBAIEZsb2F0UmVj
dCBSZW5kZXJTVkdDb250YWluZXI6OnJlbGF0aXZlQkIKIAogdm9pZCBSZW5kZXJTVkdDb250YWlu
ZXI6OnNldFNsaWNlKGJvb2wgc2xpY2UpCiB7Ci0gICAgZC0+c2xpY2UgPSBzbGljZTsKKyAgICBt
X3NsaWNlID0gc2xpY2U7CiB9CiAKIGJvb2wgUmVuZGVyU1ZHQ29udGFpbmVyOjpzbGljZSgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIGQtPnNsaWNlOworICAgIHJldHVybiBtX3NsaWNlOwogfQogCiBB
ZmZpbmVUcmFuc2Zvcm0gUmVuZGVyU1ZHQ29udGFpbmVyOjpnZXRBc3BlY3RSYXRpbyhjb25zdCBG
bG9hdFJlY3QmIGxvZ2ljYWwsIGNvbnN0IEZsb2F0UmVjdCYgcGh5c2ljYWwpIGNvbnN0CkluZGV4
OiBXZWJDb3JlL2tjYW52YXMvUmVuZGVyU1ZHQ29udGFpbmVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9rY2FudmFzL1JlbmRlclNWR0NvbnRhaW5lci5oCShyZXZpc2lvbiAxNjM2NykKKysrIFdl
YkNvcmUva2NhbnZhcy9SZW5kZXJTVkdDb250YWluZXIuaAkod29ya2luZyBjb3B5KQpAQCAtOTgs
OCArOTgsMTQgQEAgcHJpdmF0ZToKICAgICBBZmZpbmVUcmFuc2Zvcm0gZ2V0QXNwZWN0UmF0aW8o
Y29uc3QgRmxvYXRSZWN0JiBsb2dpY2FsLCBjb25zdCBGbG9hdFJlY3QmIHBoeXNpY2FsKSBjb25z
dDsKICAgICBBZmZpbmVUcmFuc2Zvcm0gdmlld3BvcnRUcmFuc2Zvcm0oKSBjb25zdDsKIAotICAg
IGNsYXNzIFByaXZhdGU7Ci0gICAgUHJpdmF0ZSogZDsKKyAgICBib29sIG1fZHJhd3NDb250ZW50
cyA6IDE7CisgICAgYm9vbCBtX3NsaWNlIDogMTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbV9tYXRy
aXg7CisgICAgCisgICAgRmxvYXRSZWN0IG1fdmlld3BvcnQ7CisgICAgRmxvYXRSZWN0IG1fdmll
d0JveDsKKyAgICBLQ0FsaWduIG1fYWxpZ247CisgICAgSW50UmVjdCBtX2Fic29sdXRlQm91bmRz
OwogfTsKIAogfQpJbmRleDogV2ViQ29yZS9rY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRmlsbFBh
aW50ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva2NhbnZhcy9kZXZpY2UvS1JlbmRlcmlu
Z0ZpbGxQYWludGVyLmNwcAkocmV2aXNpb24gMTYzNjcpCisrKyBXZWJDb3JlL2tjYW52YXMvZGV2
aWNlL0tSZW5kZXJpbmdGaWxsUGFpbnRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDQ2ICsy
OCwzNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEtSZW5kZXJpbmdGaWxsUGFp
bnRlcjo6UHJpdmF0ZQotewotcHVibGljOgotICAgIFByaXZhdGUoKQotICAgIHsKLSAgICAgICAg
b3BhY2l0eSA9IDEuMDsKLSAgICAgICAgZmlsbFJ1bGUgPSBSVUxFX05PTlpFUk87Ci0gICAgfQot
Ci0gICAgZmxvYXQgb3BhY2l0eTsKLSAgICBXaW5kUnVsZSBmaWxsUnVsZTsKLX07Ci0KLUtSZW5k
ZXJpbmdGaWxsUGFpbnRlcjo6S1JlbmRlcmluZ0ZpbGxQYWludGVyKCkgOiBkKG5ldyBQcml2YXRl
KCkpCitLUmVuZGVyaW5nRmlsbFBhaW50ZXI6OktSZW5kZXJpbmdGaWxsUGFpbnRlcigpCisgICAg
IDogbV9vcGFjaXR5KDEuMCkKKyAgICAgLCBtX2ZpbGxSdWxlKFJVTEVfTk9OWkVSTykKIHsKIH0K
IAogS1JlbmRlcmluZ0ZpbGxQYWludGVyOjp+S1JlbmRlcmluZ0ZpbGxQYWludGVyKCkKIHsKLSAg
ICBkZWxldGUgZDsKIH0KIAogV2luZFJ1bGUgS1JlbmRlcmluZ0ZpbGxQYWludGVyOjpmaWxsUnVs
ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGQtPmZpbGxSdWxlOworICAgIHJldHVybiBtX2ZpbGxS
dWxlOwogfQogCiB2b2lkIEtSZW5kZXJpbmdGaWxsUGFpbnRlcjo6c2V0RmlsbFJ1bGUoV2luZFJ1
bGUgcnVsZSkKIHsKLSAgICBkLT5maWxsUnVsZSA9IHJ1bGU7CisgICAgbV9maWxsUnVsZSA9IHJ1
bGU7CiB9CiAKIGZsb2F0IEtSZW5kZXJpbmdGaWxsUGFpbnRlcjo6b3BhY2l0eSgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIGQtPm9wYWNpdHk7CisgICAgcmV0dXJuIG1fb3BhY2l0eTsKIH0KIAogdm9p
ZCBLUmVuZGVyaW5nRmlsbFBhaW50ZXI6OnNldE9wYWNpdHkoZmxvYXQgb3BhY2l0eSkKIHsKLSAg
ICBkLT5vcGFjaXR5ID0gb3BhY2l0eTsKKyAgICBtX29wYWNpdHkgPSBvcGFjaXR5OwogfQogCiB9
CkluZGV4OiBXZWJDb3JlL2tjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdGaWxsUGFpbnRlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUva2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0ZpbGxQYWludGVy
LmgJKHJldmlzaW9uIDE2MzY3KQorKysgV2ViQ29yZS9rY2FudmFzL2RldmljZS9LUmVuZGVyaW5n
RmlsbFBhaW50ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsOCArNDMsOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRPcGFjaXR5KGZsb2F0IG9wYWNpdHkpOwogCiBwcml2YXRlOgotICAgIGNsYXNz
IFByaXZhdGU7Ci0gICAgUHJpdmF0ZSAqZDsKKyAgICBmbG9hdCBtX29wYWNpdHk7CisgICAgV2lu
ZFJ1bGUgbV9maWxsUnVsZTsKKwogfTsKIAogfQpJbmRleDogV2ViQ29yZS9rY2FudmFzL2Rldmlj
ZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9rY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudC5jcHAJKHJldmlz
aW9uIDE2MzY3KQorKysgV2ViQ29yZS9rY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2
ZXJHcmFkaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDMxICs2MCwyMSBAQCBUZXh0U3Ry
ZWFtICZvcGVyYXRvcjw8KFRleHRTdHJlYW0gJnRzLCBjCiB9CiAKIC8vIEtSZW5kZXJpbmdQYWlu
dFNlcnZlckdyYWRpZW50Ci1jbGFzcyBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudDo6UHJp
dmF0ZQotewotcHVibGljOgotICAgIFByaXZhdGUoKSB7IGJvdW5kaW5nQm94TW9kZSA9IHRydWU7
IHNwcmVhZE1ldGhvZCA9IFNQUkVBRE1FVEhPRF9QQUQ7IGxpc3RlbmVyID0gMDsgfQotICAgIH5Q
cml2YXRlKCkgeyB9Ci0KLSAgICBWZWN0b3I8S0NHcmFkaWVudFN0b3A+IHN0b3BzOwotICAgIEtD
R3JhZGllbnRTcHJlYWRNZXRob2Qgc3ByZWFkTWV0aG9kOwotICAgIGJvb2wgYm91bmRpbmdCb3hN
b2RlOwotICAgIEFmZmluZVRyYW5zZm9ybSBncmFkaWVudFRyYW5zZm9ybTsKLSAgICBLQ2FudmFz
UmVzb3VyY2VMaXN0ZW5lciAqbGlzdGVuZXI7Ci19OwotCi1LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJH
cmFkaWVudDo6S1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQoKSA6IEtSZW5kZXJpbmdQYWlu
dFNlcnZlcigpLCBkKG5ldyBQcml2YXRlKCkpCitLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVu
dDo6S1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQoKQorICAgIDogS1JlbmRlcmluZ1BhaW50
U2VydmVyKCkKKyAgICAsIG1fc3ByZWFkTWV0aG9kKFNQUkVBRE1FVEhPRF9QQUQpCisgICAgLCBt
X2JvdW5kaW5nQm94TW9kZSh0cnVlKQorICAgICwgbV9saXN0ZW5lcigwKQogewogfQogCiBLUmVu
ZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudDo6fktSZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50
KCkKIHsKLSAgICBkZWxldGUgZDsKIH0KIAogY29uc3QgVmVjdG9yPEtDR3JhZGllbnRTdG9wPiYg
S1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQ6OmdyYWRpZW50U3RvcHMoKSBjb25zdAogewot
ICAgIHJldHVybiBkLT5zdG9wczsKKyAgICByZXR1cm4gbV9zdG9wczsKIH0KIAogc3RhdGljIGlu
bGluZSBib29sIGNvbXBhcmVTdG9wT2Zmc2V0KGNvbnN0IEtDR3JhZGllbnRTdG9wJiBmaXJzdCwg
Y29uc3QgS0NHcmFkaWVudFN0b3AmIHNlY29uZCkKQEAgLTk0LDQzICs4NCw0MyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgY29tcGFyZVN0b3BPZmZzZXQoY29uCiAKIHZvaWQgS1JlbmRlcmluZ1BhaW50
U2VydmVyR3JhZGllbnQ6OnNldEdyYWRpZW50U3RvcHMoY29uc3QgVmVjdG9yPEtDR3JhZGllbnRT
dG9wPiYgc3RvcHMpCiB7Ci0gICAgZC0+c3RvcHMgPSBzdG9wczsKLSAgICBzdGQ6OnNvcnQoZC0+
c3RvcHMuYmVnaW4oKSwgZC0+c3RvcHMuZW5kKCksIGNvbXBhcmVTdG9wT2Zmc2V0KTsKKyAgICBt
X3N0b3BzID0gc3RvcHM7CisgICAgc3RkOjpzb3J0KG1fc3RvcHMuYmVnaW4oKSwgbV9zdG9wcy5l
bmQoKSwgY29tcGFyZVN0b3BPZmZzZXQpOwogfSAKIAogdm9pZCBLUmVuZGVyaW5nUGFpbnRTZXJ2
ZXJHcmFkaWVudDo6c2V0R3JhZGllbnRTdG9wcyhLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVu
dCogc2VydmVyKQogewotICAgIGQtPnN0b3BzID0gc2VydmVyLT5ncmFkaWVudFN0b3BzKCk7Cisg
ICAgbV9zdG9wcyA9IHNlcnZlci0+Z3JhZGllbnRTdG9wcygpOwogfQogCiBLQ0dyYWRpZW50U3By
ZWFkTWV0aG9kIEtSZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50OjpzcHJlYWRNZXRob2QoKSBj
b25zdAogewotICAgIHJldHVybiBkLT5zcHJlYWRNZXRob2Q7CisgICAgcmV0dXJuIG1fc3ByZWFk
TWV0aG9kOwogfQogCiB2b2lkIEtSZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50OjpzZXRHcmFk
aWVudFNwcmVhZE1ldGhvZChjb25zdCBLQ0dyYWRpZW50U3ByZWFkTWV0aG9kICZtZXRob2QpCiB7
Ci0gICAgZC0+c3ByZWFkTWV0aG9kID0gbWV0aG9kOworICAgIG1fc3ByZWFkTWV0aG9kID0gbWV0
aG9kOwogfQogCiBib29sIEtSZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50Ojpib3VuZGluZ0Jv
eE1vZGUoKSBjb25zdAogewotICAgIHJldHVybiBkLT5ib3VuZGluZ0JveE1vZGU7CisgICAgcmV0
dXJuIG1fYm91bmRpbmdCb3hNb2RlOwogfQogCiB2b2lkIEtSZW5kZXJpbmdQYWludFNlcnZlckdy
YWRpZW50OjpzZXRCb3VuZGluZ0JveE1vZGUoYm9vbCBtb2RlKQogewotICAgIGQtPmJvdW5kaW5n
Qm94TW9kZSA9IG1vZGU7CisgICAgbV9ib3VuZGluZ0JveE1vZGUgPSBtb2RlOwogfQogCiBBZmZp
bmVUcmFuc2Zvcm0gS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQ6OmdyYWRpZW50VHJhbnNm
b3JtKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZC0+Z3JhZGllbnRUcmFuc2Zvcm07CisgICAgcmV0
dXJuIG1fZ3JhZGllbnRUcmFuc2Zvcm07CiB9CiAKIHZvaWQgS1JlbmRlcmluZ1BhaW50U2VydmVy
R3JhZGllbnQ6OnNldEdyYWRpZW50VHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0
KQogewotICAgIGQtPmdyYWRpZW50VHJhbnNmb3JtID0gbWF0OworICAgIG1fZ3JhZGllbnRUcmFu
c2Zvcm0gPSBtYXQ7CiB9CiAKIFRleHRTdHJlYW0gJktSZW5kZXJpbmdQYWludFNlcnZlckdyYWRp
ZW50OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0gJnRzKSBjb25zdApAQCAtMTQ4
LDQyICsxMzgsMzMgQEAgVGV4dFN0cmVhbSAmS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbgog
fQogCiAvLyBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJMaW5lYXJHcmFkaWVudAotY2xhc3MgS1JlbmRl
cmluZ1BhaW50U2VydmVyTGluZWFyR3JhZGllbnQ6OlByaXZhdGUKLXsKLXB1YmxpYzoKLSAgICBQ
cml2YXRlKCkgeyB9Ci0gICAgflByaXZhdGUoKSB7IH0KLQotICAgIEZsb2F0UG9pbnQgc3RhcnQs
IGVuZDsKLX07Ci0KLUtSZW5kZXJpbmdQYWludFNlcnZlckxpbmVhckdyYWRpZW50OjpLUmVuZGVy
aW5nUGFpbnRTZXJ2ZXJMaW5lYXJHcmFkaWVudCgpIDogS1JlbmRlcmluZ1BhaW50U2VydmVyR3Jh
ZGllbnQoKSwgZChuZXcgUHJpdmF0ZSgpKQorS1JlbmRlcmluZ1BhaW50U2VydmVyTGluZWFyR3Jh
ZGllbnQ6OktSZW5kZXJpbmdQYWludFNlcnZlckxpbmVhckdyYWRpZW50KCkKKyAgICA6IEtSZW5k
ZXJpbmdQYWludFNlcnZlckdyYWRpZW50KCkKIHsKIH0KIAogS1JlbmRlcmluZ1BhaW50U2VydmVy
TGluZWFyR3JhZGllbnQ6On5LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJMaW5lYXJHcmFkaWVudCgpCiB7
Ci0gICAgZGVsZXRlIGQ7CiB9CiAKIEZsb2F0UG9pbnQgS1JlbmRlcmluZ1BhaW50U2VydmVyTGlu
ZWFyR3JhZGllbnQ6OmdyYWRpZW50U3RhcnQoKSBjb25zdAogewotICAgIHJldHVybiBkLT5zdGFy
dDsKKyAgICByZXR1cm4gbV9zdGFydDsKIH0KIAogdm9pZCBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJM
aW5lYXJHcmFkaWVudDo6c2V0R3JhZGllbnRTdGFydChjb25zdCBGbG9hdFBvaW50ICZzdGFydCkK
IHsKLSAgICBkLT5zdGFydCA9IHN0YXJ0OworICAgIG1fc3RhcnQgPSBzdGFydDsKIH0KIAogRmxv
YXRQb2ludCBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJMaW5lYXJHcmFkaWVudDo6Z3JhZGllbnRFbmQo
KSBjb25zdAogewotICAgIHJldHVybiBkLT5lbmQ7CisgICAgcmV0dXJuIG1fZW5kOwogfQogCiB2
b2lkIEtSZW5kZXJpbmdQYWludFNlcnZlckxpbmVhckdyYWRpZW50OjpzZXRHcmFkaWVudEVuZChj
b25zdCBGbG9hdFBvaW50ICZlbmQpCiB7Ci0gICAgZC0+ZW5kID0gZW5kOworICAgIG1fZW5kID0g
ZW5kOwogfQogCiBLQ1BhaW50U2VydmVyVHlwZSBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJMaW5lYXJH
cmFkaWVudDo6dHlwZSgpIGNvbnN0CkBAIC0yMDEsNTMgKzE4Miw0MyBAQCBUZXh0U3RyZWFtICZL
UmVuZGVyaW5nUGFpbnRTZXJ2ZXJMaW5lYXJHCiB9CiAKIC8vIEtSZW5kZXJpbmdQYWludFNlcnZl
clJhZGlhbEdyYWRpZW50Ci1jbGFzcyBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJSYWRpYWxHcmFkaWVu
dDo6UHJpdmF0ZQotewotcHVibGljOgotICAgIFByaXZhdGUoKSB7IH0KLSAgICB+UHJpdmF0ZSgp
IHsgfQotCi0gICAgZmxvYXQgcmFkaXVzOwotICAgIEZsb2F0UG9pbnQgY2VudGVyLCBmb2NhbDsK
LX07Ci0KLUtSZW5kZXJpbmdQYWludFNlcnZlclJhZGlhbEdyYWRpZW50OjpLUmVuZGVyaW5nUGFp
bnRTZXJ2ZXJSYWRpYWxHcmFkaWVudCgpIDogS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQo
KSwgZChuZXcgUHJpdmF0ZSgpKQorS1JlbmRlcmluZ1BhaW50U2VydmVyUmFkaWFsR3JhZGllbnQ6
OktSZW5kZXJpbmdQYWludFNlcnZlclJhZGlhbEdyYWRpZW50KCkKKyAgICA6IEtSZW5kZXJpbmdQ
YWludFNlcnZlckdyYWRpZW50KCkKIHsKIH0KIAogS1JlbmRlcmluZ1BhaW50U2VydmVyUmFkaWFs
R3JhZGllbnQ6On5LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJSYWRpYWxHcmFkaWVudCgpCiB7Ci0gICAg
ZGVsZXRlIGQ7CiB9CiAKIEZsb2F0UG9pbnQgS1JlbmRlcmluZ1BhaW50U2VydmVyUmFkaWFsR3Jh
ZGllbnQ6OmdyYWRpZW50Q2VudGVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZC0+Y2VudGVyOwor
ICAgIHJldHVybiBtX2NlbnRlcjsKIH0KIAogdm9pZCBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJSYWRp
YWxHcmFkaWVudDo6c2V0R3JhZGllbnRDZW50ZXIoY29uc3QgRmxvYXRQb2ludCAmY2VudGVyKQog
ewotICAgIGQtPmNlbnRlciA9IGNlbnRlcjsKKyAgICBtX2NlbnRlciA9IGNlbnRlcjsKIH0KIAog
RmxvYXRQb2ludCBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJSYWRpYWxHcmFkaWVudDo6Z3JhZGllbnRG
b2NhbCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGQtPmZvY2FsOworICAgIHJldHVybiBtX2ZvY2Fs
OwogfQogCiB2b2lkIEtSZW5kZXJpbmdQYWludFNlcnZlclJhZGlhbEdyYWRpZW50OjpzZXRHcmFk
aWVudEZvY2FsKGNvbnN0IEZsb2F0UG9pbnQgJmZvY2FsKQogewotICAgIGQtPmZvY2FsID0gZm9j
YWw7CisgICAgbV9mb2NhbCA9IGZvY2FsOwogfQogCiBmbG9hdCBLUmVuZGVyaW5nUGFpbnRTZXJ2
ZXJSYWRpYWxHcmFkaWVudDo6Z3JhZGllbnRSYWRpdXMoKSBjb25zdAogewotICAgIHJldHVybiBk
LT5yYWRpdXM7CisgICAgcmV0dXJuIG1fcmFkaXVzOwogfQogCiB2b2lkIEtSZW5kZXJpbmdQYWlu
dFNlcnZlclJhZGlhbEdyYWRpZW50OjpzZXRHcmFkaWVudFJhZGl1cyhmbG9hdCByYWRpdXMpCiB7
Ci0gICAgZC0+cmFkaXVzID0gcmFkaXVzOworICAgIG1fcmFkaXVzID0gcmFkaXVzOwogfQogCiBL
Q1BhaW50U2VydmVyVHlwZSBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJSYWRpYWxHcmFkaWVudDo6dHlw
ZSgpIGNvbnN0CkBAIC0yNTcsMTIgKzIyOCwxMiBAQCBLQ1BhaW50U2VydmVyVHlwZSBLUmVuZGVy
aW5nUGFpbnRTZXJ2ZXJSCiAKIEtDYW52YXNSZXNvdXJjZUxpc3RlbmVyICpLUmVuZGVyaW5nUGFp
bnRTZXJ2ZXJHcmFkaWVudDo6bGlzdGVuZXIoKSBjb25zdAogewotICAgIHJldHVybiBkLT5saXN0
ZW5lcjsKKyAgICByZXR1cm4gbV9saXN0ZW5lcjsKIH0KIAogdm9pZCBLUmVuZGVyaW5nUGFpbnRT
ZXJ2ZXJHcmFkaWVudDo6c2V0TGlzdGVuZXIoS0NhbnZhc1Jlc291cmNlTGlzdGVuZXIgKmxpc3Rl
bmVyKQogewotICAgIGQtPmxpc3RlbmVyID0gbGlzdGVuZXI7CisgICAgbV9saXN0ZW5lciA9IGxp
c3RlbmVyOwogfQogCiBUZXh0U3RyZWFtICZLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJSYWRpYWxHcmFk
aWVudDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtICZ0cykgY29uc3QKSW5kZXg6
IFdlYkNvcmUva2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2tjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQYWludFNlcnZl
ckdyYWRpZW50LmgJKHJldmlzaW9uIDE2MzY3KQorKysgV2ViQ29yZS9rY2FudmFzL2RldmljZS9L
UmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw4ICs2
OCwxMSBAQCBwdWJsaWM6CiAKICAgICBUZXh0U3RyZWFtICZleHRlcm5hbFJlcHJlc2VudGF0aW9u
KFRleHRTdHJlYW0gJikgY29uc3Q7CiBwcml2YXRlOgotICAgIGNsYXNzIFByaXZhdGU7Ci0gICAg
UHJpdmF0ZSAqZDsKKyAgICBWZWN0b3I8S0NHcmFkaWVudFN0b3A+IG1fc3RvcHM7CisgICAgS0NH
cmFkaWVudFNwcmVhZE1ldGhvZCBtX3NwcmVhZE1ldGhvZDsKKyAgICBib29sIG1fYm91bmRpbmdC
b3hNb2RlOworICAgIEFmZmluZVRyYW5zZm9ybSBtX2dyYWRpZW50VHJhbnNmb3JtOworICAgIEtD
YW52YXNSZXNvdXJjZUxpc3RlbmVyKiBtX2xpc3RlbmVyOwogfTsKIAogY2xhc3MgS1JlbmRlcmlu
Z1BhaW50U2VydmVyTGluZWFyR3JhZGllbnQgOiBwdWJsaWMgS1JlbmRlcmluZ1BhaW50U2VydmVy
R3JhZGllbnQKQEAgLTg5LDggKzkyLDggQEAgcHVibGljOgogCiAgICAgVGV4dFN0cmVhbSAmZXh0
ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtICYpIGNvbnN0OwogcHJpdmF0ZToKLSAgICBj
bGFzcyBQcml2YXRlOwotICAgIFByaXZhdGUgKmQ7CisgICAgRmxvYXRQb2ludCBtX3N0YXJ0Owor
ICAgIEZsb2F0UG9pbnQgbV9lbmQ7CiB9OwogCiBjbGFzcyBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJS
YWRpYWxHcmFkaWVudCA6IHB1YmxpYyBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudApAQCAt
MTEzLDggKzExNiw5IEBAIHB1YmxpYzoKIAogICAgIFRleHRTdHJlYW0gJmV4dGVybmFsUmVwcmVz
ZW50YXRpb24oVGV4dFN0cmVhbSAmKSBjb25zdDsKIHByaXZhdGU6Ci0gICAgY2xhc3MgUHJpdmF0
ZTsKLSAgICBQcml2YXRlICpkOworICAgIGZsb2F0IG1fcmFkaXVzOworICAgIEZsb2F0UG9pbnQg
bV9jZW50ZXI7CisgICAgRmxvYXRQb2ludCBtX2ZvY2FsOwogfTsKIAogfQpJbmRleDogV2ViQ29y
ZS9rY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2tjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQYWludFNlcnZlclBhdHRl
cm4uY3BwCShyZXZpc2lvbiAxNjM2NykKKysrIFdlYkNvcmUva2NhbnZhcy9kZXZpY2UvS1JlbmRl
cmluZ1BhaW50U2VydmVyUGF0dGVybi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcxICszMSw1
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEtSZW5kZXJpbmdQYWludFNlcnZl
clBhdHRlcm46OlByaXZhdGUKLXsKLXB1YmxpYzoKLSAgICBQcml2YXRlKCkKLSAgICB7Ci0gICAg
ICAgIHRpbGUgPSAwOwotICAgICAgICB1c2VCb3VuZGluZ0JveE1vZGUgPSB0cnVlOwotICAgICAg
ICBsaXN0ZW5lciA9IDA7Ci0gICAgfQotICAgIH5Qcml2YXRlKCkgeyBkZWxldGUgdGlsZTsgfQot
Ci0gICAgS0NhbnZhc0ltYWdlICp0aWxlOwotICAgIEFmZmluZVRyYW5zZm9ybSBwYXR0ZXJuVHJh
bnNmb3JtOwotICAgIEZsb2F0UmVjdCBiYm94OwotICAgIGJvb2wgdXNlQm91bmRpbmdCb3hNb2Rl
OwotICAgIEtDYW52YXNSZXNvdXJjZUxpc3RlbmVyICpsaXN0ZW5lcjsKLX07Ci0KLUtSZW5kZXJp
bmdQYWludFNlcnZlclBhdHRlcm46OktSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm4oKSA6IEtS
ZW5kZXJpbmdQYWludFNlcnZlcigpLCBkKG5ldyBQcml2YXRlKCkpCitLUmVuZGVyaW5nUGFpbnRT
ZXJ2ZXJQYXR0ZXJuOjpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuKCkKKyAgICA6IEtSZW5k
ZXJpbmdQYWludFNlcnZlcigpCisgICAgLCBtX3RpbGUoMCkKKyAgICAsIG1fdXNlQm91bmRpbmdC
b3hNb2RlKHRydWUpCisgICAgLCBtX2xpc3RlbmVyKDApCiB7CiB9CiAKIEtSZW5kZXJpbmdQYWlu
dFNlcnZlclBhdHRlcm46On5LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuKCkKIHsKLSAgICBk
ZWxldGUgZDsKKyAgICBkZWxldGUgbV90aWxlOwogfQogCiB2b2lkIEtSZW5kZXJpbmdQYWludFNl
cnZlclBhdHRlcm46OnNldEJib3goY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewotICAgIGQtPmJi
b3ggPSByZWN0OworICAgIG1fYmJveCA9IHJlY3Q7CiB9CiAKIEZsb2F0UmVjdCBLUmVuZGVyaW5n
UGFpbnRTZXJ2ZXJQYXR0ZXJuOjpiYm94KCkgY29uc3QKIHsKLSAgICByZXR1cm4gZC0+YmJveDsK
KyAgICByZXR1cm4gbV9iYm94OwogfQogCiBib29sIEtSZW5kZXJpbmdQYWludFNlcnZlclBhdHRl
cm46OmJvdW5kaW5nQm94TW9kZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGQtPnVzZUJvdW5kaW5n
Qm94TW9kZTsKKyAgICByZXR1cm4gbV91c2VCb3VuZGluZ0JveE1vZGU7CiB9CiAKIHZvaWQgS1Jl
bmRlcmluZ1BhaW50U2VydmVyUGF0dGVybjo6c2V0Qm91bmRpbmdCb3hNb2RlKGJvb2wgbW9kZSkK
IHsKLSAgICBkLT51c2VCb3VuZGluZ0JveE1vZGUgPSBtb2RlOworICAgIG1fdXNlQm91bmRpbmdC
b3hNb2RlID0gbW9kZTsKIH0KIAogS0NhbnZhc0ltYWdlICpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQ
YXR0ZXJuOjp0aWxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZC0+dGlsZTsKKyAgICByZXR1cm4g
bV90aWxlOwogfQogCiB2b2lkIEtSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm46OnNldFRpbGUo
S0NhbnZhc0ltYWdlICp0aWxlKQogewotICAgIGQtPnRpbGUgPSB0aWxlOworICAgIG1fdGlsZSA9
IHRpbGU7CiB9CiAKIEFmZmluZVRyYW5zZm9ybSBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJu
OjpwYXR0ZXJuVHJhbnNmb3JtKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZC0+cGF0dGVyblRyYW5z
Zm9ybTsKKyAgICByZXR1cm4gbV9wYXR0ZXJuVHJhbnNmb3JtOwogfQogCiB2b2lkIEtSZW5kZXJp
bmdQYWludFNlcnZlclBhdHRlcm46OnNldFBhdHRlcm5UcmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiBtYXQpCiB7Ci0gICAgZC0+cGF0dGVyblRyYW5zZm9ybSA9IG1hdDsKKyAgICBtX3Bh
dHRlcm5UcmFuc2Zvcm0gPSBtYXQ7CiB9CiAKIEtDUGFpbnRTZXJ2ZXJUeXBlIEtSZW5kZXJpbmdQ
YWludFNlcnZlclBhdHRlcm46OnR5cGUoKSBjb25zdApAQCAtMTA1LDEyICs5MSwxMiBAQCBLQ1Bh
aW50U2VydmVyVHlwZSBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQCiAKIEtDYW52YXNSZXNvdXJjZUxp
c3RlbmVyICpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuOjpsaXN0ZW5lcigpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIGQtPmxpc3RlbmVyOworICAgIHJldHVybiBtX2xpc3RlbmVyOwogfQogCiB2
b2lkIEtSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm46OnNldExpc3RlbmVyKEtDYW52YXNSZXNv
dXJjZUxpc3RlbmVyICpsaXN0ZW5lcikKIHsKLSAgICBkLT5saXN0ZW5lciA9IGxpc3RlbmVyOwor
ICAgIG1fbGlzdGVuZXIgPSBsaXN0ZW5lcjsKIH0KIAogVGV4dFN0cmVhbSAmS1JlbmRlcmluZ1Bh
aW50U2VydmVyUGF0dGVybjo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtICZ0cykg
Y29uc3QKSW5kZXg6IFdlYkNvcmUva2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVy
UGF0dGVybi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva2NhbnZhcy9kZXZpY2UvS1JlbmRlcmlu
Z1BhaW50U2VydmVyUGF0dGVybi5oCShyZXZpc2lvbiAxNjM2NykKKysrIFdlYkNvcmUva2NhbnZh
cy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVybi5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEtDUGFpbnRTZXJ2ZXJUeXBlIHR5
cGUoKSBjb25zdDsKIAogICAgIC8vIFBhdHRlcm4gYmJveAotICAgIHZvaWQgc2V0QmJveChjb25z
dCBGbG9hdFJlY3QgJnJlY3QpOworICAgIHZvaWQgc2V0QmJveChjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpOwogICAgIEZsb2F0UmVjdCBiYm94KCkgY29uc3Q7CiAgICAgCiAgICAgLy8gUGF0dGVybiB4
LHkgcGhhc2UgcG9pbnRzIGFyZSByZWxhdGl2ZSB3aGVuIGluIGJvdW5kaW5nQm94TW9kZQpAQCAt
NDgsMTkgKzQ4LDIzIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEJvdW5kaW5nQm94TW9kZShib29s
IG1vZGUgPSB0cnVlKTsKICAgICAKICAgICAvLyAnUGF0dGVybicgaW50ZXJmYWNlCi0gICAgS0Nh
bnZhc0ltYWdlICp0aWxlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRUaWxlKEtDYW52YXNJbWFnZSAq
dGlsZSk7CisgICAgS0NhbnZhc0ltYWdlKiB0aWxlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRUaWxl
KEtDYW52YXNJbWFnZSogdGlsZSk7CiAKICAgICBBZmZpbmVUcmFuc2Zvcm0gcGF0dGVyblRyYW5z
Zm9ybSgpIGNvbnN0OwogICAgIHZvaWQgc2V0UGF0dGVyblRyYW5zZm9ybShjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mKTsKIAotICAgIEtDYW52YXNSZXNvdXJjZUxpc3RlbmVyICpsaXN0ZW5lcigpIGNv
bnN0OwotICAgIHZvaWQgc2V0TGlzdGVuZXIoS0NhbnZhc1Jlc291cmNlTGlzdGVuZXIgKmxpc3Rl
bmVyKTsKLSAgICBUZXh0U3RyZWFtICZleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0g
JikgY29uc3Q7CisgICAgS0NhbnZhc1Jlc291cmNlTGlzdGVuZXIqIGxpc3RlbmVyKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRMaXN0ZW5lcihLQ2FudmFzUmVzb3VyY2VMaXN0ZW5lciogbGlzdGVuZXIp
OworICAgIFRleHRTdHJlYW0gJmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYpIGNv
bnN0OwogCiBwcml2YXRlOgotICAgIGNsYXNzIFByaXZhdGU7Ci0gICAgUHJpdmF0ZSAqZDsKKyAg
ICBLQ2FudmFzSW1hZ2UqIG1fdGlsZTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbV9wYXR0ZXJuVHJh
bnNmb3JtOworICAgIEZsb2F0UmVjdCBtX2Jib3g7CisgICAgYm9vbCBtX3VzZUJvdW5kaW5nQm94
TW9kZTsKKyAgICBLQ2FudmFzUmVzb3VyY2VMaXN0ZW5lciogbV9saXN0ZW5lcjsKKwogfTsKIAog
fQpJbmRleDogV2ViQ29yZS9rY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJTb2xp
ZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFp
bnRTZXJ2ZXJTb2xpZC5jcHAJKHJldmlzaW9uIDE2MzY3KQorKysgV2ViQ29yZS9rY2FudmFzL2Rl
dmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJTb2xpZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDMyICsyOCwyMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEtSZW5kZXJpbmdQ
YWludFNlcnZlclNvbGlkOjpQcml2YXRlCi17Ci1wdWJsaWM6Ci0gICAgUHJpdmF0ZSgpIHsgfQot
ICAgIH5Qcml2YXRlKCkgeyB9Ci0KLSAgICBDb2xvciBjb2xvcjsKLX07Ci0KLUtSZW5kZXJpbmdQ
YWludFNlcnZlclNvbGlkOjpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJTb2xpZCgpIDogS1JlbmRlcmlu
Z1BhaW50U2VydmVyKCksIGQobmV3IFByaXZhdGUoKSkKK0tSZW5kZXJpbmdQYWludFNlcnZlclNv
bGlkOjpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJTb2xpZCgpCisgICAgOiBLUmVuZGVyaW5nUGFpbnRT
ZXJ2ZXIoKQogewogfQogCiBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJTb2xpZDo6fktSZW5kZXJpbmdQ
YWludFNlcnZlclNvbGlkKCkKIHsKLSAgICBkZWxldGUgZDsKIH0KIAogQ29sb3IgS1JlbmRlcmlu
Z1BhaW50U2VydmVyU29saWQ6OmNvbG9yKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZC0+Y29sb3I7
CisgICAgcmV0dXJuIG1fY29sb3I7CiB9CiAKIHZvaWQgS1JlbmRlcmluZ1BhaW50U2VydmVyU29s
aWQ6OnNldENvbG9yKGNvbnN0IENvbG9yICZjb2xvcikKIHsKLSAgICBkLT5jb2xvciA9IGNvbG9y
OworICAgIG1fY29sb3IgPSBjb2xvcjsKIH0KIAogS0NQYWludFNlcnZlclR5cGUgS1JlbmRlcmlu
Z1BhaW50U2VydmVyU29saWQ6OnR5cGUoKSBjb25zdApJbmRleDogV2ViQ29yZS9rY2FudmFzL2Rl
dmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJTb2xpZC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyU29saWQuaAkocmV2aXNpb24gMTYz
NjcpCisrKyBXZWJDb3JlL2tjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQYWludFNlcnZlclNvbGlk
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDggKzQyLDcgQEAgcHVibGljOgogCiAgICAgVGV4dFN0
cmVhbSAmZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtICYpIGNvbnN0OwogcHJpdmF0
ZToKLSAgICBjbGFzcyBQcml2YXRlOwotICAgIFByaXZhdGUgKmQ7CisgICAgQ29sb3IgbV9jb2xv
cjsKIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUva2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1N0cm9r
ZVBhaW50ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva2NhbnZhcy9kZXZpY2UvS1JlbmRl
cmluZ1N0cm9rZVBhaW50ZXIuY3BwCShyZXZpc2lvbiAxNjM2NykKKysrIFdlYkNvcmUva2NhbnZh
cy9kZXZpY2UvS1JlbmRlcmluZ1N0cm9rZVBhaW50ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NywxMjcgKzI3LDEwNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEtSZW5kZXJp
bmdTdHJva2VQYWludGVyOjpQcml2YXRlCi17Ci1wdWJsaWM6Ci0gICAgUHJpdmF0ZSgpCi0gICAg
ewotICAgICAgICBkaXJ0eSA9IHRydWU7Ci0gICAgICAgIG9wYWNpdHkgPSAxLjA7Ci0gICAgICAg
IG1pdGVyTGltaXQgPSA0OwotICAgICAgICBkYXNoT2Zmc2V0ID0gMC4wOwotICAgICAgICBzdHJv
a2VXaWR0aCA9IDEuMDsKLSAgICAgICAgY2FwU3R5bGUgPSBDQVBfQlVUVDsKLSAgICAgICAgam9p
blN0eWxlID0gSk9JTl9NSVRFUjsKLSAgICB9Ci0KLSAgICBib29sIGRpcnR5OwotICAgIGZsb2F0
IG9wYWNpdHk7Ci0KLSAgICBmbG9hdCBzdHJva2VXaWR0aDsKLSAgICB1bnNpZ25lZCBpbnQgbWl0
ZXJMaW1pdDsKLQotICAgIEtDQ2FwU3R5bGUgY2FwU3R5bGU7Ci0gICAgS0NKb2luU3R5bGUgam9p
blN0eWxlOwotCi0gICAgZmxvYXQgZGFzaE9mZnNldDsKLSAgICBLQ0Rhc2hBcnJheSBkYXNoQXJy
YXk7Ci19OwotCi1LUmVuZGVyaW5nU3Ryb2tlUGFpbnRlcjo6S1JlbmRlcmluZ1N0cm9rZVBhaW50
ZXIoKSA6IGQobmV3IFByaXZhdGUoKSkKK0tSZW5kZXJpbmdTdHJva2VQYWludGVyOjpLUmVuZGVy
aW5nU3Ryb2tlUGFpbnRlcigpCisgICAgOiBtX2RpcnR5KHRydWUpCisgICAgLCBtX29wYWNpdHko
MS4wKQorICAgICwgbV9zdHJva2VXaWR0aCgxLjApCisgICAgLCBtX21pdGVyTGltaXQoNCkKKyAg
ICAsIG1fY2FwU3R5bGUoQ0FQX0JVVFQpCisgICAgLCBtX2pvaW5TdHlsZShKT0lOX01JVEVSKQor
ICAgICwgbV9kYXNoT2Zmc2V0KDAuMCkKIHsKIH0KIAogS1JlbmRlcmluZ1N0cm9rZVBhaW50ZXI6
On5LUmVuZGVyaW5nU3Ryb2tlUGFpbnRlcigpCiB7Ci0gICAgZGVsZXRlIGQ7CiB9CiAKIGZsb2F0
IEtSZW5kZXJpbmdTdHJva2VQYWludGVyOjpzdHJva2VXaWR0aCgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIGQtPnN0cm9rZVdpZHRoOworICAgIHJldHVybiBtX3N0cm9rZVdpZHRoOwogfQogCiB2b2lk
IEtSZW5kZXJpbmdTdHJva2VQYWludGVyOjpzZXRTdHJva2VXaWR0aChmbG9hdCB3aWR0aCkKIHsK
ICAgICBzZXREaXJ0eSgpOwotICAgIGQtPnN0cm9rZVdpZHRoID0gd2lkdGg7CisgICAgbV9zdHJv
a2VXaWR0aCA9IHdpZHRoOwogfQogCiB1bnNpZ25lZCBpbnQgS1JlbmRlcmluZ1N0cm9rZVBhaW50
ZXI6OnN0cm9rZU1pdGVyTGltaXQoKSBjb25zdAogewotICAgIHJldHVybiBkLT5taXRlckxpbWl0
OworICAgIHJldHVybiBtX21pdGVyTGltaXQ7CiB9CiAKIHZvaWQgS1JlbmRlcmluZ1N0cm9rZVBh
aW50ZXI6OnNldFN0cm9rZU1pdGVyTGltaXQodW5zaWduZWQgaW50IGxpbWl0KQogewogICAgIHNl
dERpcnR5KCk7Ci0gICAgZC0+bWl0ZXJMaW1pdCA9IGxpbWl0OworICAgIG1fbWl0ZXJMaW1pdCA9
IGxpbWl0OwogfQogCiBLQ0NhcFN0eWxlIEtSZW5kZXJpbmdTdHJva2VQYWludGVyOjpzdHJva2VD
YXBTdHlsZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGQtPmNhcFN0eWxlOworICAgIHJldHVybiBt
X2NhcFN0eWxlOwogfQogCiB2b2lkIEtSZW5kZXJpbmdTdHJva2VQYWludGVyOjpzZXRTdHJva2VD
YXBTdHlsZShLQ0NhcFN0eWxlIHN0eWxlKQogewogICAgIHNldERpcnR5KCk7Ci0gICAgZC0+Y2Fw
U3R5bGUgPSBzdHlsZTsKKyAgICBtX2NhcFN0eWxlID0gc3R5bGU7CiB9CiAKIEtDSm9pblN0eWxl
IEtSZW5kZXJpbmdTdHJva2VQYWludGVyOjpzdHJva2VKb2luU3R5bGUoKSBjb25zdAogewotICAg
IHJldHVybiBkLT5qb2luU3R5bGU7CisgICAgcmV0dXJuIG1fam9pblN0eWxlOwogfQogCiB2b2lk
IEtSZW5kZXJpbmdTdHJva2VQYWludGVyOjpzZXRTdHJva2VKb2luU3R5bGUoS0NKb2luU3R5bGUg
c3R5bGUpCiB7CiAgICAgc2V0RGlydHkoKTsKLSAgICBkLT5qb2luU3R5bGUgPSBzdHlsZTsKKyAg
ICBtX2pvaW5TdHlsZSA9IHN0eWxlOwogfQogCiBmbG9hdCBLUmVuZGVyaW5nU3Ryb2tlUGFpbnRl
cjo6ZGFzaE9mZnNldCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGQtPmRhc2hPZmZzZXQ7CisgICAg
cmV0dXJuIG1fZGFzaE9mZnNldDsKIH0KIAogdm9pZCBLUmVuZGVyaW5nU3Ryb2tlUGFpbnRlcjo6
c2V0RGFzaE9mZnNldChmbG9hdCBvZmZzZXQpCiB7CiAgICAgc2V0RGlydHkoKTsKLSAgICBkLT5k
YXNoT2Zmc2V0ID0gb2Zmc2V0OworICAgIG1fZGFzaE9mZnNldCA9IG9mZnNldDsKIH0KIAotS0NE
YXNoQXJyYXkgJktSZW5kZXJpbmdTdHJva2VQYWludGVyOjpkYXNoQXJyYXkoKSBjb25zdAorS0NE
YXNoQXJyYXkmIEtSZW5kZXJpbmdTdHJva2VQYWludGVyOjpkYXNoQXJyYXkoKSBjb25zdAogewot
ICAgIHJldHVybiBkLT5kYXNoQXJyYXk7CisgICAgcmV0dXJuIG1fZGFzaEFycmF5OwogfQogCi12
b2lkIEtSZW5kZXJpbmdTdHJva2VQYWludGVyOjpzZXREYXNoQXJyYXkoY29uc3QgS0NEYXNoQXJy
YXkgJmRhc2hBcnJheSkKK3ZvaWQgS1JlbmRlcmluZ1N0cm9rZVBhaW50ZXI6OnNldERhc2hBcnJh
eShjb25zdCBLQ0Rhc2hBcnJheSYgZGFzaEFycmF5KQogewogICAgIHNldERpcnR5KCk7Ci0gICAg
ZC0+ZGFzaEFycmF5ID0gZGFzaEFycmF5OworICAgIG1fZGFzaEFycmF5ID0gZGFzaEFycmF5Owog
fQogCiBmbG9hdCBLUmVuZGVyaW5nU3Ryb2tlUGFpbnRlcjo6b3BhY2l0eSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIGQtPm9wYWNpdHk7CisgICAgcmV0dXJuIG1fb3BhY2l0eTsKIH0KIAogdm9pZCBL
UmVuZGVyaW5nU3Ryb2tlUGFpbnRlcjo6c2V0T3BhY2l0eShmbG9hdCBvcGFjaXR5KQogewogICAg
IHNldERpcnR5KCk7Ci0gICAgZC0+b3BhY2l0eSA9IG9wYWNpdHk7CisgICAgbV9vcGFjaXR5ID0g
b3BhY2l0eTsKIH0KIAogYm9vbCBLUmVuZGVyaW5nU3Ryb2tlUGFpbnRlcjo6ZGlydHkoKSBjb25z
dAogewotICAgIHJldHVybiBkLT5kaXJ0eTsKKyAgICByZXR1cm4gbV9kaXJ0eTsKIH0KIAogdm9p
ZCBLUmVuZGVyaW5nU3Ryb2tlUGFpbnRlcjo6c2V0RGlydHkoYm9vbCBkaXJ0eSkKIHsKLSAgICBk
LT5kaXJ0eSA9IGRpcnR5OworICAgIG1fZGlydHkgPSBkaXJ0eTsKIH0KIAogfQpJbmRleDogV2Vi
Q29yZS9rY2FudmFzL2RldmljZS9LUmVuZGVyaW5nU3Ryb2tlUGFpbnRlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUva2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1N0cm9rZVBhaW50ZXIuaAkocmV2
aXNpb24gMTYzNjcpCisrKyBXZWJDb3JlL2tjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdTdHJva2VQ
YWludGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDggKzUyLDggQEAgcHVibGljOgogICAgIGZs
b2F0IGRhc2hPZmZzZXQoKSBjb25zdDsKICAgICB2b2lkIHNldERhc2hPZmZzZXQoZmxvYXQgb2Zm
c2V0KTsKIAotICAgIEtDRGFzaEFycmF5ICZkYXNoQXJyYXkoKSBjb25zdDsKLSAgICB2b2lkIHNl
dERhc2hBcnJheShjb25zdCBLQ0Rhc2hBcnJheSAmZGFzaEFycmF5KTsKKyAgICBLQ0Rhc2hBcnJh
eSYgZGFzaEFycmF5KCkgY29uc3Q7CisgICAgdm9pZCBzZXREYXNoQXJyYXkoY29uc3QgS0NEYXNo
QXJyYXkmIGRhc2hBcnJheSk7CiAKICAgICBmbG9hdCBvcGFjaXR5KCkgY29uc3Q7CiAgICAgdm9p
ZCBzZXRPcGFjaXR5KGZsb2F0IG9wYWNpdHkpOwpAQCAtNjMsOCArNjMsMTcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0RGlydHkoYm9vbCBkaXJ0eSA9IHRydWUpOwogCiBwcml2YXRlOgotICAgIGNs
YXNzIFByaXZhdGU7Ci0gICAgUHJpdmF0ZSAqZDsKKyAgICBib29sIG1fZGlydHk7CisgICAgZmxv
YXQgbV9vcGFjaXR5OworCisgICAgZmxvYXQgbV9zdHJva2VXaWR0aDsKKyAgICB1bnNpZ25lZCBp
bnQgbV9taXRlckxpbWl0OworCisgICAgS0NDYXBTdHlsZSBtX2NhcFN0eWxlOworICAgIEtDSm9p
blN0eWxlIG1fam9pblN0eWxlOworCisgICAgZmxvYXQgbV9kYXNoT2Zmc2V0OworICAgIG11dGFi
bGUgS0NEYXNoQXJyYXkgbV9kYXNoQXJyYXk7CiB9OwogCiB9Cg==
</data>
<flag name="review"
          id="3428"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>