Ignore:
Timestamp:
Feb 11, 2010, 11:19:06 PM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.6.1 sources.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/src/gui/styles/qwindowsmobilestyle.cpp

    r2 r561  
    22**
    33** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
    4 ** Contact: Qt Software Information (qt-info@nokia.com)
     4** All rights reserved.
     5** Contact: Nokia Corporation (qt-info@nokia.com)
    56**
    67** This file is part of the QtGui module of the Qt Toolkit.
     
    2122** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
    2223**
    23 ** In addition, as a special exception, Nokia gives you certain
    24 ** additional rights. These rights are described in the Nokia Qt LGPL
    25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
    26 ** package.
     24** In addition, as a special exception, Nokia gives you certain additional
     25** rights.  These rights are described in the Nokia Qt LGPL Exception
     26** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
    2727**
    2828** GNU General Public License Usage
     
    3434** met: http://www.gnu.org/copyleft/gpl.html.
    3535**
    36 ** If you are unsure which license is appropriate for your use, please
    37 ** contact the sales department at qt-sales@nokia.com.
     36** If you have questions regarding the use of this file, please contact
     37** Nokia at qt-info@nokia.com.
    3838** $QT_END_LICENSE$
    3939**
     
    7373#include "qtabwidget.h"
    7474
    75 #ifdef Q_OS_WINCE
     75#ifdef Q_WS_WINCE
    7676#include "qt_windows.h"
    7777#include "qguifunctions_wince.h"
    78 extern bool qt_wince_is_high_dpi();   //defined in qguifunctions_wince.cpp
    79 extern bool qt_wince_is_smartphone(); //defined in qguifunctions_wince.cpp
    80 #endif // Q_OS_WINCE
     78extern bool qt_wince_is_high_dpi();          //defined in qguifunctions_wince.cpp
     79extern bool qt_wince_is_smartphone();        //defined in qguifunctions_wince.cpp
     80extern bool qt_wince_is_windows_mobile_65(); //defined in qguifunctions_wince.cpp
     81#endif // Q_WS_WINCE
    8182
    8283QT_BEGIN_NAMESPACE
    8384
    8485static const int windowsItemFrame        =  1; // menu item frame width
    85 static const int windowsItemHMargin      =  2; // menu item hor text margin
    86 static const int windowsItemVMargin      =  2; // menu item ver text margin
    87 static const int windowsArrowHMargin     =  6; // arrow horizontal margin
    88 static const int windowsRightBorder      = 15; // right border on windows
    89 static const int windowsCheckMarkWidth   = 14; // checkmarks width on windows
    9086
    9187static const int windowsMobileitemViewCheckBoxSize   = 13;
     
    670666"              "};
    671667
     668#ifdef Q_WS_WINCE_WM
     669
     670static char * sbhandleup_xpm[] = {
     671"26 41 45 1",
     672"       c None",
     673".      c #000000",
     674"+      c #E7E7E7",
     675"@      c #D6D7D6",
     676"#      c #949294",
     677"$      c #737573",
     678"%      c #636563",
     679"&      c #636163",
     680"*      c #5A5D5A",
     681"=      c #5A595A",
     682"-      c #525552",
     683";      c #525152",
     684">      c #4A4D4A",
     685",      c #7B797B",
     686"'      c #CECFCE",
     687")      c #CED3CE",
     688"!      c #6B6D6B",
     689"~      c #6B696B",
     690"{      c #737173",
     691"]      c #7B7D7B",
     692"^      c #848684",
     693"/      c #848284",
     694"(      c #8C8A8C",
     695"_      c #8C8E8C",
     696":      c #B5B2B5",
     697"<      c #FFFFFF",
     698"[      c #949694",
     699"}      c #B5B6B5",
     700"|      c #9C9A9C",
     701"1      c #ADAEAD",
     702"2      c #9C9E9C",
     703"3      c #BDBABD",
     704"4      c #BDBEBD",
     705"5      c #F7F3F7",
     706"6      c #C6C3C6",
     707"7      c #C6C7C6",
     708"8      c #A5A2A5",
     709"9      c #CECBCE",
     710"0      c #FFFBFF",
     711"a      c #ADAAAD",
     712"b      c #A5A6A5",
     713"c      c #D6D3D6",
     714"d      c #B5BAB5",
     715"e      c #DEDFDE",
     716"f      c #DEDBDE",
     717"..........................",
     718"+@#$%%&&&**===---;;;;>=,'+",
     719"+@#$%%&&&**===---;;;;>=$'+",
     720")$!!~~%%&&&**===---;;;;>;'",
     721"#{$]],,$${{{!!~~%%%&&&*-;]",
     722"#{$]],,$${{{!!~~%%%&&&*-;]",
     723",$^//]],,$${{{!!~~%%%&&*;*",
     724",,(^^//]],$${!!!!!~~%%%&-*",
     725",,(^^//]],$${!!!!!~~%%%&-*",
     726"]]_((^^//]$!%%~!{{!!~~%%-*",
     727"//#__((^^]{:<<:~!{{{!!~~=*",
     728"//#__((^^]{:<<:~!{{{!!~~=&",
     729"//###__(/$:<<<<:~{${{!!~*&",
     730"^^[[##_^]:<<<<<<}!{$${{!*%",
     731"^^[[##_^]:<<<<<<}!{$${{!*%",
     732"((|[[#_/:<<<<<<<<}!$$${{&~",
     733"((||[#^1<<<<1:<<<<}!$$$$&~",
     734"((||[#^1<<<<1:<<<<}!$$$$&~",
     735"__2|#(1<<<<}],}<<<<}{$,$%~",
     736"##2|_1<<<<}^((]3<<<<}{$,~!",
     737"##2|_1<<<<}^((]3<<<<}{$,~!",
     738"##2#1<<<<3^###(/4<<<<}{,~{",
     739"##2#1<<<<3^###(/4<<<<}{,~!",
     740"[[2_5<<<4(#|[[#_/6<<<<,,!{",
     741"[|2_5<<4_[||||[[_/7<<<,]{$",
     742"[|2_5<<4_[||||[[_/7<<<,]{$",
     743"||8_5<6#|2222|||[_/9<<,]{$",
     744"228#06[28888222||[_/'<,/$,",
     745"228#06[28888222||[_/'<,/$,",
     746"22a|6[8bbbb88822||[(/c](,]",
     747"881b8baaabbbb88222|[(^(_,]",
     748"881b8baaabbbb88222|[(^(_,]",
     749"88111111aaabbb88822|[###]/",
     750"bb:::11111aaabbb8822||[[/^",
     751"bb:::11111aaabbb8822||[[//",
     752"bb:::::1111aaabbb8822||[/(",
     753"3a1::::::1111aaabb8822|_^8",
     754"da1::::::1111aaabb8822|_^8",
     755"e1aaabbbb888822||[[##__((@",
     756"+e4:aaabbbb88822||[[[#[b@+",
     757"+e4:aaabbbb88822||[[[#[bf+"};
     758
     759static char * sbhandledown_xpm[] = {
     760"26 40 46 1",
     761"       c None",
     762".      c #E7E7E7",
     763"+      c #DEDFDE",
     764"@      c #BDBEBD",
     765"#      c #B5B2B5",
     766"$      c #ADAAAD",
     767"%      c #A5A6A5",
     768"&      c #A5A2A5",
     769"*      c #9C9E9C",
     770"=      c #9C9A9C",
     771"-      c #949694",
     772";      c #949294",
     773">      c #D6D7D6",
     774",      c #DEDBDE",
     775"'      c #D6DBD6",
     776")      c #ADAEAD",
     777"!      c #8C8E8C",
     778"~      c #8C8A8C",
     779"{      c #BDBABD",
     780"]      c #848684",
     781"^      c #B5BAB5",
     782"/      c #848284",
     783"(      c #848A84",
     784"_      c #7B7D7B",
     785":      c #7B797B",
     786"<      c #C6C3C6",
     787"[      c #D6D3D6",
     788"}      c #FFFBFF",
     789"|      c #CECFCE",
     790"1      c #FFFFFF",
     791"2      c #737573",
     792"3      c #F7F3F7",
     793"4      c #CECBCE",
     794"5      c #737173",
     795"6      c #C6C7C6",
     796"7      c #6B6D6B",
     797"8      c #B5B6B5",
     798"9      c #6B696B",
     799"0      c #636563",
     800"a      c #636163",
     801"b      c #5A5D5A",
     802"c      c #5A595A",
     803"d      c #525552",
     804"e      c #525152",
     805"f      c #4A4D4A",
     806"g      c #C6CBC6",
     807".+@#$$$%%%%&&&**==---;-%>.",
     808".+@#$$$%%%%&&&**==---;-%,.",
     809"')$$$%%%%&&&&**==--;;!!~~>",
     810"{$)######))))$$$%%&&**=!]&",
     811"^$)######))))$$$%%&&**=!]&",
     812"%%#####))))$$$%%%&&**==-/(",
     813"%%###)))))$$$%%%&&**==--/]",
     814"%%###)))))$$$%%%&&**==--//",
     815"&&))))))$$$%%%&&&**=-;;;_/",
     816"&&)%&%$$$%%%%&&***=-~]~!:_",
     817"&&)%&%$$$%%%%&&***=-~]~!:_",
     818"**$=<-&%%%%&&&**==-~/[_~:_",
     819"**&;}<-*&&&&***==-!/|1:/2:",
     820"**&;}<-*&&&&***==-!/|1:/2:",
     821"==&!31<;=****===-!/411:_5:",
     822"-=*!311@!-====--!/6111:_52",
     823"-=*!311@!-====--!/6111:_52",
     824"--*!3111@~;=--;!/<1111::75",
     825";;*;)1111{];;;~/@111185:95",
     826";;*;)1111{];;;~/@111185:97",
     827";;*=!)11118]~~_{1111852:97",
     828";;*=!)11118]~~_{1111852:97",
     829"!!*=;~)11118_:81111852:207",
     830"~~==-;])1111)#1111872222a9",
     831"~~==-;])1111)#1111872222a9",
     832"~~=--;!/#111111118722255a0",
     833"]]--;;!]_#11111187522557b0",
     834"]]--;;!]_#11111187522557b0",
     835"//;;;!!~/2#1111#95255779ba",
     836"//;!!~~]]_5#11#975557799cb",
     837"//;!!~~]]_5#11#975557799ca",
     838"__!~~]]//_27009755779900db",
     839"::~]]//__:2257777799000adb",
     840"::~]]//__:2257777799000adb",
     841":2]//__::225557799000aabeb",
     842";52__::225557799000aaabde_",
     843";52__::225557799000aaabde_",
     844"[2779900aaabbcccdddeeeefeg",
     845".>;200aaabbcccdddeeeefc:|.",
     846".>;200aaabbcccdddeeeefc2|."};
     847
     848static char * sbgripdown_xpm[] = {
     849"26 34 39 1",
     850"       c None",
     851".      c #949294",
     852"+      c #9C9E9C",
     853"@      c #9C9A9C",
     854"#      c #949694",
     855"$      c #8C8E8C",
     856"%      c #8C8A8C",
     857"&      c #848684",
     858"*      c #848284",
     859"=      c #7B7D7B",
     860"-      c #7B797B",
     861";      c #6B696B",
     862">      c #636563",
     863",      c #737573",
     864"'      c #636163",
     865")      c #737173",
     866"!      c #5A5D5A",
     867"~      c #6B6D6B",
     868"{      c #5A595A",
     869"]      c #B5B6B5",
     870"^      c #BDBEBD",
     871"/      c #ADAEAD",
     872"(      c #BDBABD",
     873"_      c #525552",
     874":      c #313031",
     875"<      c #525152",
     876"[      c #ADAAAD",
     877"}      c #BDBAB5",
     878"|      c #4A4D4A",
     879"1      c #4A494A",
     880"2      c #C6C3C6",
     881"3      c #C6CBC6",
     882"4      c #E7E7E7",
     883"5      c #DEDFDE",
     884"6      c #E7E3E7",
     885"7      c #DEE3DE",
     886"8      c #CECBCE",
     887"9      c #8C928C",
     888"0      c #CECFCE",
     889"..+++@@@###...$$%&&**==-;>",
     890"$.++@@@@##...$$%%&**==-->>",
     891"$$+@@@@###..$$%%&&*==--,>>",
     892"$$@@@@###..$$%%&&**==-,,>'",
     893"%%@@@###..$$$%&&**==--,,''",
     894"%%@@###..$$$%&&**==--,,)''",
     895"%%@###...$$%%&&*==--,,))'!",
     896"&&###...$$%%&&**==--,)))!!",
     897"&&##...$$%%&&**==--,,))~!!",
     898"&&#...$$%%&&**==--,,))~~!{",
     899"**...$$%%&&**==--,,))~~;!{",
     900"**..$$%%&&**===--,)))~~;{{",
     901"**.$$%%&]^&===//,,))~~;;{{",
     902"==$$%%&&]^*==-((,))~~;;>{_",
     903"==$%%&&***::--,,::~~;;;>__",
     904"==%%&&&**=::-,,)::~~;;>>__",
     905"--%&&&**==--,,)))~~;;>>>__",
     906"--&&&**==--,,)))~~;;>>>'_<",
     907",-&&**==]^-,))[[~;;>>>''<<",
     908",,&**==-]^-)))}};;>>>'''<<",
     909",,**==--,,::)~~;::>>'''!<<",
     910"))*==--,,)::~~;;::>'''!!<|",
     911"))==--,,)))~~;;;>>'''!!!||",
     912"))=--,,)))~~;;;>>'''!!!{||",
     913"~~--,,)))~~;;;>>'''!!!{{||",
     914"~~-,,)))~~;;>>>'''!!!{{{|1",
     915";;,,)))~~;;>>>'''!!!{{{_1<",
     916"~;,)))~~;;>>>'''!!!{{{__1'",
     917"%>~))~~;;>>>'''!!!{{{__|1$",
     918"2>>~~~;;>>>''!!!{{{{__<113",
     919"4%'';;;>>>''!!!{{{{__<11%4",
     920"45-!!'>>>''!!!{{{{_<|11)64",
     921"447+!{{___<<<||||1111|+444",
     922"444489~__<<<||||111>$04444"};
     923
     924static char * sbgripup_xpm[] = {
     925"26 34 38 1",
     926"       c None",
     927".      c #E7E7E7",
     928"+      c #D6DBD6",
     929"@      c #C6C7C6",
     930"#      c #B5B6B5",
     931"$      c #ADAEAD",
     932"%      c #ADAAAD",
     933"&      c #A5A6A5",
     934"*      c #A5A2A5",
     935"=      c #BDBEBD",
     936"-      c #DEDFDE",
     937";      c #C6CBC6",
     938">      c #9C9E9C",
     939",      c #E7E3E7",
     940"'      c #BDBABD",
     941")      c #B5B2B5",
     942"!      c #9C9A9C",
     943"~      c #DEE3DE",
     944"{      c #949694",
     945"]      c #D6D7D6",
     946"^      c #949294",
     947"/      c #DEDBDE",
     948"(      c #8C8E8C",
     949"_      c #8C8A8C",
     950":      c #848684",
     951"<      c #D6D3CE",
     952"[      c #CECBCE",
     953"}      c #D6D3D6",
     954"|      c #848284",
     955"1      c #313031",
     956"2      c #7B7D7B",
     957"3      c #CECFCE",
     958"4      c #CECBC6",
     959"5      c #7B797B",
     960"6      c #737573",
     961"7      c #737173",
     962"8      c #6B6D6B",
     963"9      c #6B696B",
     964"....+@#$$%%%%&&&***$=-....",
     965"...;$$$$$%%%&&&&**>>>>@...",
     966".,'$$)#'#####)))$$$%*!!$~.",
     967".=$)#'''####))))$$$%%*!{'.",
     968"]$$''''#####)))$$$%%%&*{^/",
     969"=$#'''#####)))$$$$%%&&&!^#",
     970"$$'''#####))))$$$%%%&&*>(!",
     971"$$''#####))))$$$%%%&&&*>(^",
     972"$$######))))$$$$%%&&&**>(_",
     973"%$#####))))$$$$%%%&&***>__",
     974"%$####))))$$$$%%%&&&**>>__",
     975"%%###)))))$$$%%%&&&**>>>_:",
     976"%%##))))<])$$%[[&&***>>!::",
     977"%%#)))))<]$$%%}<&&**>>!!:|",
     978"&%)))))$$$11%%&&11*>>>!!:|",
     979"&&))))$$$$11%&&&11*>>!!{||",
     980"&&)))$$$$$%%%&&&**>>!!!{|2",
     981"&&))$$$$$%%%&&&**>>>!!{{|2",
     982"*&)$$$$$3]%&&&4@*>>!!{{{22",
     983"**$$$$$%3]%&&&<<>>!!!{{^25",
     984"**$$$$%%%%11&**>11!!{{^^25",
     985"**$$$%%%%&11***>11!!{{^^55",
     986"**$$%%%%&&&***>>!!!{{^^(55",
     987">>$%%%%&&&***>>>!!{{^^((56",
     988">>%%%%&&&&***>>!!!{{^^((66",
     989">>%%%&&&&***>>!!!{{^^((_67",
     990"!>%%&&&&***>>>!!{{{^^(__67",
     991"!!%&&&&***>>>!!!{{^^((_:77",
     992"!!&&&&***>>>!!!{{^^((__:77",
     993"!!&&&****>>!!!{{^^^(__::78",
     994"{!&&****>>>!!{{{^^((_::|88",
     995"{{&****>>>!!!{{^^((__:||88",
     996"{{****>>>!!!{{^^^(__::|289",
     997"{{***>>>!!!{{{^^((_::||289"};
     998
     999static char * sbgripmiddle_xpm[] = {
     1000"26 2 12 1",
     1001"       c None",
     1002".      c #949294",
     1003"+      c #A5A2A5",
     1004"@      c #9C9E9C",
     1005"#      c #9C9A9C",
     1006"$      c #949694",
     1007"%      c #8C8E8C",
     1008"&      c #8C8A8C",
     1009"*      c #848684",
     1010"=      c #848284",
     1011"-      c #7B7D7B",
     1012";      c #6B696B",
     1013"..++@@@###$$$..%%&&*==--;;",
     1014"..++@@@###$$$..%%&&*==--;;"};
     1015
     1016
     1017static char * listviewhighmiddle_xpm[] = {
     1018"8 46 197 2",
     1019"       c None",
     1020".      c #66759E",
     1021"+      c #6C789D",
     1022"@      c #6A789E",
     1023"#      c #6B789E",
     1024"$      c #6A779D",
     1025"%      c #6C789C",
     1026"&      c #6F7D9B",
     1027"*      c #6F7D9A",
     1028"=      c #9DB6EE",
     1029"-      c #9DB6ED",
     1030";      c #9CB6ED",
     1031">      c #A1B6EF",
     1032",      c #A2B6F0",
     1033"'      c #93AAE9",
     1034")      c #95ABEA",
     1035"!      c #94ABEA",
     1036"~      c #94A9E8",
     1037"{      c #8BA8EA",
     1038"]      c #8BA7EA",
     1039"^      c #8AA7EA",
     1040"/      c #8EAAE8",
     1041"(      c #8FAAE8",
     1042"_      c #88A2E7",
     1043":      c #8CA3E8",
     1044"<      c #8BA3E7",
     1045"[      c #8BA3E8",
     1046"}      c #8BA2E7",
     1047"|      c #8CA2E7",
     1048"1      c #8DA2E7",
     1049"2      c #87A1E8",
     1050"3      c #87A1E9",
     1051"4      c #86A0E8",
     1052"5      c #86A1E7",
     1053"6      c #87A2E7",
     1054"7      c #859EE9",
     1055"8      c #849DE9",
     1056"9      c #869EE9",
     1057"0      c #869FE9",
     1058"a      c #7C9BEA",
     1059"b      c #7C9CEA",
     1060"c      c #7B9CEA",
     1061"d      c #7C9BE9",
     1062"e      c #7E9CE9",
     1063"f      c #7B9AEA",
     1064"g      c #7C99E9",
     1065"h      c #7C9AEA",
     1066"i      c #7B9AE8",
     1067"j      c #7A9AEA",
     1068"k      c #7996E1",
     1069"l      c #7C96E4",
     1070"m      c #7B96E3",
     1071"n      c #7B95E3",
     1072"o      c #7E95E5",
     1073"p      c #7E95E6",
     1074"q      c #7292E1",
     1075"r      c #7490DF",
     1076"s      c #7591E0",
     1077"t      c #7590DF",
     1078"u      c #7392E1",
     1079"v      c #6D8CDE",
     1080"w      c #6F8EDD",
     1081"x      c #6E8DDD",
     1082"y      c #6E8DDE",
     1083"z      c #6F8EDE",
     1084"A      c #6E8EDE",
     1085"B      c #718EDD",
     1086"C      c #728EDD",
     1087"D      c #6B89E0",
     1088"E      c #6C89DF",
     1089"F      c #6D89E0",
     1090"G      c #6D89DF",
     1091"H      c #6C88DF",
     1092"I      c #6D88DF",
     1093"J      c #6D86DD",
     1094"K      c #6086E0",
     1095"L      c #6686E0",
     1096"M      c #6586E0",
     1097"N      c #6486E0",
     1098"O      c #6485E0",
     1099"P      c #6786DF",
     1100"Q      c #5F85E0",
     1101"R      c #6583DE",
     1102"S      c #6683DE",
     1103"T      c #6682DD",
     1104"U      c #6086DF",
     1105"V      c #5F86E0",
     1106"W      c #567ED7",
     1107"X      c #567ED8",
     1108"Y      c #557DD7",
     1109"Z      c #5A7FD8",
     1110"`      c #6281DA",
     1111" .     c #5379D9",
     1112"..     c #5278D9",
     1113"+.     c #547BD8",
     1114"@.     c #4C73D7",
     1115"#.     c #4B72D2",
     1116"$.     c #4C73D4",
     1117"%.     c #4C73D3",
     1118"&.     c #4B72D4",
     1119"*.     c #4F75D3",
     1120"=.     c #5074D2",
     1121"-.     c #4971D0",
     1122";.     c #4871D0",
     1123">.     c #335ECF",
     1124",.     c #325ECB",
     1125"'.     c #335ECD",
     1126").     c #335ECE",
     1127"!.     c #325DCD",
     1128"~.     c #2E59C9",
     1129"{.     c #3059C9",
     1130"].     c #2F59C9",
     1131"^.     c #2F59C8",
     1132"/.     c #2B59CA",
     1133"(.     c #3355C6",
     1134"_.     c #3354C5",
     1135":.     c #3156C7",
     1136"<.     c #3056C7",
     1137"[.     c #3355C7",
     1138"}.     c #3355C5",
     1139"|.     c #254EBF",
     1140"1.     c #1F51C1",
     1141"2.     c #234FC0",
     1142"3.     c #234FBF",
     1143"4.     c #2350C0",
     1144"5.     c #1E50BE",
     1145"6.     c #1D50C0",
     1146"7.     c #264DBE",
     1147"8.     c #264CBD",
     1148"9.     c #254DBE",
     1149"0.     c #244EBF",
     1150"a.     c #254DBF",
     1151"b.     c #234CBF",
     1152"c.     c #244CC0",
     1153"d.     c #244BC0",
     1154"e.     c #234BC0",
     1155"f.     c #234BBF",
     1156"g.     c #234CBE",
     1157"h.     c #2049B7",
     1158"i.     c #2A49B5",
     1159"j.     c #2749B5",
     1160"k.     c #2749B6",
     1161"l.     c #2D49B4",
     1162"m.     c #2649B6",
     1163"n.     c #2946B5",
     1164"o.     c #2A48B6",
     1165"p.     c #2947B5",
     1166"q.     c #2946B6",
     1167"r.     c #2848B6",
     1168"s.     c #2549B5",
     1169"t.     c #2648B6",
     1170"u.     c #2744B5",
     1171"v.     c #2744B4",
     1172"w.     c #2744AF",
     1173"x.     c #2543B4",
     1174"y.     c #2543B2",
     1175"z.     c #2442B2",
     1176"A.     c #2442B3",
     1177"B.     c #2442B5",
     1178"C.     c #2543B3",
     1179"D.     c #1F40B1",
     1180"E.     c #1E40B1",
     1181"F.     c #243EAE",
     1182"G.     c #273BAC",
     1183"H.     c #263DAC",
     1184"I.     c #253CAB",
     1185"J.     c #273CAB",
     1186"K.     c #273CAC",
     1187"L.     c #263BAA",
     1188"M.     c #253CAE",
     1189"N.     c #263BA6",
     1190"O.     c #253BA5",
     1191"P.     c #253AA5",
     1192"Q.     c #253BA6",
     1193"R.     c #253CA7",
     1194"S.     c #263AA6",
     1195"T.     c #243CA6",
     1196"U.     c #253CA5",
     1197"V.     c #273BA8",
     1198"W.     c #2F4DA4",
     1199"X.     c #2F4DA3",
     1200"Y.     c #1B2F85",
     1201"Z.     c #B5B5B6",
     1202"`.     c #B5B5B5",
     1203" +     c #B5B6B6",
     1204".+     c #B5B4B6",
     1205"++     c #C2C3C5",
     1206"@+     c #C0C3C3",
     1207"#+     c #C1C3C4",
     1208"$+     c #E3E3E3",
     1209"%+     c #E3E3E4",
     1210"&+     c #E4E3E4",
     1211"*+     c #E2E3E4",
     1212"=+     c #ECEEEB",
     1213"-+     c #EBEDEA",
     1214";+     c #EEF0ED",
     1215">+     c #EFF0EE",
     1216". + @ @ # # $ % ",
     1217"& & * & & & & & ",
     1218"= = - = = ; > , ",
     1219"' ) ! ! ! ) ' ~ ",
     1220"{ ] { { { ^ / ( ",
     1221"_ : < [ : } | 1 ",
     1222"2 2 2 3 2 4 5 6 ",
     1223"7 7 7 7 7 8 9 0 ",
     1224"a b a a a c d e ",
     1225"f g h h h h i j ",
     1226"k l m m m n o p ",
     1227"q q q q q q q q ",
     1228"r r s s s t q u ",
     1229"v w x y z A B C ",
     1230"D E F F G F H I ",
     1231"J K L M N O P Q ",
     1232"R R S S S T U V ",
     1233"W W X X X Y Z ` ",
     1234" . . . . ...+.W ",
     1235" . . . . ..... .",
     1236"@.#.$.$.%.&.*.=.",
     1237"-.-.;.-.-.-.-.-.",
     1238">.,.'.).).!.!.>.",
     1239"~.{.].^.].^././.",
     1240"(.(.(.(.(._.:.<.",
     1241"(.(.[.[.[.[.(.}.",
     1242"|.1.2.3.3.4.5.6.",
     1243"7.7.7.7.7.8.9.0.",
     1244"a.b.c.d.c.e.f.g.",
     1245"h.i.j.k.j.k.l.m.",
     1246"n.o.p.q.r.p.s.t.",
     1247"u.u.v.u.u.u.u.u.",
     1248"w.x.y.z.A.y.B.C.",
     1249"D.D.E.D.D.D.D.D.",
     1250"D.D.E.D.D.D.D.D.",
     1251"F.G.H.I.J.K.L.M.",
     1252"N.N.O.N.N.P.Q.R.",
     1253"N.N.S.N.N.N.N.N.",
     1254"T.N.T.T.T.U.N.V.",
     1255"W.W.X.W.W.W.W.W.",
     1256"W.W.W.W.W.W.W.W.",
     1257"Y.Y.Y.Y.Y.Y.Y.Y.",
     1258"Z.`. + +.+Z.`.`.",
     1259"++@+#+#+#+#+@+@+",
     1260"$+%+&+&+*+%+%+%+",
     1261"=+-+;+-+-+>+-+-+"};
     1262
     1263
     1264
     1265static char * listviewhighcornerleft_xpm[] = {
     1266"100 46 1475 2",
     1267"       c None",
     1268".      c #FBFBFC",
     1269"+      c #E8EAE7",
     1270"@      c #758DC3",
     1271"#      c #42599E",
     1272"$      c #28418A",
     1273"%      c #19418F",
     1274"&      c #3F5695",
     1275"*      c #415896",
     1276"=      c #435A98",
     1277"-      c #445C99",
     1278";      c #465E9B",
     1279">      c #48609B",
     1280",      c #49629C",
     1281"'      c #4A639D",
     1282")      c #49639D",
     1283"!      c #4A629D",
     1284"~      c #4B639D",
     1285"{      c #4B649D",
     1286"]      c #4C659D",
     1287"^      c #4D669D",
     1288"/      c #4E689D",
     1289"(      c #506A9D",
     1290"_      c #516A9D",
     1291":      c #536B9C",
     1292"<      c #546C9C",
     1293"[      c #566D9B",
     1294"}      c #576D9B",
     1295"|      c #586E9C",
     1296"1      c #5B6F9D",
     1297"2      c #61739D",
     1298"3      c #63749E",
     1299"4      c #64749E",
     1300"5      c #68769E",
     1301"6      c #6A779E",
     1302"7      c #6B789E",
     1303"8      c #66759E",
     1304"9      c #6C789D",
     1305"0      c #EEF0ED",
     1306"a      c #D0D3DC",
     1307"b      c #3E51A3",
     1308"c      c #28428B",
     1309"d      c #29428C",
     1310"e      c #425996",
     1311"f      c #455C99",
     1312"g      c #485F9C",
     1313"h      c #49619E",
     1314"i      c #4A63A0",
     1315"j      c #4B64A1",
     1316"k      c #4B65A1",
     1317"l      c #4C66A2",
     1318"m      c #4D67A2",
     1319"n      c #4F69A1",
     1320"o      c #516AA1",
     1321"p      c #536CA0",
     1322"q      c #556DA1",
     1323"r      c #576EA0",
     1324"s      c #586F9F",
     1325"t      c #586E9F",
     1326"u      c #596F9E",
     1327"v      c #5A6F9E",
     1328"w      c #5C709E",
     1329"x      c #5E719E",
     1330"y      c #5F729F",
     1331"z      c #62739F",
     1332"A      c #63739E",
     1333"B      c #64749D",
     1334"C      c #65749E",
     1335"D      c #69769D",
     1336"E      c #6C799E",
     1337"F      c #6D799F",
     1338"G      c #707D9F",
     1339"H      c #717F9E",
     1340"I      c #6E7AA1",
     1341"J      c #6C789E",
     1342"K      c #6F7C9C",
     1343"L      c #6F7D9B",
     1344"M      c #2A4AA0",
     1345"N      c #4971D0",
     1346"O      c #4C72D8",
     1347"P      c #5472C0",
     1348"Q      c #5573BF",
     1349"R      c #5774BF",
     1350"S      c #5875BF",
     1351"T      c #5976C1",
     1352"U      c #5A76C1",
     1353"V      c #5C78C2",
     1354"W      c #5E7AC2",
     1355"X      c #607CC3",
     1356"Y      c #627EC3",
     1357"Z      c #637FC4",
     1358"`      c #6581C5",
     1359" .     c #6682C6",
     1360"..     c #6783C7",
     1361"+.     c #6984C8",
     1362"@.     c #6B85C9",
     1363"#.     c #6D87CA",
     1364"$.     c #6F89CB",
     1365"%.     c #718CCD",
     1366"&.     c #748ECF",
     1367"*.     c #7690D0",
     1368"=.     c #7992D2",
     1369"-.     c #7A93D3",
     1370";.     c #7C95D5",
     1371">.     c #7F98D7",
     1372",.     c #8099D8",
     1373"'.     c #859CDB",
     1374").     c #8AA0DD",
     1375"!.     c #8DA3DF",
     1376"~.     c #8FA5E0",
     1377"{.     c #90A5E0",
     1378"].     c #91A6E1",
     1379"^.     c #91A5E1",
     1380"/.     c #90A4E0",
     1381"(.     c #8EA3DE",
     1382"_.     c #92A6E2",
     1383":.     c #8FA4DF",
     1384"<.     c #90A5DE",
     1385"[.     c #90A5DC",
     1386"}.     c #90A6DB",
     1387"|.     c #91A6E0",
     1388"1.     c #93A7E2",
     1389"2.     c #95AAE6",
     1390"3.     c #99AEEA",
     1391"4.     c #9AB2EA",
     1392"5.     c #99B1E9",
     1393"6.     c #99B1E7",
     1394"7.     c #98AFE6",
     1395"8.     c #93A8E2",
     1396"9.     c #97ACE7",
     1397"0.     c #9AB3EB",
     1398"a.     c #9DB5ED",
     1399"b.     c #9DB6EE",
     1400"c.     c #375095",
     1401"d.     c #4056AD",
     1402"e.     c #506DCD",
     1403"f.     c #4360CC",
     1404"g.     c #345ED6",
     1405"h.     c #335ECF",
     1406"i.     c #355ED6",
     1407"j.     c #355FD6",
     1408"k.     c #365FD6",
     1409"l.     c #355FD0",
     1410"m.     c #3760D5",
     1411"n.     c #3A63D4",
     1412"o.     c #3C63D1",
     1413"p.     c #3B63CD",
     1414"q.     c #3B63C9",
     1415"r.     c #3B62C9",
     1416"s.     c #3D63C8",
     1417"t.     c #4065C5",
     1418"u.     c #4567C5",
     1419"v.     c #496BC5",
     1420"w.     c #4F70C7",
     1421"x.     c #5273C8",
     1422"y.     c #5475CA",
     1423"z.     c #5777CB",
     1424"A.     c #5879CD",
     1425"B.     c #5A7BCE",
     1426"C.     c #5D7DCF",
     1427"D.     c #5F7ECF",
     1428"E.     c #617FD0",
     1429"F.     c #6381D1",
     1430"G.     c #6583D2",
     1431"H.     c #6785D2",
     1432"I.     c #6886D3",
     1433"J.     c #6A88D4",
     1434"K.     c #6C89D5",
     1435"L.     c #6E8BD6",
     1436"M.     c #708CD7",
     1437"N.     c #718DD8",
     1438"O.     c #738EDA",
     1439"P.     c #748FDB",
     1440"Q.     c #7691DC",
     1441"R.     c #7893DD",
     1442"S.     c #7994DD",
     1443"T.     c #7A96DE",
     1444"U.     c #7B97DF",
     1445"V.     c #7C98E0",
     1446"W.     c #7E9AE2",
     1447"X.     c #7F9BE3",
     1448"Y.     c #829DE4",
     1449"Z.     c #849FE5",
     1450"`.     c #87A0E6",
     1451" +     c #88A1E7",
     1452".+     c #89A2E6",
     1453"++     c #8CA3E7",
     1454"@+     c #8EA5E9",
     1455"#+     c #8EA6E9",
     1456"$+     c #8FA7E9",
     1457"%+     c #8FA8E8",
     1458"&+     c #8FA9E8",
     1459"*+     c #91A9E8",
     1460"=+     c #90A7E8",
     1461"-+     c #8FA8EA",
     1462";+     c #90AAEA",
     1463">+     c #93ABEA",
     1464",+     c #95ABEA",
     1465"'+     c #93ABE9",
     1466")+     c #94ABEA",
     1467"!+     c #90A9EA",
     1468"~+     c #93AAE9",
     1469"{+     c #273E7E",
     1470"]+     c #345ED5",
     1471"^+     c #3D60CE",
     1472"/+     c #3D60CF",
     1473"(+     c #345ECF",
     1474"_+     c #335ED0",
     1475":+     c #355FD3",
     1476"<+     c #3A60CE",
     1477"[+     c #3A5FCB",
     1478"}+     c #385FC9",
     1479"|+     c #3B60C8",
     1480"1+     c #3C63CB",
     1481"2+     c #3E64CB",
     1482"3+     c #4166CA",
     1483"4+     c #4568C9",
     1484"5+     c #4A6CC7",
     1485"6+     c #4F71C8",
     1486"7+     c #5172CA",
     1487"8+     c #5475CE",
     1488"9+     c #5678D3",
     1489"0+     c #597CD6",
     1490"a+     c #5C7ED7",
     1491"b+     c #5E7FD8",
     1492"c+     c #6181D9",
     1493"d+     c #6383DA",
     1494"e+     c #6585DA",
     1495"f+     c #6786DB",
     1496"g+     c #6988DC",
     1497"h+     c #6B8ADD",
     1498"i+     c #6D8BDE",
     1499"j+     c #6F8DDE",
     1500"k+     c #718EDF",
     1501"l+     c #728FE0",
     1502"m+     c #7390E1",
     1503"n+     c #7390E2",
     1504"o+     c #7491E3",
     1505"p+     c #7592E4",
     1506"q+     c #7693E4",
     1507"r+     c #7794E5",
     1508"s+     c #7894E5",
     1509"t+     c #7995E6",
     1510"u+     c #7B96E6",
     1511"v+     c #7C97E7",
     1512"w+     c #7D9AE8",
     1513"x+     c #7F9CE9",
     1514"y+     c #829DE9",
     1515"z+     c #849EE9",
     1516"A+     c #859EE9",
     1517"B+     c #87A0E7",
     1518"C+     c #8AA2E7",
     1519"D+     c #8BA3E8",
     1520"E+     c #89A2E7",
     1521"F+     c #8CA6EA",
     1522"G+     c #8BA6EA",
     1523"H+     c #8BA7EA",
     1524"I+     c #8CA3E8",
     1525"J+     c #8BA8EA",
     1526"K+     c #8CA7EA",
     1527"L+     c #8CA8EA",
     1528"M+     c #4659C7",
     1529"N+     c #355ECF",
     1530"O+     c #3660CF",
     1531"P+     c #3860CE",
     1532"Q+     c #3961CD",
     1533"R+     c #3B61CB",
     1534"S+     c #3B61CA",
     1535"T+     c #3D62CA",
     1536"U+     c #3D63CA",
     1537"V+     c #4165CB",
     1538"W+     c #456ACB",
     1539"X+     c #4B6FCD",
     1540"Y+     c #5174CE",
     1541"Z+     c #5275D1",
     1542"`+     c #5477D4",
     1543" @     c #5678D9",
     1544".@     c #587ADB",
     1545"+@     c #597BDB",
     1546"@@     c #5B7DDC",
     1547"#@     c #5E7FDC",
     1548"$@     c #6081DD",
     1549"%@     c #6283DE",
     1550"&@     c #6484DF",
     1551"*@     c #6787E0",
     1552"=@     c #6989E1",
     1553"-@     c #6B8BE1",
     1554";@     c #6D8DE2",
     1555">@     c #6F8EE3",
     1556",@     c #718FE4",
     1557"'@     c #7290E4",
     1558")@     c #7491E5",
     1559"!@     c #7692E6",
     1560"~@     c #7793E5",
     1561"{@     c #7894E6",
     1562"]@     c #7895E7",
     1563"^@     c #7996E8",
     1564"/@     c #7A97E8",
     1565"(@     c #7B98E9",
     1566"_@     c #7D99E8",
     1567":@     c #7F9AE8",
     1568"<@     c #7F9BE9",
     1569"[@     c #7F9CEA",
     1570"}@     c #859EE8",
     1571"|@     c #859FE8",
     1572"1@     c #85A0E9",
     1573"2@     c #869FE9",
     1574"3@     c #86A1E7",
     1575"4@     c #86A0E9",
     1576"5@     c #87A1E7",
     1577"6@     c #88A2E7",
     1578"7@     c #87A1E9",
     1579"8@     c #5A6FCA",
     1580"9@     c #365FCF",
     1581"0@     c #345ED0",
     1582"a@     c #385FCC",
     1583"b@     c #385FCE",
     1584"c@     c #3A61CC",
     1585"d@     c #3B62CD",
     1586"e@     c #3E64CD",
     1587"f@     c #4167CF",
     1588"g@     c #4469CF",
     1589"h@     c #486CD1",
     1590"i@     c #4D71D2",
     1591"j@     c #5175D4",
     1592"k@     c #5376D6",
     1593"l@     c #5578DA",
     1594"m@     c #5679DC",
     1595"n@     c #587BDD",
     1596"o@     c #5A7DDE",
     1597"p@     c #5D80DE",
     1598"q@     c #5F82DF",
     1599"r@     c #6284DF",
     1600"s@     c #6585E0",
     1601"t@     c #6787E1",
     1602"u@     c #6988E2",
     1603"v@     c #6B8AE2",
     1604"w@     c #6D8CE3",
     1605"x@     c #6E8DE3",
     1606"y@     c #708EE4",
     1607"z@     c #718FE3",
     1608"A@     c #7391E4",
     1609"B@     c #7592E5",
     1610"C@     c #7895E5",
     1611"D@     c #7996E6",
     1612"E@     c #7A97E6",
     1613"F@     c #7B98E7",
     1614"G@     c #7A98E8",
     1615"H@     c #7B99E9",
     1616"I@     c #7E9AE9",
     1617"J@     c #7D9AE9",
     1618"K@     c #7E9AEA",
     1619"L@     c #809CE9",
     1620"M@     c #819DE8",
     1621"N@     c #7F9BEA",
     1622"O@     c #819DE9",
     1623"P@     c #819CE9",
     1624"Q@     c #839EE9",
     1625"R@     c #839EE8",
     1626"S@     c #839DEA",
     1627"T@     c #859FE9",
     1628"U@     c #87A0E8",
     1629"V@     c #86A0E8",
     1630"W@     c #87A1E8",
     1631"X@     c #3760CF",
     1632"Y@     c #3A61CE",
     1633"Z@     c #3A62CD",
     1634"`@     c #3F66CE",
     1635" #     c #4368D0",
     1636".#     c #466CD2",
     1637"+#     c #496DD5",
     1638"@#     c #4E72D6",
     1639"##     c #5175D8",
     1640"$#     c #5276DA",
     1641"%#     c #5578DC",
     1642"&#     c #577ADC",
     1643"*#     c #597CDD",
     1644"=#     c #5B7DDD",
     1645"-#     c #5D7FDE",
     1646";#     c #5E81DE",
     1647">#     c #6183DF",
     1648",#     c #6386DF",
     1649"'#     c #6687E0",
     1650")#     c #6888E0",
     1651"!#     c #6A89E1",
     1652"~#     c #6C8AE1",
     1653"{#     c #6E8CE2",
     1654"]#     c #6F8DE2",
     1655"^#     c #7390E4",
     1656"/#     c #7390E3",
     1657"(#     c #7491E4",
     1658"_#     c #7693E5",
     1659":#     c #7895E6",
     1660"<#     c #7896E6",
     1661"[#     c #7997E7",
     1662"}#     c #7B97E7",
     1663"|#     c #7B98E8",
     1664"1#     c #7C98E8",
     1665"2#     c #7E9BE9",
     1666"3#     c #809CEA",
     1667"4#     c #819CEA",
     1668"5#     c #839DE9",
     1669"6#     c #365FD0",
     1670"7#     c #3660D0",
     1671"8#     c #3961CF",
     1672"9#     c #3B63CF",
     1673"0#     c #3D64D0",
     1674"a#     c #4067D0",
     1675"b#     c #4469D2",
     1676"c#     c #466BD3",
     1677"d#     c #496ED5",
     1678"e#     c #4C71D6",
     1679"f#     c #4E72D8",
     1680"g#     c #5074D9",
     1681"h#     c #5376DB",
     1682"i#     c #5578DB",
     1683"j#     c #587ADC",
     1684"k#     c #5B7CDC",
     1685"l#     c #5D7EDD",
     1686"m#     c #5F80DD",
     1687"n#     c #6081DE",
     1688"o#     c #6383DE",
     1689"p#     c #6686DF",
     1690"q#     c #6887E0",
     1691"r#     c #6988E0",
     1692"s#     c #6B89E1",
     1693"t#     c #6C8AE0",
     1694"u#     c #6E8CE1",
     1695"v#     c #708EE2",
     1696"w#     c #718FE2",
     1697"x#     c #7290E3",
     1698"y#     c #7391E2",
     1699"z#     c #7492E1",
     1700"A#     c #7592E2",
     1701"B#     c #7691E3",
     1702"C#     c #7591E3",
     1703"D#     c #7692E3",
     1704"E#     c #7693E3",
     1705"F#     c #7793E4",
     1706"G#     c #7893E4",
     1707"H#     c #7994E5",
     1708"I#     c #7D97E8",
     1709"J#     c #7E98E8",
     1710"K#     c #7D98E8",
     1711"L#     c #7D99E9",
     1712"M#     c #7D9BEA",
     1713"N#     c #7D9CEA",
     1714"O#     c #7E99E8",
     1715"P#     c #7D9AEA",
     1716"Q#     c #7C9BEA",
     1717"R#     c #7C9CEA",
     1718"S#     c #355FCF",
     1719"T#     c #3860D0",
     1720"U#     c #3A62D0",
     1721"V#     c #3C64D1",
     1722"W#     c #4167D1",
     1723"X#     c #4369D3",
     1724"Y#     c #466BD4",
     1725"Z#     c #486DD5",
     1726"`#     c #4A6ED7",
     1727" $     c #4C70D8",
     1728".$     c #5478D9",
     1729"+$     c #577BDA",
     1730"@$     c #597DDB",
     1731"#$     c #5B7EDB",
     1732"$$     c #5D7FDC",
     1733"%$     c #6182DE",
     1734"&$     c #6284DE",
     1735"*$     c #6485DF",
     1736"=$     c #6586DF",
     1737"-$     c #6787DF",
     1738";$     c #6888DF",
     1739">$     c #6A8ADF",
     1740",$     c #6C8BE0",
     1741"'$     c #6D8CE0",
     1742")$     c #6E8DE1",
     1743"!$     c #6F8DE1",
     1744"~$     c #708EE1",
     1745"{$     c #718FE0",
     1746"]$     c #728FE1",
     1747"^$     c #7390E0",
     1748"/$     c #738FE0",
     1749"($     c #7490E1",
     1750"_$     c #7590E1",
     1751":$     c #7591E1",
     1752"<$     c #7592E1",
     1753"[$     c #7692E2",
     1754"}$     c #7794E2",
     1755"|$     c #7894E3",
     1756"1$     c #7996E3",
     1757"2$     c #7A96E5",
     1758"3$     c #7B98E6",
     1759"4$     c #7B9AE8",
     1760"5$     c #7C99E8",
     1761"6$     c #7C96E5",
     1762"7$     c #7D97E7",
     1763"8$     c #7C99E9",
     1764"9$     c #7B9AE9",
     1765"0$     c #7B9AEA",
     1766"a$     c #5B6DCF",
     1767"b$     c #305EC8",
     1768"c$     c #335ECE",
     1769"d$     c #305ECA",
     1770"e$     c #345FCF",
     1771"f$     c #3761D0",
     1772"g$     c #3A62D1",
     1773"h$     c #3C64D2",
     1774"i$     c #4066D3",
     1775"j$     c #466BD5",
     1776"k$     c #486ED6",
     1777"l$     c #4A6ED6",
     1778"m$     c #4D71D8",
     1779"n$     c #4F72D9",
     1780"o$     c #5073D9",
     1781"p$     c #4F72D8",
     1782"q$     c #5074D8",
     1783"r$     c #5276D9",
     1784"s$     c #587ADA",
     1785"t$     c #5B7CDB",
     1786"u$     c #5D7EDC",
     1787"v$     c #5F7FDD",
     1788"w$     c #6081DC",
     1789"x$     c #6182DD",
     1790"y$     c #6283DD",
     1791"z$     c #6484DE",
     1792"A$     c #6585DD",
     1793"B$     c #6787DE",
     1794"C$     c #6988DF",
     1795"D$     c #6A89DE",
     1796"E$     c #6C8ADF",
     1797"F$     c #6D8BDF",
     1798"G$     c #6E8CE0",
     1799"H$     c #6F8DE0",
     1800"I$     c #718EE0",
     1801"J$     c #728FDF",
     1802"K$     c #728FDE",
     1803"L$     c #7290E0",
     1804"M$     c #7190E0",
     1805"N$     c #7291E0",
     1806"O$     c #7191E0",
     1807"P$     c #7392E1",
     1808"Q$     c #7493E1",
     1809"R$     c #7594E1",
     1810"S$     c #7594E2",
     1811"T$     c #7694E2",
     1812"U$     c #7695E2",
     1813"V$     c #7A96E4",
     1814"W$     c #7895E2",
     1815"X$     c #7A96E2",
     1816"Y$     c #7A96E3",
     1817"Z$     c #7B96E3",
     1818"`$     c #7996E1",
     1819" %     c #7C96E4",
     1820".%     c #305EC9",
     1821"+%     c #315ECC",
     1822"@%     c #325ECE",
     1823"#%     c #3760D0",
     1824"$%     c #3962D1",
     1825"%%     c #3E66D3",
     1826"&%     c #4268D4",
     1827"*%     c #446BD5",
     1828"=%     c #476CD6",
     1829"-%     c #496ED7",
     1830";%     c #4B6FD7",
     1831">%     c #4C70D7",
     1832",%     c #4E71D7",
     1833"'%     c #5074D7",
     1834")%     c #5276D8",
     1835"!%     c #5376D8",
     1836"~%     c #5779DA",
     1837"{%     c #597ADA",
     1838"]%     c #5A7BDB",
     1839"^%     c #5B7CDA",
     1840"/%     c #5D7EDB",
     1841"(%     c #5E7FDB",
     1842"_%     c #6182DB",
     1843":%     c #6384DC",
     1844"<%     c #6586DD",
     1845"[%     c #6686DC",
     1846"}%     c #6887DD",
     1847"|%     c #6988DD",
     1848"1%     c #6A8ADE",
     1849"2%     c #6B8BDE",
     1850"3%     c #6C8CDE",
     1851"4%     c #6E8DDF",
     1852"5%     c #6E8CDF",
     1853"6%     c #6D8DDF",
     1854"7%     c #6C8BDF",
     1855"8%     c #6F8DDF",
     1856"9%     c #718FDF",
     1857"0%     c #7290DF",
     1858"a%     c #7391E0",
     1859"b%     c #7491E0",
     1860"c%     c #7292E1",
     1861"d%     c #3959C5",
     1862"e%     c #345BC5",
     1863"f%     c #315EC8",
     1864"g%     c #355BC5",
     1865"h%     c #325EC8",
     1866"i%     c #315ECB",
     1867"j%     c #345DCC",
     1868"k%     c #335ECD",
     1869"l%     c #345ECD",
     1870"m%     c #355FCE",
     1871"n%     c #3862D0",
     1872"o%     c #3E66D2",
     1873"p%     c #456BD5",
     1874"q%     c #476CD5",
     1875"r%     c #4B6ED7",
     1876"s%     c #4B6FD6",
     1877"t%     c #4B6FD5",
     1878"u%     c #4D71D6",
     1879"v%     c #5073D7",
     1880"w%     c #5174D7",
     1881"x%     c #5275D8",
     1882"y%     c #5577D8",
     1883"z%     c #5678D8",
     1884"A%     c #5779D9",
     1885"B%     c #587AD8",
     1886"C%     c #597CD9",
     1887"D%     c #5B7DD9",
     1888"E%     c #5D7FDA",
     1889"F%     c #5F80DB",
     1890"G%     c #6182DC",
     1891"H%     c #6484DC",
     1892"I%     c #6585DC",
     1893"J%     c #6787DD",
     1894"K%     c #6988DE",
     1895"L%     c #6B8ADE",
     1896"M%     c #6B8ADF",
     1897"N%     c #6989DE",
     1898"O%     c #6B89DE",
     1899"P%     c #6E8BDF",
     1900"Q%     c #708CDE",
     1901"R%     c #708DDF",
     1902"S%     c #708FDF",
     1903"T%     c #728EDF",
     1904"U%     c #6F8EDD",
     1905"V%     c #728EDD",
     1906"W%     c #7390DF",
     1907"X%     c #7490DF",
     1908"Y%     c #335DC8",
     1909"Z%     c #3759C5",
     1910"`%     c #3859C5",
     1911" &     c #335EC8",
     1912".&     c #325DCA",
     1913"+&     c #345CCB",
     1914"@&     c #335DCC",
     1915"#&     c #345DCD",
     1916"$&     c #355FCD",
     1917"%&     c #3861D0",
     1918"&&     c #3B64D1",
     1919"*&     c #3E65D2",
     1920"=&     c #4168D3",
     1921"-&     c #456AD5",
     1922";&     c #4B6ED5",
     1923">&     c #4C6FD4",
     1924",&     c #4D70D5",
     1925"'&     c #4F72D6",
     1926")&     c #5173D6",
     1927"!&     c #5375D7",
     1928"~&     c #5476D8",
     1929"{&     c #5577D7",
     1930"]&     c #5477D8",
     1931"^&     c #5677D8",
     1932"/&     c #5879D9",
     1933"(&     c #597AD9",
     1934"_&     c #5C7DDA",
     1935":&     c #6080DC",
     1936"<&     c #6080DB",
     1937"[&     c #6181DC",
     1938"}&     c #6282DC",
     1939"|&     c #6383DD",
     1940"1&     c #6484DD",
     1941"2&     c #6686DE",
     1942"3&     c #6685DE",
     1943"4&     c #6786DE",
     1944"5&     c #6687DE",
     1945"6&     c #6887DE",
     1946"7&     c #6987DE",
     1947"8&     c #6788DF",
     1948"9&     c #6785DF",
     1949"0&     c #6B89DF",
     1950"a&     c #6C89DF",
     1951"b&     c #6F8DDD",
     1952"c&     c #6D8CDE",
     1953"d&     c #445BBB",
     1954"e&     c #3759BE",
     1955"f&     c #375AC6",
     1956"g&     c #355CC8",
     1957"h&     c #345CCA",
     1958"i&     c #355ECC",
     1959"j&     c #365FCD",
     1960"k&     c #3761CE",
     1961"l&     c #3A63D0",
     1962"m&     c #3D65D1",
     1963"n&     c #466AD4",
     1964"o&     c #476BD4",
     1965"p&     c #486CD3",
     1966"q&     c #4A6ED4",
     1967"r&     c #4B6ED4",
     1968"s&     c #4E71D6",
     1969"t&     c #4F71D5",
     1970"u&     c #5072D6",
     1971"v&     c #5274D7",
     1972"w&     c #5273D7",
     1973"x&     c #5274D6",
     1974"y&     c #5476D7",
     1975"z&     c #5779D8",
     1976"A&     c #587AD9",
     1977"B&     c #5A7CDA",
     1978"C&     c #5C7DDB",
     1979"D&     c #5D7EDA",
     1980"E&     c #6081DA",
     1981"F&     c #6181DB",
     1982"G&     c #6283DC",
     1983"H&     c #6483DD",
     1984"I&     c #6483DE",
     1985"J&     c #6585DE",
     1986"K&     c #6786DF",
     1987"L&     c #6886DE",
     1988"M&     c #6887DF",
     1989"N&     c #6987DF",
     1990"O&     c #6A88DF",
     1991"P&     c #6786E0",
     1992"Q&     c #6A86DE",
     1993"R&     c #6B89E0",
     1994"S&     c #365BC8",
     1995"T&     c #365CC8",
     1996"U&     c #375DCA",
     1997"V&     c #375FCB",
     1998"W&     c #3860CD",
     1999"X&     c #3C63D0",
     2000"Y&     c #4167D2",
     2001"Z&     c #4268D2",
     2002"`&     c #4368D2",
     2003" *     c #4367D2",
     2004".*     c #4568D2",
     2005"+*     c #466AD2",
     2006"@*     c #496CD3",
     2007"#*     c #4A6DD3",
     2008"$*     c #4A6DD4",
     2009"%*     c #4D70D4",
     2010"&*     c #4F72D5",
     2011"**     c #4C70D4",
     2012"=*     c #4E72D5",
     2013"-*     c #5173D5",
     2014";*     c #5375D6",
     2015">*     c #597BDA",
     2016",*     c #5B7DDA",
     2017"'*     c #5C7EDB",
     2018")*     c #5D7FDB",
     2019"!*     c #5E80DB",
     2020"~*     c #5E81DA",
     2021"{*     c #5F81DB",
     2022"]*     c #5F82DB",
     2023"^*     c #6384DD",
     2024"/*     c #6384DE",
     2025"(*     c #6585DF",
     2026"_*     c #6486E0",
     2027":*     c #6583DD",
     2028"<*     c #6386E0",
     2029"[*     c #6686E0",
     2030"}*     c #6B86DD",
     2031"|*     c #6D86DD",
     2032"1*     c #6086E0",
     2033"2*     c #5573CD",
     2034"3*     c #3959C3",
     2035"4*     c #3959C4",
     2036"5*     c #3759C0",
     2037"6*     c #375BC7",
     2038"7*     c #365CC7",
     2039"8*     c #395FCC",
     2040"9*     c #3B62CE",
     2041"0*     c #3E64D0",
     2042"a*     c #4066D1",
     2043"b*     c #4166D1",
     2044"c*     c #4064CF",
     2045"d*     c #4065CF",
     2046"e*     c #4266D0",
     2047"f*     c #4468D1",
     2048"g*     c #4569D1",
     2049"h*     c #476BD2",
     2050"i*     c #466AD1",
     2051"j*     c #476AD2",
     2052"k*     c #456AD1",
     2053"l*     c #496DD2",
     2054"m*     c #4A6FD3",
     2055"n*     c #496ED2",
     2056"o*     c #4B70D4",
     2057"p*     c #4D71D4",
     2058"q*     c #4E72D4",
     2059"r*     c #5073D4",
     2060"s*     c #5174D5",
     2061"t*     c #5175D5",
     2062"u*     c #5276D6",
     2063"v*     c #5377D6",
     2064"w*     c #5478D7",
     2065"x*     c #5579D7",
     2066"y*     c #567AD8",
     2067"z*     c #577BD9",
     2068"A*     c #597CD8",
     2069"B*     c #5A7DD9",
     2070"C*     c #5A7ED9",
     2071"D*     c #5B7FDA",
     2072"E*     c #5C80DA",
     2073"F*     c #5D80DA",
     2074"G*     c #5E81DB",
     2075"H*     c #5D80DB",
     2076"I*     c #6082DC",
     2077"J*     c #6183DD",
     2078"K*     c #6183DE",
     2079"L*     c #6082DB",
     2080"M*     c #6282DE",
     2081"N*     c #6682DE",
     2082"O*     c #6583DE",
     2083"P*     c #3759BF",
     2084"Q*     c #375AC2",
     2085"R*     c #375AC1",
     2086"S*     c #375AC4",
     2087"T*     c #395DCA",
     2088"U*     c #3A5ECA",
     2089"V*     c #3C60CC",
     2090"W*     c #3D61CD",
     2091"X*     c #3D61CC",
     2092"Y*     c #3C61CD",
     2093"Z*     c #3E62CD",
     2094"`*     c #3F64CE",
     2095" =     c #4266CF",
     2096".=     c #4468D0",
     2097"+=     c #4267CF",
     2098"@=     c #4166CE",
     2099"#=     c #4065CE",
     2100"$=     c #4166CD",
     2101"%=     c #4267CE",
     2102"&=     c #456AD0",
     2103"*=     c #4368CE",
     2104"==     c #4468CF",
     2105"-=     c #4569D0",
     2106";=     c #486BD1",
     2107">=     c #4B6FD3",
     2108",=     c #4C70D3",
     2109"'=     c #4F73D4",
     2110")=     c #5275D5",
     2111"!=     c #5477D6",
     2112"~=     c #577BD7",
     2113"{=     c #587CD8",
     2114"]=     c #577CD8",
     2115"^=     c #597DD9",
     2116"/=     c #5A7DDA",
     2117"(=     c #597DDA",
     2118"_=     c #587CDA",
     2119":=     c #5A7EDA",
     2120"<=     c #567BD8",
     2121"[=     c #557AD9",
     2122"}=     c #567BD9",
     2123"|=     c #577CD9",
     2124"1=     c #587DD9",
     2125"2=     c #587ED9",
     2126"3=     c #577ED8",
     2127"4=     c #587DD8",
     2128"5=     c #587ED8",
     2129"6=     c #567ED7",
     2130"7=     c #526ABD",
     2131"8=     c #3759C1",
     2132"9=     c #385BC7",
     2133"0=     c #395CC8",
     2134"a=     c #3B5DC9",
     2135"b=     c #3B5ECA",
     2136"c=     c #3A5FCA",
     2137"d=     c #3B60CC",
     2138"e=     c #3C61CC",
     2139"f=     c #3D62CD",
     2140"g=     c #3E63CD",
     2141"h=     c #3C61CB",
     2142"i=     c #3C61CA",
     2143"j=     c #3D62CB",
     2144"k=     c #3F64CC",
     2145"l=     c #4065CD",
     2146"m=     c #4669D0",
     2147"n=     c #476AD0",
     2148"o=     c #496BD1",
     2149"p=     c #4A6DD2",
     2150"q=     c #4B6ED2",
     2151"r=     c #4D71D3",
     2152"s=     c #4E73D4",
     2153"t=     c #4F74D4",
     2154"u=     c #5075D5",
     2155"v=     c #5276D5",
     2156"w=     c #5377D7",
     2157"x=     c #5278D7",
     2158"y=     c #5277D6",
     2159"z=     c #5378D7",
     2160"A=     c #5379D8",
     2161"B=     c #5379D9",
     2162"C=     c #5278D8",
     2163"D=     c #5178D7",
     2164"E=     c #3355C0",
     2165"F=     c #3556C1",
     2166"G=     c #395AC6",
     2167"H=     c #385AC7",
     2168"I=     c #395BC7",
     2169"J=     c #395EC9",
     2170"K=     c #395FCA",
     2171"L=     c #3B60CA",
     2172"M=     c #3B60CB",
     2173"N=     c #375DC7",
     2174"O=     c #385EC8",
     2175"P=     c #395FC9",
     2176"Q=     c #3A60CA",
     2177"R=     c #3D63CC",
     2178"S=     c #4367CF",
     2179"T=     c #476BD1",
     2180"U=     c #4A6ED2",
     2181"V=     c #4B6FD2",
     2182"W=     c #4C6FD2",
     2183"X=     c #4D70D1",
     2184"Y=     c #4E71D2",
     2185"Z=     c #4E72D2",
     2186"`=     c #4E74D4",
     2187" -     c #4E75D5",
     2188".-     c #4E75D4",
     2189"+-     c #4F75D3",
     2190"@-     c #5075D2",
     2191"#-     c #5075D3",
     2192"$-     c #5177D7",
     2193"%-     c #5178D8",
     2194"&-     c #4F75D5",
     2195"*-     c #5076D5",
     2196"=-     c #4F76D6",
     2197"--     c #5279D9",
     2198";-     c #3C52B1",
     2199">-     c #3656C3",
     2200",-     c #3757C5",
     2201"'-     c #3758C6",
     2202")-     c #3759C6",
     2203"!-     c #375BC6",
     2204"~-     c #385CC7",
     2205"{-     c #385DC8",
     2206"]-     c #365CC6",
     2207"^-     c #355BC6",
     2208"/-     c #355CC6",
     2209"(-     c #365DC7",
     2210"_-     c #375EC8",
     2211":-     c #375CC6",
     2212"<-     c #385EC6",
     2213"[-     c #3A5FC7",
     2214"}-     c #3C60C8",
     2215"|-     c #3D61C9",
     2216"1-     c #3E62CA",
     2217"2-     c #4063CC",
     2218"3-     c #4165CE",
     2219"4-     c #4268D0",
     2220"5-     c #4269D1",
     2221"6-     c #436AD2",
     2222"7-     c #446AD2",
     2223"8-     c #456BD2",
     2224"9-     c #496CD1",
     2225"0-     c #4C6CD0",
     2226"a-     c #4D6CCF",
     2227"b-     c #4E6DD0",
     2228"c-     c #4F6ECF",
     2229"d-     c #4E6FCF",
     2230"e-     c #4C70CF",
     2231"f-     c #4A71D0",
     2232"g-     c #4F6FCF",
     2233"h-     c #4B71D0",
     2234"i-     c #4A72D1",
     2235"j-     c #4B73D4",
     2236"k-     c #4F70D0",
     2237"l-     c #4C73D3",
     2238"m-     c #4C73D6",
     2239"n-     c #4B72D2",
     2240"o-     c #4B71D1",
     2241"p-     c #4C73D7",
     2242"q-     c #3354C0",
     2243"r-     c #3152BE",
     2244"s-     c #3052BE",
     2245"t-     c #3051BF",
     2246"u-     c #2E4FBF",
     2247"v-     c #2E4FBE",
     2248"w-     c #2E50BF",
     2249"x-     c #2F50BF",
     2250"y-     c #3156C4",
     2251"z-     c #2F56C5",
     2252"A-     c #2E57C5",
     2253"B-     c #2F57C5",
     2254"C-     c #3057C6",
     2255"D-     c #3258C6",
     2256"E-     c #3459C7",
     2257"F-     c #365AC7",
     2258"G-     c #385BC8",
     2259"H-     c #3B5DCA",
     2260"I-     c #3B5DCB",
     2261"J-     c #3C5ECC",
     2262"K-     c #3C60CD",
     2263"L-     c #3C62CE",
     2264"M-     c #3D65D0",
     2265"N-     c #3D66D1",
     2266"O-     c #4166D2",
     2267"P-     c #4667D2",
     2268"Q-     c #4A67D1",
     2269"R-     c #4C68D0",
     2270"S-     c #4C69CF",
     2271"T-     c #4D6BCE",
     2272"U-     c #4E6DCD",
     2273"V-     c #4E6ECE",
     2274"W-     c #4E6DCE",
     2275"X-     c #4970D0",
     2276"Y-     c #4770D0",
     2277"Z-     c #4B6BCE",
     2278"`-     c #4A6CCE",
     2279" ;     c #496DCF",
     2280".;     c #476FD0",
     2281"+;     c #4870D0",
     2282"@;     c #486DCF",
     2283"#;     c #242F79",
     2284"$;     c #2F41AC",
     2285"%;     c #2040B8",
     2286"&;     c #2041B8",
     2287"*;     c #2243B3",
     2288"=;     c #2243B8",
     2289"-;     c #2343B8",
     2290";;     c #2444B8",
     2291">;     c #2445B8",
     2292",;     c #2445B6",
     2293"';     c #2445B7",
     2294");     c #2444B9",
     2295"!;     c #2949BE",
     2296"~;     c #2649BF",
     2297"{;     c #234BBF",
     2298"];     c #224CBF",
     2299"^;     c #224AC0",
     2300"/;     c #244CC0",
     2301"(;     c #254DC0",
     2302"_;     c #254DC1",
     2303":;     c #264DC2",
     2304"<;     c #274EC3",
     2305"[;     c #274CC3",
     2306"};     c #274DC4",
     2307"|;     c #254DC5",
     2308"1;     c #214EC5",
     2309"2;     c #204FC6",
     2310"3;     c #1F50C8",
     2311"4;     c #2151C9",
     2312"5;     c #2B53C8",
     2313"6;     c #3154C7",
     2314"7;     c #3255C6",
     2315"8;     c #2F57C7",
     2316"9;     c #2C58C9",
     2317"0;     c #2D59CA",
     2318"a;     c #2D58C9",
     2319"b;     c #2E5BCC",
     2320"c;     c #325ECC",
     2321"d;     c #325ECB",
     2322"e;     c #1F40B1",
     2323"f;     c #1F40B2",
     2324"g;     c #1F40B3",
     2325"h;     c #2A44BD",
     2326"i;     c #2845BE",
     2327"j;     c #2745BE",
     2328"k;     c #2646BF",
     2329"l;     c #2546BE",
     2330"m;     c #2347BF",
     2331"n;     c #2147BF",
     2332"o;     c #2048C0",
     2333"p;     c #1D48C0",
     2334"q;     c #1C48C0",
     2335"r;     c #1B47C0",
     2336"s;     c #1C48BF",
     2337"t;     c #1E49BE",
     2338"u;     c #214ABD",
     2339"v;     c #244CBD",
     2340"w;     c #264DBE",
     2341"x;     c #254EC0",
     2342"y;     c #214FC2",
     2343"z;     c #1B51C5",
     2344"A;     c #1C51C7",
     2345"B;     c #2250C8",
     2346"C;     c #2A52C8",
     2347"D;     c #3254C6",
     2348"E;     c #3355C5",
     2349"F;     c #3154C8",
     2350"G;     c #3355C6",
     2351"H;     c #2F57C8",
     2352"I;     c #2E58C9",
     2353"J;     c #2E59C9",
     2354"K;     c #3059C9",
     2355"L;     c #2040B6",
     2356"M;     c #2743BB",
     2357"N;     c #2844BC",
     2358"O;     c #2743BD",
     2359"P;     c #2844BE",
     2360"Q;     c #2844BD",
     2361"R;     c #2346BE",
     2362"S;     c #2047BF",
     2363"T;     c #1E48C0",
     2364"U;     c #1D47C0",
     2365"V;     c #1D49BF",
     2366"W;     c #1F49BF",
     2367"X;     c #204ABE",
     2368"Y;     c #254DBF",
     2369"Z;     c #234EC0",
     2370"`;     c #2050C1",
     2371" >     c #1C51C3",
     2372".>     c #1F51C6",
     2373"+>     c #2651C8",
     2374"@>     c #2D53C7",
     2375"#>     c #3155C6",
     2376"$>     c #3155C7",
     2377"%>     c #3355C7",
     2378"&>     c #3254C7",
     2379"*>     c #1E40B1",
     2380"=>     c #2141B8",
     2381"->     c #2442B9",
     2382";>     c #2744BB",
     2383">>     c #2945BB",
     2384",>     c #2A45BB",
     2385"'>     c #2944BA",
     2386")>     c #2745BB",
     2387"!>     c #2545BC",
     2388"~>     c #2246BD",
     2389"{>     c #2047BE",
     2390"]>     c #1F47BD",
     2391"^>     c #1D48BE",
     2392"/>     c #1E49C0",
     2393"(>     c #1F4AC0",
     2394"_>     c #214BBF",
     2395":>     c #244CBE",
     2396"<>     c #254DBE",
     2397"[>     c #244DBE",
     2398"}>     c #224FBF",
     2399"|>     c #2051C1",
     2400"1>     c #2151C3",
     2401"2>     c #2252C5",
     2402"3>     c #2151C1",
     2403"4>     c #2851C6",
     2404"5>     c #2A50C6",
     2405"6>     c #2E54C6",
     2406"7>     c #1F51C2",
     2407"8>     c #1D52C5",
     2408"9>     c #2651C9",
     2409"0>     c #2950C7",
     2410"a>     c #2D40A5",
     2411"b>     c #2040B0",
     2412"c>     c #1F40B0",
     2413"d>     c #223CAE",
     2414"e>     c #233CAE",
     2415"f>     c #253BAC",
     2416"g>     c #253BAD",
     2417"h>     c #233CB0",
     2418"i>     c #213EB2",
     2419"j>     c #1F3FB4",
     2420"k>     c #1E40B6",
     2421"l>     c #1F3FB7",
     2422"m>     c #1E3EB8",
     2423"n>     c #1F3FB8",
     2424"o>     c #2040B7",
     2425"p>     c #2141B6",
     2426"q>     c #2140B7",
     2427"r>     c #2241B6",
     2428"s>     c #2342B5",
     2429"t>     c #2442B6",
     2430"u>     c #2543B5",
     2431"v>     c #2643B4",
     2432"w>     c #2544B6",
     2433"x>     c #2346B8",
     2434"y>     c #2247B9",
     2435"z>     c #2048BC",
     2436"A>     c #1F48BF",
     2437"B>     c #2049C0",
     2438"C>     c #214AC0",
     2439"D>     c #224BBF",
     2440"E>     c #234CBE",
     2441"F>     c #244DBF",
     2442"G>     c #234CBF",
     2443"H>     c #264DC0",
     2444"I>     c #274EBF",
     2445"J>     c #264DBF",
     2446"K>     c #254EBF",
     2447"L>     c #2050C0",
     2448"M>     c #1F51C1",
     2449"N>     c #1E42A4",
     2450"O>     c #263BA6",
     2451"P>     c #253BA7",
     2452"Q>     c #253CA7",
     2453"R>     c #1E41A5",
     2454"S>     c #1F40AF",
     2455"T>     c #273AAC",
     2456"U>     c #1E40B0",
     2457"V>     c #1F40B5",
     2458"W>     c #1F40B6",
     2459"X>     c #1F40B8",
     2460"Y>     c #1E40B8",
     2461"Z>     c #1F3EB8",
     2462"`>     c #203FB7",
     2463" ,     c #2240B6",
     2464".,     c #2341B7",
     2465"+,     c #2345B9",
     2466"@,     c #2147BB",
     2467"#,     c #2148BA",
     2468"$,     c #2049BB",
     2469"%,     c #2049BD",
     2470"&,     c #2049BF",
     2471"*,     c #224BBE",
     2472"=,     c #244DBD",
     2473"-,     c #244CBF",
     2474";,     c #182969",
     2475">,     c #273BAD",
     2476",,     c #2739AB",
     2477"',     c #263AAC",
     2478"),     c #243CAE",
     2479"!,     c #233DAE",
     2480"~,     c #213EAF",
     2481"{,     c #1F3FB0",
     2482"],     c #2040B4",
     2483"^,     c #1F3FB6",
     2484"/,     c #1E3EB7",
     2485"(,     c #2240B7",
     2486"_,     c #2341B6",
     2487":,     c #2543B4",
     2488"<,     c #2644B3",
     2489"[,     c #2544B5",
     2490"},     c #2545B5",
     2491"|,     c #2547B6",
     2492"1,     c #2548B7",
     2493"2,     c #2349BA",
     2494"3,     c #1F49BE",
     2495"4,     c #2149BD",
     2496"5,     c #2049BE",
     2497"6,     c #214BBE",
     2498"7,     c #2249BE",
     2499"8,     c #234CBD",
     2500"9,     c #2149BE",
     2501"0,     c #1E49BF",
     2502"a,     c #253BA9",
     2503"b,     c #253BAB",
     2504"c,     c #263AAB",
     2505"d,     c #213DAF",
     2506"e,     c #203EAF",
     2507"f,     c #1D40AF",
     2508"g,     c #1D40B0",
     2509"h,     c #1E40B4",
     2510"i,     c #2241B7",
     2511"j,     c #2643B6",
     2512"k,     c #2744B5",
     2513"l,     c #2643B5",
     2514"m,     c #2346B6",
     2515"n,     c #2147B7",
     2516"o,     c #2644B6",
     2517"p,     c #2247B7",
     2518"q,     c #2248B8",
     2519"r,     c #2647B7",
     2520"s,     c #2549B7",
     2521"t,     c #2645B7",
     2522"u,     c #2148B8",
     2523"v,     c #2847B6",
     2524"w,     c #2549B6",
     2525"x,     c #2849B6",
     2526"y,     c #2049B7",
     2527"z,     c #2A49B5",
     2528"A,     c #243BA4",
     2529"B,     c #253BA5",
     2530"C,     c #253BA6",
     2531"D,     c #263AA7",
     2532"E,     c #263AA8",
     2533"F,     c #2739AA",
     2534"G,     c #243CAD",
     2535"H,     c #223DAE",
     2536"I,     c #1F3EAF",
     2537"J,     c #1E3FB0",
     2538"K,     c #1D40B1",
     2539"L,     c #1E3FB1",
     2540"M,     c #1F3FB3",
     2541"N,     c #1F3FB5",
     2542"O,     c #2140B6",
     2543"P,     c #2140B8",
     2544"Q,     c #2744B4",
     2545"R,     c #2746B6",
     2546"S,     c #2947B6",
     2547"T,     c #2946B5",
     2548"U,     c #2A48B6",
     2549"V,     c #3551A8",
     2550"W,     c #1F399C",
     2551"X,     c #143D9F",
     2552"Y,     c #263BA5",
     2553"Z,     c #273BA8",
     2554"`,     c #273BAA",
     2555" '     c #263AAD",
     2556".'     c #233CAD",
     2557"+'     c #213DAE",
     2558"@'     c #203FB2",
     2559"#'     c #2342B6",
     2560"$'     c #2443B6",
     2561"%'     c #2543B6",
     2562"&'     c #2644B5",
     2563"*'     c #133D9E",
     2564"='     c #263BA7",
     2565"-'     c #263BA9",
     2566";'     c #273BA9",
     2567">'     c #263AAA",
     2568",'     c #2539AB",
     2569"''     c #2639AB",
     2570")'     c #253AAC",
     2571"!'     c #243BAD",
     2572"~'     c #223DAF",
     2573"{'     c #203FB0",
     2574"]'     c #2040B1",
     2575"^'     c #2140B3",
     2576"/'     c #2543B1",
     2577"('     c #2744AF",
     2578"_'     c #1A3CA0",
     2579":'     c #1D3BA2",
     2580"<'     c #233BA4",
     2581"['     c #263AA5",
     2582"}'     c #253AA5",
     2583"|'     c #263AA6",
     2584"1'     c #263BA4",
     2585"2'     c #243BA5",
     2586"3'     c #263BA8",
     2587"4'     c #223EAF",
     2588"5'     c #3B4CA5",
     2589"6'     c #1D379A",
     2590"7'     c #1E389C",
     2591"8'     c #1E399F",
     2592"9'     c #1F3BA2",
     2593"0'     c #1F3BA3",
     2594"a'     c #213BA4",
     2595"b'     c #233AA3",
     2596"c'     c #243AA3",
     2597"d'     c #2539A4",
     2598"e'     c #253AA6",
     2599"f'     c #243BA7",
     2600"g'     c #253CAA",
     2601"h'     c #253CAC",
     2602"i'     c #253CAD",
     2603"j'     c #253CAE",
     2604"k'     c #243DAE",
     2605"l'     c #213FAF",
     2606"m'     c #223FAF",
     2607"n'     c #2040AF",
     2608"o'     c #253D93",
     2609"p'     c #1D3894",
     2610"q'     c #1F379A",
     2611"r'     c #1E389B",
     2612"s'     c #1D399C",
     2613"t'     c #1C3A9D",
     2614"u'     c #1B3A9D",
     2615"v'     c #183B9E",
     2616"w'     c #163C9E",
     2617"x'     c #153C9E",
     2618"y'     c #163B9D",
     2619"z'     c #173B9D",
     2620"A'     c #193A9D",
     2621"B'     c #1C3A9E",
     2622"C'     c #1F3AA1",
     2623"D'     c #223AA4",
     2624"E'     c #253BA8",
     2625"F'     c #273BA7",
     2626"G'     c #263CAB",
     2627"H'     c #263CAC",
     2628"I'     c #243EAE",
     2629"J'     c #273BAC",
     2630"K'     c #2A3795",
     2631"L'     c #1F389B",
     2632"M'     c #1D389B",
     2633"N'     c #1C399C",
     2634"O'     c #1B399C",
     2635"P'     c #1A3A9D",
     2636"Q'     c #1D399B",
     2637"R'     c #1B399B",
     2638"S'     c #1A3A9C",
     2639"T'     c #1B3A9F",
     2640"U'     c #1D3AA0",
     2641"V'     c #203BA2",
     2642"W'     c #203BA3",
     2643"X'     c #2639A6",
     2644"Y'     c #1B3692",
     2645"Z'     c #1C3794",
     2646"`'     c #1D3796",
     2647" )     c #1E3898",
     2648".)     c #1E389A",
     2649"+)     c #1F399B",
     2650"@)     c #1A399C",
     2651"#)     c #193A9E",
     2652"$)     c #1A3BA0",
     2653"%)     c #1C3BA2",
     2654"&)     c #1D3CA3",
     2655"*)     c #203CA4",
     2656"=)     c #223BA5",
     2657"-)     c #3C4699",
     2658";)     c #2B4595",
     2659">)     c #1C3793",
     2660",)     c #1D3895",
     2661"')     c #1E3897",
     2662"))     c #1F3998",
     2663"!)     c #1F3999",
     2664"~)     c #1F399A",
     2665"{)     c #1E399C",
     2666"])     c #1C3B9E",
     2667"^)     c #1D3BA0",
     2668"/)     c #1E3CA2",
     2669"()     c #223CA5",
     2670"_)     c #243CA6",
     2671":)     c #596FA9",
     2672"<)     c #3B4894",
     2673"[)     c #314993",
     2674"})     c #29499F",
     2675"|)     c #28489E",
     2676"1)     c #2B4BA1",
     2677"2)     c #2C4BA1",
     2678"3)     c #2D4CA2",
     2679"4)     c #2E4CA3",
     2680"5)     c #2F4CA4",
     2681"6)     c #2E4CA4",
     2682"7)     c #2F4DA3",
     2683"8)     c #2F4DA4",
     2684"9)     c #D3D5D2",
     2685"0)     c #3B4794",
     2686"a)     c #314791",
     2687"b)     c #304892",
     2688"c)     c #304893",
     2689"d)     c #2F4995",
     2690"e)     c #2F4997",
     2691"f)     c #2D4A9A",
     2692"g)     c #2A4A9D",
     2693"h)     c #294A9F",
     2694"i)     c #284AA0",
     2695"j)     c #294AA0",
     2696"k)     c #2B4AA1",
     2697"l)     c #2D4CA3",
     2698"m)     c #C9CAC9",
     2699"n)     c #455D9B",
     2700"o)     c #242F78",
     2701"p)     c #1B2F85",
     2702"q)     c #C6C3C8",
     2703"r)     c #B5B2B6",
     2704"s)     c #B5B7B4",
     2705"t)     c #B5B7B3",
     2706"u)     c #B5B2B5",
     2707"v)     c #B5B3B4",
     2708"w)     c #B5B5B4",
     2709"x)     c #B5B6B3",
     2710"y)     c #B5B4B4",
     2711"z)     c #B5B3B5",
     2712"A)     c #B5B4B5",
     2713"B)     c #B5B5B5",
     2714"C)     c #B5B5B3",
     2715"D)     c #B5B5B6",
     2716"E)     c #BAC3BE",
     2717"F)     c #B9C3BD",
     2718"G)     c #C1C3C4",
     2719"H)     c #BFC3C2",
     2720"I)     c #B9C3BE",
     2721"J)     c #BBC3BF",
     2722"K)     c #BDC3C1",
     2723"L)     c #C0C3C3",
     2724"M)     c #BEC3C1",
     2725"N)     c #C2C3C5",
     2726"O)     c #E6E3E8",
     2727"P)     c #E0E2DF",
     2728"Q)     c #E1E1E1",
     2729"R)     c #E2E1E3",
     2730"S)     c #E4E1E6",
     2731"T)     c #E4E2E7",
     2732"U)     c #E4E2E6",
     2733"V)     c #E3E3E4",
     2734"W)     c #E2E3E3",
     2735"X)     c #E1E3E2",
     2736"Y)     c #E3E3E3",
     2737"Z)     c #E3E3E2",
     2738"`)     c #EBEDEA",
     2739" !     c #EAECE9",
     2740".!     c #E9EBE8",
     2741"+!     c #ECEEEB",
     2742". . + @ # $ $ $ $ $ $ $ % $ $ $ $ $ % $ $ $ $ $ $ % $ $ $ $ $ % $ $ $ $ $ $ $ $ $ % $ $ & * = - ; > , , ' ) ! ! ~ { ] ^ / ( _ : < [ } | | 1 2 3 3 4 4 4 4 4 4 4 5 6 4 4 4 5 6 7 8 9 4 5 6 7 8 9 6 7 8 9 ",
     2743"0 a b % $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ c d d d d $ $ $ $ $ c d e f g h i i i i j k l m n o p q r s t u v w x y z 4 A B C D 9 9 E 9 E F G H I F J K L L L L J K L L L L L L L L ",
     2744"@ % M N O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O P Q R S T U V W X Y Z `  ...+.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.b.b.b.b.b.",
     2745"c.$ d.O e.f.g.g.g.h.g.g.g.g.g.h.h.g.g.g.g.g.h.h.g.g.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +.+++@+#+$+@+$+%+&+*+=+$+-+;+>+,+'+)+!+;+>+,+~+,+>+,+~+,+",
     2746"$ {+N N f.f.f.f.h.h.h.g.f.f.h.h.h.h.g.f.f.h.h.h.h.]+^+/+(+h._+:+<+[+}+|+1+2+3+4+5+6+7+8+9+0+a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+A+B+.+C+D+E+D+F+G+H+C+I+F+G+J+K+L+H+F+G+J+K+L+H+J+H+J+H+",
     2747"{+{+N N M+M+h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.N+N+h.h.(+O+P+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@;@>@,@'@)@!@~@{@]@^@/@(@_@:@<@[@[@y+}@|@1@A+1@2@3@ +2@4@2@5@C+D+6@D+7@5@C+D+6@I+C+D+6@I+",
     2748"{+{+8@N M+M+h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.9@9@0@N+a@b@c@d@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@A@B@q+r+C@D@E@F@G@H@_@I@J@K@<@L@M@N@O@P@Q@R@S@T@A+A+U@V@W@W@A+2@U@V@W@W@U@V@W@W@",
     2749"{+{+8@N f.M+h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.(+(+(+9@9@X@Y@Z@e@`@ #.#+#@###$#%#&#*#=#-#;#>#,#'#)#!#~#{#]#z@^#/#(#p+_#r+:#s+t+<#[#}#|#|#1#_@|#_@_@2#L@3#4#y+y+5#z+z+z+5#z+z+z+z+A+A+A+A+A+",
     2750"{+{+8@8@f.f.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.(+6#7#8#9#0#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#&@p#q#r#s#t#u#v#w#x#x#y#y#z#A#B#C#D#E#E#F#G#H#F#H#H#u+v+I#J#K#L#J@J@M#N#O#P#M#M#M#N#M#Q#Q#R#",
     2751"$ {+8@e.f.f.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.S#l.7#T#U#V#W#X#Y#Z#`# $f#g###.$+$@$#$$$$@%$&$*$=$-$;$>$,$'$)$!$~$~${$]$^$/$($($_$_$:$<$_$<$[$}$|$|$1$2$2$3$}#4$5$6$7$8$8$9$8$8$8$0$8$",
     2752"$ {+a$e.f.f.h.h.h.h.h.h.h.h.h.b$h.c$c$c$c$c$d$c$c$c$c$c$c$c$c$c$c$e$e$7#f$g$h$i$X#j$k$l$m$n$o$p$q$r$l@s$t$u$v$w$x$y$z$A$B$C$D$E$F$G$G$H$I$J$J$K$K$J$L$L$L$L$L$M$N$O$P$Q$R$S$T$U$1$V$T$W$X$Y$1$V$Y$Z$`$ %",
     2753"$ $ a$a$f.f.b$b$b$b$b$b$b$b$b$b$b$b$b$b$b$b$b$b$.%b$b$b$.%d$+%+%@%h.e$l.#%$%h$%%&%*%=%-%;%>%,%'%)%!% @ @~%{%]%^%/%(%w$_%:%<%[%}%|%D$1%2%3%4%5%4%4%6%5%5%4%4%4%5%7%5%8%9%L$0%a%a%a%P$b%P$P$z#z#z#P$c%c%c%",
     2754"$ $ 8@e.f.f.d%b$b$b$b$b$d%b$b$b$b$b$b$e%f%b$b$b$b$b$g%h%b$.%i%i%j%k%l%m%X@n%h$o%&%p%q%`#r%s%t%u%v%w%x%y% @z%A%B%C%D%E%F%G%:%H%I%[%J%}%K%|%D$K%D$D$L%M%M%M%M%M%D$N%O%i+P%j+Q%R%S%T%0%U%V%W%W%W%W%X%X%X%X%",
     2755"$ $ 8@8@f.f.d%d%b$b$b$b$d%d%b$b$b$h%Y%Z%Z%h%f%f%h%Y%`%`% &h%h%.&+&@&#&$&X@%&&&*&=&-&j$Z#+#;&>&,&'&)&)&!&~&{&]&^&/&(&^%_&(%:&<&[&}&|&1&A$A$2&3&4&4&5&B$6&7&B$7&8&9&6&7&0&a&a&i+i+i+b&a&a&j+U%c&U%j+U%c&U%",
     2756"$ $ 8@8@d&e&d%d%d%d%d%d%d%d%d%d%d%`%d%d%d%d%`%`%`%d%d%d%d%`%`%f&g&h&j%i&j&k&l&m&=&X#Y#n&o&p&q&r&>&s&t&t&u&v&w&x&y&{&z&A&B&C&D&(%(%F%F%E&F&}&}&|&G&|&H&1&I%I&A$1&}&z$z$J&K&L&M&N&O&0&P&Q&0&a&R&a&a&a&R&a&",
     2757"{+$ 8@8@e&e&d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%`%f&S&T&U&V&W&Y@X&Y&Z&`& *.*+*@*#*@*r&$*#*r&%*&***=*-*;*y&z%A%z&A&A&>*B&,*,*'*)*!*!*~*{*F&}&{*}&{*]*G%G%y$^*/*J&(*2&_*:*<*=$[*}*<*=$<*|*1*",
     2758"{+{+8@2*e&e&d%d%d%d%d%d%d%d%d%e&3*4*4*4*4*4*5*4*4*4*4*4*4*4*4*4*`%f&6*6*7*8*9*0*a*b*c*d*e*f*g*h*i*j*+*k*h*l*m*n*m*o*p*q*r*s*t*u*v*w*x*y*y*z*A*B*C*D*E*F*G*E*G*F*H*G*F*~*]*{*I*x$J*K*L*G%K*M*o#o#I&N*O*O*",
     2759"{+{+8@2*e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&P*e&e&e&e&e&e&P*P*e&e&e&P*P*5*Q*R*S*T*U*V*W*X*Y*Z*`*d* =.=+=@=#=$=%=g@&=*===-=i*;=l*>=,=q*'=s*)=k@!=x*~={=]=^=/=(=_=:=(=<=<=]=[=}=|=]=]=1=2=3=|=4=5=2=2=2=3=6=6=6=",
     2760"{+{+7=e.e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&P*P*8=9=0=a=b=U*c=d=e=f=e@#=g=h=i=i=j=k=k=l=%===m=n=o=p=q=,=r=s=t=u=v=v*w=x=x=y=z=z=A=z=A=B=C=B=D=C=B=x=B=B=B=B=B=B=B=B=B=B=B=B=B=B=",
     2761"{+{+7=7=e&e&e&e&E=E=e&e&e&e&E=E=E=e&e&e&e&E=E=E=e&e&e&e&E=E=e&e&e&e&E=E=E=F=d%G=G=H=I=J=K=L=M=R+}+N=O=P=Q=j=i=h=R=e@@=S=-=T=h@l*U=V=W=X=Y=Z=`= - - -.-+-@- -#-$-%-$-&-*-$-=-%-----C=$-%---------B=B=B=B=",
     2762"{+{+7=7=;-;-E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=>-,-'-)-!-6*~-{-{-]-^-/-/-(-_-:-N=<-[-}-|-1-2-3- =4-5-6-7-8-9-0-0-a-b-c-d-e-f-g-h-h-i-j-k-h-h-i-j-l-m-n-o-i-j-l-m-n-j-l-p-n-",
     2763"{+{+7=7=;-;-E=E=E=E=E=E=E=E=q-r-s-t-t-u-u-v-v-v-u-w-x-u-u-u-u-u-u-u-u-v-v-u-u-u-u-u-v-v-u-u-u-u-v-v-u-y-z-A-B-C-D-E-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-U-V-W-V-e-X-Y-Z-`- ;.;Y-N N +;@;.;Y-N N N N N N N ",
     2764"#;#;d&d&$;$;%;%;%;%;%;%;%;%;&;*;=;-;-;-;;;>;,;>;>;>;;;>;>;>;>;>;>;>;>;>;';);>;>;>;>;>;';>;>;>;>;>;';);!;~;{;];^;/;(;_;_;:;<;[;};};|;1;2;3;4;5;6;7;8;9;9;0;a;0;0;b;h.a;0;0;b;h.c;h.d;0;b;h.c;h.d;h.c;h.d;",
     2765"#;#;;-;-$;$;e;e;e;e;e;e;e;e;e;e;e;f;f;f;f;e;e;e;f;f;f;f;f;f;f;f;f;f;f;f;g;%;f;f;f;f;f;g;f;f;f;f;f;g;%;h;i;j;k;l;m;n;o;p;q;r;r;s;t;u;v;w;x;y;z;A;B;C;6;D;E;F;G;G;H;I;F;G;G;H;I;J;J;K;G;H;I;J;J;K;I;J;J;K;",
     2766"#;#;;-;-$;$;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;L;e;e;e;e;e;e;e;e;e;e;e;e;L;M;N;O;P;Q;i;i;k;R;S;T;U;q;q;V;W;X;{;Y;Z;`; >.>+>@>#>+>$>6;#>#>+>%>&>G;G;G;G;G;&>G;G;G;G;G;G;G;G;G;",
     2767"#;#;d.;-$;$;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;*>e;e;e;e;e;e;e;e;e;e;e;e;*>=>->;>>>,>'>'>)>!>~>{>]>^>^>V;V;/>(>_>:><>[>}>|>1>2>3>2>4>5>6>7>8>9>0>G;G;G;G;9>0>G;G;G;G;G;G;G;G;",
     2768"#;#;d.d.a>a>e;e;e;e;e;e;e;e;e;e;b>b>c>c>c>c>c>b>e;e;e;e;e;e;e;e;e;e;e;e;e;e;d>e>f>g>h>i>j>k>l>l>m>m>n>n>o>o>p>q>r>r>s>t>u>v>v>u>w>';x>y>z>t;A>B>C>D>E>E>F>G>F>H>H>I>F>Y;J>w;K>L>K>M>J>w;K>L>K>M>K>L>K>M>",
     2769"#;#;d.d.a>a>N>e;N>O>O>O>N>e;N>O>O>P>Q>R>S>R>Q>O>O>O>N>e;N>O>O>O>N>e;N>N>O>T>e;e;e;U>U>U>U>f;V>W>o>o>o>o>X>X>Y>Y>n>n>Z>Z>`> ,.,t>t>u>u>w>+,@,#,$,%,A>&,*,=,B>[>-,w;<>C>[>-,w;w;w;w;w;-,w;w;w;w;w;w;w;w;w;",
     2770"#;;,;-;-a>a>N>N>N>O>O>O>N>N>N>O>O>O>O>N>N>N>O>O>O>O>N>N>N>O>O>O>N>N>N>N>O>>,,,,,,,',g>),!,~,{,{,*>U>e;f;],o>%;o>^,^,/,/,l>q>(,_,t>u>:,<,v>[,},|,1,2,%,%,3,4,5,6,7,8,9,5,6,0,G>G>Y;G>6,0,G>G>Y;G>G>G>Y;G>",
     2771";,;,;-;-O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>P>a,b,',',c,c,f>),e>d,e,{,{,U>U>f,f,U>U>g,g,*>g;h,^,^,`>`>q>i,t>j,k,k,l,w>m,n,o,p,q,r,s,t,p,u,v,w,x,y,z,u,v,w,x,y,z,w,x,y,z,",
     2772";,;,b b O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>A,A,A,B,C,D,E,F,c,',g>G,!,H,~,e,{,I,J,J,K,K,U>f,f,J,L,M,N,L;O,i,P,.,l,Q,k,k,k,k,k,k,R,v,k,k,k,R,v,S,T,U,k,R,v,S,T,U,v,S,T,U,",
     2773";,;,b V,W,W,X,X,O>X,X,X,X,X,O>X,X,X,X,X,X,O>X,X,X,X,X,X,O>X,X,X,X,X,O>X,X,O>O>O>O>B,B,B,B,Y,O>O>Z,`,T>T> '',g>.'+'e,{,{,e,+'+'e,e,{,J,K,e;@'N,O,#'$'%'%'j,%'j,&'k,k,%'j,&'k,k,k,k,k,&'k,k,k,k,k,k,k,k,k,",
     2774";,;,b V,W,W,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,*'O>O>O>O>O>O>O>O>B,B,A,A,B,C,='-'`,;'>'>',''')'!'!'e>e>~'~'~,~,{'{,*>*>e;]']']']']']'^'/']']']'^'/':,(':,]'^'/':,(':,/':,(':,",
     2775";,;,V,V,W,W,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,_':'<'['}'|'|'O>O>O>O>O>O>O>Y,Y,1'1'B,B,2'2'C,3'-'>'c,)')'!'),4'{'e;]'e;*>*>e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;",
     2776";,;,5'5'W,W,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,W,6'6'6'7'8'9'0'a'b'c'd'd'}'}'O>O>O>O>O>O>O>O>Y,1'1'['['e'e'f'g'h'i'j'k'G,),!,l'j'm'n'b>b>),m'b>e;e;e;e;e;b>e;e;e;e;e;e;e;e;e;",
     2777";,;,b b o'o'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'W,q'q'q'r's't'u'v'w'x'y'z'A'B'C'D'2'2'B,B,O>O>O>O>O>O>O>O>O>O>O>Y,Y,C,C,='='='E'F'3'3'3'G'Z,='F'F'G'H'I'J'F'F'G'H'I'J'G'H'I'J'",
     2778";,;,b b K'K'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'W,W,W,W,W,L'L'q'r'M'N'O'P'u'N's'Q'R'S'A'T'U'C'V'9'0'W'D'}'X'|'O>O>B,B,O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>",
     2779";,;,b b K'K'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'Y'Y'Y'Z'`' ).)+)+)+)W,W,W,W,L'L'q'q'r'r's'M'N'P'@)A'#)$)%)&)*)=)B,|'|'O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>",
     2780"{+;,$ -);)K'p'p'o'p'p'p'p'p'o'p'p'p'p'p'p'o'p'p'p'p'p'p'o'p'p'p'p'p'o'o'p'p'p'p'p'p'p'p'p'p'>)>)Y'Y'>)Z',)')))!)~)+)W,W,W,W,W,W,W,W,W,W,W,L'L'{)s't'])^)/)])/)/)O>()])/)/)O>()O>_)O>/)O>()O>_)O>()O>_)O>",
     2781":);,;,;)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)[)M M M M M M M M M M M M M M M M M M })})|)|)})M M 1)2)3)4)5)6)6)6)7)7)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)",
     2782"9)#;;,;,$ -)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)0)a)a)a)b)c)d)e)f)g)h)i)i)j)j)M M M M M M M M M M M })})})})M k)k)M M k)l)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)",
     2783"+ 9)m)n)$ #;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;o)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)",
     2784"+ + 9)a m)q)r)s)r)s)r)s)r)s)r)r)s)r)s)r)s)r)r)s)r)s)r)s)r)s)r)s)r)s)r)s)r)t)u)v)w)x)x)w)y)z)A)A)B)B)B)B)w)w)C)C)w)w)B)B)B)B)B)w)w)w)w)B)B)B)B)B)B)B)B)B)B)B)B)B)B)B)B)B)B)B)B)B)D)B)B)B)B)B)D)B)B)B)D)B)",
     2785". + + 9)9)9)q)E)q)E)q)E)q)E)q)q)E)q)E)q)E)q)q)E)q)E)q)E)q)E)q)E)q)E)q)E)q)F)G)H)E)I)J)K)H)L)L)L)L)L)L)L)H)H)M)M)H)H)L)L)G)L)L)H)H)H)H)L)L)L)L)L)L)L)L)L)L)L)L)L)L)L)L)L)L)L)L)L)N)L)L)L)L)L)N)L)L)L)N)L)",
     2786". . 0 . + O)P)O)P)O)P)O)P)O)P)P)O)P)O)P)O)P)P)O)P)O)P)O)P)O)P)O)P)O)P)O)P)O)Q)R)S)T)U)V)W)X)W)W)V)V)V)V)V)V)V)V)Y)Y)Z)Z)Y)Z)Z)Y)Y)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)Y)V)V)V)V)V)Y)V)V)V)Y)V)",
     2787". . . 0 0 0 . 0 0 0 + 0 + 0 + 0 + 0 + 0 + 0 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 0 `) !+ + + .! !`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)+!`)`)`)`)`)+!`)`)`)+!`)"};
     2788
     2789
     2790static char * listviewhighcornerright_xpm[] = {
     2791"100 46 780 2",
     2792"       c None",
     2793".      c #6A779D",
     2794"+      c #6C789C",
     2795"@      c #6C789D",
     2796"#      c #6B789D",
     2797"$      c #6A779E",
     2798"%      c #66759E",
     2799"&      c #64749E",
     2800"*      c #63749E",
     2801"=      c #61739D",
     2802"-      c #576D9B",
     2803";      c #556C9C",
     2804">      c #4D679D",
     2805",      c #4A649D",
     2806"'      c #49629D",
     2807")      c #465E9C",
     2808"!      c #40579C",
     2809"~      c #3B5394",
     2810"{      c #2C4E97",
     2811"]      c #314993",
     2812"^      c #2B4595",
     2813"/      c #1B4296",
     2814"(      c #253D93",
     2815"_      c #19418F",
     2816":      c #0F3C96",
     2817"<      c #42599E",
     2818"[      c #758DC3",
     2819"}      c #E8EAE7",
     2820"|      c #EEF0ED",
     2821"1      c #FBFBFC",
     2822"2      c #6F7D9B",
     2823"3      c #6F7D9A",
     2824"4      c #6E7B9C",
     2825"5      c #67759E",
     2826"6      c #63739E",
     2827"7      c #62739D",
     2828"8      c #596F9C",
     2829"9      c #4A639D",
     2830"0      c #47609C",
     2831"a      c #445B9F",
     2832"b      c #3E5697",
     2833"c      c #2E509A",
     2834"d      c #2D509A",
     2835"e      c #2D4F99",
     2836"f      c #2D4F98",
     2837"g      c #28418A",
     2838"h      c #3E51A3",
     2839"i      c #D0D3DC",
     2840"j      c #A1B6EF",
     2841"k      c #A2B6F0",
     2842"l      c #A1B6F0",
     2843"m      c #A3B6F0",
     2844"n      c #A0B6EF",
     2845"o      c #9DB6EE",
     2846"p      c #9CB5EF",
     2847"q      c #9CB2F0",
     2848"r      c #9FB5EE",
     2849"s      c #9CB4EB",
     2850"t      c #9AB3EC",
     2851"u      c #9AB0EC",
     2852"v      c #9DB3EB",
     2853"w      c #9BB4EC",
     2854"x      c #9BB4EE",
     2855"y      c #9BB1EF",
     2856"z      c #9BB0F0",
     2857"A      c #90ACF0",
     2858"B      c #93ABEE",
     2859"C      c #91A8EB",
     2860"D      c #8BA3E8",
     2861"E      c #88A1E7",
     2862"F      c #809DE9",
     2863"G      c #7A99E8",
     2864"H      c #7491E5",
     2865"I      c #698AE4",
     2866"J      c #6184E3",
     2867"K      c #507EDC",
     2868"L      c #4E7CDB",
     2869"M      c #4F7DDC",
     2870"N      c #5479DA",
     2871"O      c #567BDC",
     2872"P      c #577CDD",
     2873"Q      c #5074DA",
     2874"R      c #5174DB",
     2875"S      c #5175DC",
     2876"T      c #5276DD",
     2877"U      c #4D71DE",
     2878"V      c #4C72D8",
     2879"W      c #3A6CE0",
     2880"X      c #2B49A6",
     2881"Y      c #E0E2DF",
     2882"Z      c #93AAE9",
     2883"`      c #94A9E8",
     2884" .     c #94AAE9",
     2885"..     c #93A9E9",
     2886"+.     c #92AAE9",
     2887"@.     c #8DA9E8",
     2888"#.     c #8CA7E9",
     2889"$.     c #92ABE9",
     2890"%.     c #8EAAE9",
     2891"&.     c #8EA9E9",
     2892"*.     c #8FAAE9",
     2893"=.     c #8CA8E9",
     2894"-.     c #8CA2E7",
     2895";.     c #86A1E6",
     2896">.     c #839EE9",
     2897",.     c #7F9CE9",
     2898"'.     c #7A97E8",
     2899").     c #7693E7",
     2900"!.     c #6E8EE8",
     2901"~.     c #678AE9",
     2902"{.     c #5D84E3",
     2903"].     c #577CDF",
     2904"^.     c #4E77DF",
     2905"/.     c #4A70DB",
     2906"(.     c #4870DB",
     2907"_.     c #4870DC",
     2908":.     c #4770E3",
     2909"<.     c #496FDC",
     2910"[.     c #486EDB",
     2911"}.     c #466FE4",
     2912"|.     c #466EE3",
     2913"1.     c #4167D9",
     2914"2.     c #4066D8",
     2915"3.     c #3F66D8",
     2916"4.     c #3D64D7",
     2917"5.     c #3960DA",
     2918"6.     c #476DD9",
     2919"7.     c #446EE5",
     2920"8.     c #305EC8",
     2921"9.     c #8EAAE8",
     2922"0.     c #8FAAE8",
     2923"a.     c #91AAE9",
     2924"b.     c #8FA9E8",
     2925"c.     c #8BA8E8",
     2926"d.     c #8AA7E9",
     2927"e.     c #8BA5EA",
     2928"f.     c #8AA7E8",
     2929"g.     c #87A2E6",
     2930"h.     c #859FE8",
     2931"i.     c #7F9DE8",
     2932"j.     c #7C9AE8",
     2933"k.     c #7B95E7",
     2934"l.     c #7090E8",
     2935"m.     c #6B8BE9",
     2936"n.     c #6386E6",
     2937"o.     c #5881E1",
     2938"p.     c #5479DE",
     2939"q.     c #4D74DE",
     2940"r.     c #476EDB",
     2941"s.     c #446EE1",
     2942"t.     c #446EE0",
     2943"u.     c #446EDF",
     2944"v.     c #446DE0",
     2945"w.     c #426ADF",
     2946"x.     c #3C64DA",
     2947"y.     c #4360CC",
     2948"z.     c #D3D5D2",
     2949"A.     c #E6E3E8",
     2950"B.     c #8DA2E7",
     2951"C.     c #8CA6EA",
     2952"D.     c #8DA3E9",
     2953"E.     c #88A2E7",
     2954"F.     c #87A1E7",
     2955"G.     c #8AA1E7",
     2956"H.     c #849EE9",
     2957"I.     c #7D9AE9",
     2958"J.     c #7B98E8",
     2959"K.     c #7796E5",
     2960"L.     c #7191E7",
     2961"M.     c #688CE9",
     2962"N.     c #6687E5",
     2963"O.     c #5C83E1",
     2964"P.     c #557BDE",
     2965"Q.     c #4F76DE",
     2966"R.     c #4C72DE",
     2967"S.     c #456EDF",
     2968"T.     c #426AD9",
     2969"U.     c #4269D9",
     2970"V.     c #4269D8",
     2971"W.     c #3D64D9",
     2972"X.     c #3A61DA",
     2973"Y.     c #345ED6",
     2974"Z.     c #335ECF",
     2975"`.     c #C6C3C8",
     2976" +     c #86A1E7",
     2977".+     c #87A2E7",
     2978"++     c #87A0E7",
     2979"@+     c #859EE8",
     2980"#+     c #849DE9",
     2981"$+     c #7E9BE9",
     2982"%+     c #7A99E9",
     2983"&+     c #7A95E5",
     2984"*+     c #7593E7",
     2985"=+     c #6F8EE9",
     2986"-+     c #668AE5",
     2987";+     c #6386E0",
     2988">+     c #5B82DF",
     2989",+     c #5379DE",
     2990"'+     c #5075DE",
     2991")+     c #4B6FDC",
     2992"!+     c #446AD7",
     2993"~+     c #4269D6",
     2994"{+     c #4269D5",
     2995"]+     c #3E65D7",
     2996"^+     c #C9CAC9",
     2997"/+     c #869EE9",
     2998"(+     c #859FE9",
     2999"_+     c #849FE9",
     3000":+     c #829DE8",
     3001"<+     c #819DE8",
     3002"[+     c #7B9AE9",
     3003"}+     c #7A96E6",
     3004"|+     c #7290E8",
     3005"1+     c #698CE6",
     3006"2+     c #6689E0",
     3007"3+     c #5D84E0",
     3008"4+     c #587FDF",
     3009"5+     c #5377DD",
     3010"6+     c #4B74DE",
     3011"7+     c #496BD8",
     3012"8+     c #7C9BE9",
     3013"9+     c #7E9CE9",
     3014"0+     c #7D9AEA",
     3015"a+     c #7D9BEA",
     3016"b+     c #7D98E8",
     3017"c+     c #7C98E8",
     3018"d+     c #7796E4",
     3019"e+     c #7592E6",
     3020"f+     c #7390E1",
     3021"g+     c #698DE0",
     3022"h+     c #6588DE",
     3023"i+     c #5E84E0",
     3024"j+     c #5880DF",
     3025"k+     c #5479DC",
     3026"l+     c #4F75DE",
     3027"m+     c #4A6FDB",
     3028"n+     c #436AD7",
     3029"o+     c #3F65D7",
     3030"p+     c #BAC3BE",
     3031"q+     c #7B9AE8",
     3032"r+     c #7B9AEA",
     3033"s+     c #7A9AEA",
     3034"t+     c #7B99E9",
     3035"u+     c #7D97E7",
     3036"v+     c #7D95E6",
     3037"w+     c #7D95E5",
     3038"x+     c #7C95E6",
     3039"y+     c #7493E3",
     3040"z+     c #7290DF",
     3041"A+     c #6C8DDE",
     3042"B+     c #6B89E1",
     3043"C+     c #6486DF",
     3044"D+     c #5D81DF",
     3045"E+     c #567DDE",
     3046"F+     c #4F73DE",
     3047"G+     c #496EDA",
     3048"H+     c #355ED6",
     3049"I+     c #345ED5",
     3050"J+     c #7E95E5",
     3051"K+     c #7C97E8",
     3052"L+     c #7C97E7",
     3053"M+     c #7B94E6",
     3054"N+     c #7A95E4",
     3055"O+     c #7695E5",
     3056"P+     c #7694E4",
     3057"Q+     c #7994E6",
     3058"R+     c #7995E4",
     3059"S+     c #7594E4",
     3060"T+     c #7391E2",
     3061"U+     c #6E8EDE",
     3062"V+     c #6B8ADE",
     3063"W+     c #6688DF",
     3064"X+     c #5F84E0",
     3065"Y+     c #5980E0",
     3066"Z+     c #4D72DD",
     3067"`+     c #456BD7",
     3068" @     c #4168D6",
     3069".@     c #3C64D7",
     3070"+@     c #335ED0",
     3071"@@     c #4659C7",
     3072"#@     c #7292E1",
     3073"$@     c #7392E1",
     3074"%@     c #7492E1",
     3075"&@     c #718FDF",
     3076"*@     c #6F8EDE",
     3077"=@     c #6D8BDE",
     3078"-@     c #6B88DF",
     3079";@     c #597FDF",
     3080">@     c #557ADD",
     3081",@     c #5176DC",
     3082"'@     c #4D74DD",
     3083")@     c #496DDA",
     3084"!@     c #3860D8",
     3085"~@     c #7391E0",
     3086"{@     c #7290DE",
     3087"]@     c #6D8EDD",
     3088"^@     c #6D8DDD",
     3089"/@     c #7190E0",
     3090"(@     c #6C8DDD",
     3091"_@     c #6B89DF",
     3092":@     c #6487E0",
     3093"<@     c #6085DF",
     3094"[@     c #5F81DE",
     3095"}@     c #567EDE",
     3096"|@     c #4F74D9",
     3097"1@     c #466BD7",
     3098"2@     c #4067D5",
     3099"3@     c #3C63D7",
     3100"4@     c #335ED3",
     3101"5@     c #335ED1",
     3102"6@     c #718EDD",
     3103"7@     c #728EDD",
     3104"8@     c #748EDD",
     3105"9@     c #708EDD",
     3106"0@     c #6F8DDD",
     3107"a@     c #6E8DDD",
     3108"b@     c #6C8ADE",
     3109"c@     c #6C89DF",
     3110"d@     c #6988DF",
     3111"e@     c #6387DF",
     3112"f@     c #6282DE",
     3113"g@     c #5681E0",
     3114"h@     c #577BDD",
     3115"i@     c #5277DB",
     3116"j@     c #4D73D8",
     3117"k@     c #4A70D8",
     3118"l@     c #436AD5",
     3119"m@     c #3F66D6",
     3120"n@     c #3C63D8",
     3121"o@     c #3960D8",
     3122"p@     c #3860D7",
     3123"q@     c #335ED2",
     3124"r@     c #345ED4",
     3125"s@     c #6C88DF",
     3126"t@     c #6D88DF",
     3127"u@     c #6B89DE",
     3128"v@     c #6888DF",
     3129"w@     c #6587E0",
     3130"x@     c #6989DF",
     3131"y@     c #6687E0",
     3132"z@     c #6287E0",
     3133"A@     c #6281DD",
     3134"B@     c #5881E0",
     3135"C@     c #557ADB",
     3136"D@     c #5176D9",
     3137"E@     c #4E75D7",
     3138"F@     c #4A6FD8",
     3139"G@     c #476BD6",
     3140"H@     c #4067D6",
     3141"I@     c #3C62D7",
     3142"J@     c #3C60D4",
     3143"K@     c #365ED1",
     3144"L@     c #345ED3",
     3145"M@     c #6786DF",
     3146"N@     c #5F85E0",
     3147"O@     c #5F86E0",
     3148"P@     c #6186DF",
     3149"Q@     c #6286E0",
     3150"R@     c #6284DF",
     3151"S@     c #6384DF",
     3152"T@     c #5B7FDE",
     3153"U@     c #577DDC",
     3154"V@     c #557BDA",
     3155"W@     c #5278D8",
     3156"X@     c #4E76D6",
     3157"Y@     c #4C72D7",
     3158"Z@     c #486DD8",
     3159"`@     c #4469D6",
     3160" #     c #3F62D2",
     3161".#     c #3C60CF",
     3162"+#     c #345ECF",
     3163"@#     c #6086DF",
     3164"##     c #6085E0",
     3165"$#     c #6285DF",
     3166"%#     c #6383DD",
     3167"&#     c #6481DC",
     3168"*#     c #6380DD",
     3169"=#     c #6183DE",
     3170"-#     c #6083DD",
     3171";#     c #6081DC",
     3172">#     c #6080DD",
     3173",#     c #6083DE",
     3174"'#     c #6181DC",
     3175")#     c #6280DD",
     3176"!#     c #577EDB",
     3177"~#     c #557CD7",
     3178"{#     c #4F76D6",
     3179"]#     c #4E74D7",
     3180"^#     c #466CD7",
     3181"/#     c #3B64D6",
     3182"(#     c #4261CD",
     3183"_#     c #375FCE",
     3184":#     c #5A7FD8",
     3185"<#     c #6281DA",
     3186"[#     c #5F81D8",
     3187"}#     c #5C80D8",
     3188"|#     c #557DD7",
     3189"1#     c #577ED8",
     3190"2#     c #567ED7",
     3191"3#     c #587DD8",
     3192"4#     c #577DD8",
     3193"5#     c #587ED8",
     3194"6#     c #567DD8",
     3195"7#     c #5379D9",
     3196"8#     c #5177D7",
     3197"9#     c #4D74D5",
     3198"0#     c #486ED9",
     3199"a#     c #4068D4",
     3200"b#     c #3D65D2",
     3201"c#     c #4361CC",
     3202"d#     c #345ECE",
     3203"e#     c #325DCF",
     3204"f#     c #2C5AD1",
     3205"g#     c #3959C5",
     3206"h#     c #547BD8",
     3207"i#     c #567DD7",
     3208"j#     c #557BD8",
     3209"k#     c #5279D9",
     3210"l#     c #5278D9",
     3211"m#     c #4D74D6",
     3212"n#     c #4B71D8",
     3213"o#     c #496CD8",
     3214"p#     c #4669D7",
     3215"q#     c #3D66D3",
     3216"r#     c #3F62CF",
     3217"s#     c #4260CC",
     3218"t#     c #5379D8",
     3219"u#     c #4E75D4",
     3220"v#     c #4C73D7",
     3221"w#     c #476CD7",
     3222"x#     c #4869D0",
     3223"y#     c #4067D2",
     3224"z#     c #3D64D1",
     3225"A#     c #4261CC",
     3226"B#     c #395FCE",
     3227"C#     c #4F75D3",
     3228"D#     c #5074D2",
     3229"E#     c #5174D1",
     3230"F#     c #5175D1",
     3231"G#     c #4F74D3",
     3232"H#     c #4C73D5",
     3233"I#     c #4C73D4",
     3234"J#     c #4A72D1",
     3235"K#     c #4B70CF",
     3236"L#     c #506CCC",
     3237"M#     c #4D6BCE",
     3238"N#     c #4167D0",
     3239"O#     c #3D65D1",
     3240"P#     c #3F63CF",
     3241"Q#     c #3B5FCD",
     3242"R#     c #3159CD",
     3243"S#     c #4971D0",
     3244"T#     c #4870CF",
     3245"U#     c #4C6FCF",
     3246"V#     c #4E6CCE",
     3247"W#     c #4E6BCE",
     3248"X#     c #4769CF",
     3249"Y#     c #3D66D0",
     3250"Z#     c #3C65D1",
     3251"`#     c #4062CE",
     3252" $     c #3D5FCD",
     3253".$     c #365FCF",
     3254"+$     c #325DCD",
     3255"@$     c #2D5AD0",
     3256"#$     c #3859C5",
     3257"$$     c #355FCF",
     3258"%$     c #355ECF",
     3259"&$     c #335ECE",
     3260"*$     c #305CCD",
     3261"=$     c #2B5ACE",
     3262"-$     c #3056C9",
     3263";$     c #2553C6",
     3264">$     c #2153C8",
     3265",$     c #1F4FC7",
     3266"'$     c #274CC5",
     3267")$     c #214AC7",
     3268"!$     c #1C48C8",
     3269"~$     c #1244C9",
     3270"{$     c #1043C9",
     3271"]$     c #1144C9",
     3272"^$     c #2A45BE",
     3273"/$     c #2744B5",
     3274"($     c #1D49C0",
     3275"_$     c #2B58DE",
     3276":$     c #002D94",
     3277"<$     c #2B59CA",
     3278"[$     c #2A59CA",
     3279"}$     c #2E57C8",
     3280"|$     c #3255C6",
     3281"1$     c #3355C5",
     3282"2$     c #1C52C8",
     3283"3$     c #1D50C7",
     3284"4$     c #234FC6",
     3285"5$     c #264CC5",
     3286"6$     c #1D48C7",
     3287"7$     c #1245C8",
     3288"8$     c #1F44C2",
     3289"9$     c #2945BE",
     3290"0$     c #2A45BD",
     3291"a$     c #2040BF",
     3292"b$     c #3156C7",
     3293"c$     c #3056C7",
     3294"d$     c #3354C5",
     3295"e$     c #3355C6",
     3296"f$     c #3255C5",
     3297"g$     c #3254C5",
     3298"h$     c #1952C7",
     3299"i$     c #1951C8",
     3300"j$     c #2050C7",
     3301"k$     c #274CC4",
     3302"l$     c #244CC6",
     3303"m$     c #1F49C7",
     3304"n$     c #1E47C5",
     3305"o$     c #2045C3",
     3306"p$     c #1C44BF",
     3307"q$     c #2045BE",
     3308"r$     c #2040B8",
     3309"s$     c #3254C6",
     3310"t$     c #3055C6",
     3311"u$     c #2A54C6",
     3312"v$     c #2353C7",
     3313"w$     c #3054C5",
     3314"x$     c #2F55C5",
     3315"y$     c #2A54C5",
     3316"z$     c #2553C5",
     3317"A$     c #2F54C5",
     3318"B$     c #3155C6",
     3319"C$     c #2A54C7",
     3320"D$     c #1A52C8",
     3321"E$     c #204FC2",
     3322"F$     c #264DC6",
     3323"G$     c #234BC5",
     3324"H$     c #1D48C1",
     3325"I$     c #1E48BF",
     3326"J$     c #2646BE",
     3327"K$     c #2B45BD",
     3328"L$     c #1E43BE",
     3329"M$     c #2643BF",
     3330"N$     c #2243BF",
     3331"O$     c #3049BC",
     3332"P$     c #1E50BE",
     3333"Q$     c #1D50C0",
     3334"R$     c #1D50BF",
     3335"S$     c #1852C1",
     3336"T$     c #1E51C0",
     3337"U$     c #214FBF",
     3338"V$     c #2050C0",
     3339"W$     c #244EBF",
     3340"X$     c #2151C0",
     3341"Y$     c #234FBF",
     3342"Z$     c #2350C0",
     3343"`$     c #2351C0",
     3344" %     c #244FBF",
     3345".%     c #2250C0",
     3346"+%     c #2051C0",
     3347"@%     c #1E50C0",
     3348"#%     c #244DBE",
     3349"$%     c #274DBF",
     3350"%%     c #244CBF",
     3351"&%     c #1C48C0",
     3352"*%     c #2247BF",
     3353"=%     c #2C44BD",
     3354"-%     c #1C44BE",
     3355";%     c #1444BF",
     3356">%     c #1841BF",
     3357",%     c #1F40BF",
     3358"'%     c #254DBE",
     3359")%     c #224FBE",
     3360"!%     c #224FBF",
     3361"~%     c #234EBF",
     3362"{%     c #254CBD",
     3363"]%     c #244DBD",
     3364"^%     c #244CBD",
     3365"/%     c #264DBE",
     3366"(%     c #264DBD",
     3367"_%     c #214BC0",
     3368":%     c #1D48C0",
     3369"<%     c #2347BF",
     3370"[%     c #2B44BD",
     3371"}%     c #2444BE",
     3372"|%     c #0F42BF",
     3373"1%     c #0641BF",
     3374"2%     c #0F41BF",
     3375"3%     c #1741BE",
     3376"4%     c #1F40BD",
     3377"5%     c #234BBF",
     3378"6%     c #234CBE",
     3379"7%     c #214BBE",
     3380"8%     c #244CBE",
     3381"9%     c #214ABE",
     3382"0%     c #214ABF",
     3383"a%     c #1F48C0",
     3384"b%     c #2746BE",
     3385"c%     c #1F43BE",
     3386"d%     c #0941BE",
     3387"e%     c #0342BA",
     3388"f%     c #0242BC",
     3389"g%     c #1241B8",
     3390"h%     c #1F40B7",
     3391"i%     c #2F41AC",
     3392"j%     c #2644AE",
     3393"k%     c #2D49B4",
     3394"l%     c #2649B6",
     3395"m%     c #2949B7",
     3396"n%     c #2849B5",
     3397"o%     c #2149B8",
     3398"p%     c #1E49B9",
     3399"q%     c #1F48B8",
     3400"r%     c #1F49B9",
     3401"s%     c #2545B6",
     3402"t%     c #2744B7",
     3403"u%     c #2844B7",
     3404"v%     c #2043B8",
     3405"w%     c #1241B7",
     3406"x%     c #1340B8",
     3407"y%     c #0D41B8",
     3408"z%     c #1941B8",
     3409"A%     c #1F40B8",
     3410"B%     c #203FB8",
     3411"C%     c #2549B5",
     3412"D%     c #2648B6",
     3413"E%     c #2547B7",
     3414"F%     c #2248B7",
     3415"G%     c #2048B7",
     3416"H%     c #2346B6",
     3417"I%     c #2146B6",
     3418"J%     c #2247B7",
     3419"K%     c #2148B7",
     3420"L%     c #2743B4",
     3421"M%     c #2643B5",
     3422"N%     c #2542B6",
     3423"O%     c #1D42B7",
     3424"P%     c #0E42B8",
     3425"Q%     c #0C41B8",
     3426"R%     c #1341B8",
     3427"S%     c #1740B8",
     3428"T%     c #1C41B8",
     3429"U%     c #1F40B1",
     3430"V%     c #2644B5",
     3431"W%     c #2544B5",
     3432"X%     c #2544B4",
     3433"Y%     c #2444B5",
     3434"Z%     c #2444B4",
     3435"`%     c #2744B4",
     3436" &     c #2241B7",
     3437".&     c #1D41B8",
     3438"+&     c #0B42B8",
     3439"@&     c #0942B8",
     3440"#&     c #0C42B8",
     3441"$&     c #0F41B8",
     3442"%&     c #1641B8",
     3443"&&     c #2442B5",
     3444"*&     c #2543B3",
     3445"=&     c #2342B2",
     3446"-&     c #2341B4",
     3447";&     c #2141B3",
     3448">&     c #2141B5",
     3449",&     c #2140B5",
     3450"'&     c #2040B5",
     3451")&     c #1C40B7",
     3452"!&     c #1B41B3",
     3453"~&     c #0142B6",
     3454"{&     c #0E41B7",
     3455"]&     c #1141B7",
     3456"^&     c #1440B2",
     3457"/&     c #113FB0",
     3458"(&     c #1440B0",
     3459"_&     c #213EAF",
     3460":&     c #233DAE",
     3461"<&     c #223EAF",
     3462"[&     c #1E40B1",
     3463"}&     c #173EAD",
     3464"|&     c #1440AF",
     3465"1&     c #0D40AF",
     3466"2&     c #0941B0",
     3467"3&     c #0D3FAE",
     3468"4&     c #1B3CAC",
     3469"5&     c #233CAD",
     3470"6&     c #203FB0",
     3471"7&     c #273BAD",
     3472"8&     c #1D40B0",
     3473"9&     c #2040B1",
     3474"0&     c #1E40B0",
     3475"a&     c #1C40B0",
     3476"b&     c #1B3DAC",
     3477"c&     c #143DAC",
     3478"d&     c #193DAD",
     3479"e&     c #1B3DAD",
     3480"f&     c #173DAD",
     3481"g&     c #153DAC",
     3482"h&     c #1C3CAC",
     3483"i&     c #243CAD",
     3484"j&     c #213FB0",
     3485"k&     c #263BAA",
     3486"l&     c #253CAE",
     3487"m&     c #273AAC",
     3488"n&     c #273AAD",
     3489"o&     c #253BAD",
     3490"p&     c #1D3CAC",
     3491"q&     c #243BAD",
     3492"r&     c #1E3CAC",
     3493"s&     c #263BAD",
     3494"t&     c #1A3DAC",
     3495"u&     c #143DAB",
     3496"v&     c #163DAC",
     3497"w&     c #1A3CAC",
     3498"x&     c #1F3CAD",
     3499"y&     c #263BAB",
     3500"z&     c #263BA6",
     3501"A&     c #1E42A4",
     3502"B&     c #2D40A5",
     3503"C&     c #253BA6",
     3504"D&     c #253CA7",
     3505"E&     c #263AA5",
     3506"F&     c #253BA7",
     3507"G&     c #1E3BA6",
     3508"H&     c #193DA6",
     3509"I&     c #173DA5",
     3510"J&     c #143DA6",
     3511"K&     c #1A3DA7",
     3512"L&     c #133DA6",
     3513"M&     c #123DA5",
     3514"N&     c #1A3CA7",
     3515"O&     c #243BA6",
     3516"P&     c #263AA7",
     3517"Q&     c #273BA7",
     3518"R&     c #263AA6",
     3519"S&     c #223BA6",
     3520"T&     c #1D3BA6",
     3521"U&     c #173CA6",
     3522"V&     c #133DA5",
     3523"W&     c #1B3DA6",
     3524"X&     c #193DA5",
     3525"Y&     c #123DA4",
     3526"Z&     c #163CA5",
     3527"`&     c #213CA6",
     3528" *     c #273BA8",
     3529".*     c #263BA7",
     3530"+*     c #253BA5",
     3531"@*     c #263BA5",
     3532"#*     c #1C3BA6",
     3533"$*     c #1B3BA9",
     3534"%*     c #133BA8",
     3535"&*     c #0A3BA7",
     3536"**     c #083AA6",
     3537"=*     c #123CA5",
     3538"-*     c #0839A8",
     3539";*     c #0239A6",
     3540">*     c #123AA8",
     3541",*     c #1F49C8",
     3542"'*     c #2F4DA4",
     3543")*     c #2E4DA3",
     3544"!*     c #384CA4",
     3545"~*     c #3C4DA7",
     3546"{*     c #394EA7",
     3547"]*     c #3B4CA5",
     3548"^*     c #3C52B1",
     3549"/*     c #3551A8",
     3550"(*     c #3759BE",
     3551"_*     c #4161C7",
     3552":*     c #0033A8",
     3553"<*     c #596FA9",
     3554"[*     c #2F4DA3",
     3555"}*     c #2D4BA5",
     3556"|*     c #2E4CA4",
     3557"1*     c #2C4AA5",
     3558"2*     c #2D4BA4",
     3559"3*     c #354DA4",
     3560"4*     c #3A4BA4",
     3561"5*     c #394DA6",
     3562"6*     c #4056AD",
     3563"7*     c #445BBB",
     3564"8*     c #B5B7B4",
     3565"9*     c #1B2F85",
     3566"0*     c #242F79",
     3567"a*     c #B5B5B5",
     3568"b*     c #B5B2B6",
     3569"c*     c #C0C3C3",
     3570"d*     c #E3E3E4",
     3571"e*     c #EBEDEA",
     3572". + @ + # $ % & # $ % & # $ % & # $ % & & * = - ; > , ' ) ! ~ { { { { { { { ] ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ / / / ( / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / _ _ / / : / < [ } | | | 1 1 ",
     3573"2 2 2 2 3 2 4 @ 3 2 4 @ 3 2 4 @ 3 2 4 @ # 5 6 7 8 ; > 9 0 a b c d e f { { { ] ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ( ( ( ( ( ( ( ( ( / / / / / / / / / / / / / / / / / _ _ _ _ _ _ _ _ _ _ _ g g _ / / : : : h i } 1 | 1 ",
     3574"j k l m n o p q n o p q r s t u v w x y z A B C D E F G H I J K L M N O P O O Q R S T T T T T T T T T T T T T T T T T T U U U U U U U U U U U U U U U U U U U U U U U U U U U U V V V U U W X : [ Y | | ",
     3575"Z `  . ...+.@.#...+.@.#.Z $.%.&.Z $.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.6.7.8.: h Y } 1 ",
     3576"9.0.a.b.c.c.d.e.f.c.d.e.f.c.d.e.f.c.d.e.g.h.i.j.k.l.m.n.o.p.q.r.s.s.t.u.u.v.w.x.4.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.y.5.7.6.: / z.A.} ",
     3577"-.B.C.D.-.E.g.F.G.E.g.F.G.E.g.F.G.E.g.F.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.V.U.U.W.X.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Z.y.Y.7.7.: : `.z.} ",
     3578" +.+g.;.++F.@+#+++F.@+#+++F.@+#+++F.@+#+$+%+&+*+=+-+;+>+,+'+)+!+~+{+]+{+{+4.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.Y.Y.5.5.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Z.Z.Z.y.y.5.7.7.: : ^+z.Y ",
     3579"/+(+_+#+H.H.>.:+H.H.>.:+H.H.>.:+H.H.>.<+[+}+*+|+1+2+3+4+5+6+7+{+{+4.4.4.4.4.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.Y.Y.Y.Y.Y.Y.Y.5.Y.Y.Y.Y.Y.Y.Y.Y.5.Y.Y.5.5.5.5.Y.Y.Y.Y.Y.Y.Z.Z.Z.Z.y.y.y.y.y.y.7.7.: : ^+i } ",
     3580"8+9+0+0+a+0+0+b+a+0+0+b+a+0+0+b+a+0+0+c+d+e+f+g+h+i+j+k+l+m+n+o+4.4.4.4.5.5.5.5.5.5.Y.Y.5.5.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Y.Y.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.7.7.: : p+z.Y ",
     3581"q+r+r+s+t+u+v+w+t+u+v+w+t+u+v+w+t+u+x+&+y+z+A+B+C+D+E+5+F+G+~+4.4.4.4.5.5.5.5.5.H+Y.Y.Y.Y.Y.Y.Y.Y.I+Y.Z.Y.Y.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.7.7.: : `.z.A.",
     3582"J+v+K+L+M+N+O+P+Q+R+O+P+Q+R+O+P+Q+R+O+S+T+U+V+W+X+Y+P.T Z+`+ @4.4..@5.5.5.5.5.5.Y.Y.Y.I+I+I+I+I++@+@Z.Z.Y.Y.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.@@Z.7.7.: : p+z.Y ",
     3583"#@$@$@%@%@$@#@&@#@#@#@&@#@#@#@&@#@#@#@*@=@-@;+i+;@>@,@'@)@ @4.X.5.5.H+Y.Y.Y.!@Y.Y.I++@+@Z.Z.+@Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.y.Z.6.6.: : `.z.A.",
     3584"#@$@~@~@~@{@]@^@/@{@]@^@/@{@]@^@/@{@]@(@_@:@<@[@}@k+|@V 1@2@3@5.5.5.Y.Y.I+4@I+5@+@Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.y.Z.6.6.: : p+z.Y ",
     3585"6@7@8@9@0@a@b@c@a@a@b@c@a@a@b@c@a@a@b@d@e@<@f@g@h@i@j@k@l@m@n@o@o@p@Y.I+q@q@r@+@Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.y.Z.6.6.: : `.z.A.",
     3586"s@t@u@_@_@v@w@w@x@v@w@w@x@v@y@y@x@v@:@z@A@B@P C@D@E@F@G@H@I@J@K@5@+@+@+@r@I+L@Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.@@Z.W W : : p+z.Y ",
     3587"M@N@O@P@C+Q@Q@R@C+;+Q@R@C+;+;+S@C+Q@Q@R@T@U@V@W@X@Y@Z@`@4. #.#+#Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.8.Z.Z.Z.Z.8.8.Z.Z.y.@@@@W W : : `.z.A.",
     3588"@#O@O@##$#%#&#*#=#-#;#>#,#-#;#>#,#-#'#)#!#~#W@{#]#k@^#H@/#(#_#Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.8.8.Z.Z.Z.Z.Z.Z.Z.8.8.8.8.8.8.8.8.8.8.8.Z.Z.y.y.@@W W : : p+z.Y ",
     3589":#<#[#}#|#1#2#3#4#5#1#4#4#1#1#4#4#1#1#6#7#8#9#V 0#`+a#b#c#d#e#Z.Z.Z.f#Z.Z.Z.f#f#f#f#f#f#f#f#f#f#g#g#g#g#g#8.8.8.8.8.8.8.8.8.g#g#g#g#8.g#8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.y.y.@@W W : : `.z.A.",
     3590"h#2#i#6#|#j#7#k#|#j#7#7#|#j#7#7#|#j#7#l#8#m#n#n#o#p#q#r#s#d#e#Z.Z.Z.f#f#f#f#Z.f#f#g#g#g#g#g#g#g#g#g#g#g#g#8.8.8.g#g#8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.y.y.y.y.8.8.8.y.y.@@W W : : p+z.Y ",
     3591"l#7#7#l#7#7#7#W@7#7#7#W@7#7#k#W@t#7#7#W@u#v#n#w#x#y#z#A#B#Z.e#f#f#Z.f#f#f#Z.Z.g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#8.8.8.g#g#g#g#8.8.g#g#g#g#g#g#8.8.g#8.8.y.8.8.y.y.8.y.y.y.y.@@W W : : `.z.A.",
     3592"C#D#E#F#G#H#I#J#G#H#I#J#G#H#I#J#G#H#I#J#K#L#M#N#O#P#s#Q#+#f#R#f#f#f#f#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#@@@@y.y.@@@@y.y.W W : : p+z.Y ",
     3593"S#S#S#S#S#T#S#U#S#T#S#U#S#T#S#U#S#T#S#U#V#W#X#Y#Z#`# $.$+$@$#$g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#@@@@@@@@@@@@@@@@@@y.y.W W : : `.z.A.",
     3594"+$Z..$$$%$+$&$*$%$+$&$*$%$+$&$*$%$+$&$*$=$-$;$>$,$'$)$!$~${$]$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$/$/$/$/$($($_$_$:$:$p+z.Y ",
     3595"<$<$<$<$<$[$}$|$<$[$}$|$<$[$}$|$<$[$}$|$1$2$3$4$5$)$6$7$8$9$0$a$a$a$a$a$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$/$/$/$^$^$^$/$/$/$/$/$/$/$/$/$/$/$/$/$/$($($_$_$:$:$`.z.A.",
     3596"b$c$c$c$d$e$e$f$g$|$|$1$d$e$e$1$d$e$e$1$h$i$j$k$l$m$n$o$p$9$q$a$a$a$a$a$a$a$a$^$a$a$^$^$^$^$^$^$a$r$r$r$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$($($_$_$:$:$p+z.Y ",
     3597"e$1$s$s$1$t$u$v$w$x$y$z$A$x$u$v$g$B$C$>$D$E$F$G$H$I$J$K$L$M$N$a$a$a$a$a$a$a$a$^$r$r$a$^$^$^$a$r$r$r$r$r$/$^$r$^$^$^$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$O$($_$_$:$:$`.z.A.",
     3598"P$Q$R$S$T$U$V$W$X$Y$Z$W$`$ %.%W$+%U$@%#%$%%%&%($*%=%-%;%>%>%,%r$r$r$r$r$a$a$a$/$/$/$r$r$r$r$r$r$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$O$($_$_$:$:$p+z.Y ",
     3599"'%W$)%!%~%{%'%]%~%^%'%]%~%^%'%]%~%^%/%(%_%&%:%<%[%}%|%1%2%3%4%r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$/$r$/$/$r$r$r$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$r$/$/$/$/$/$O$($_$_$:$:$`.z.A.",
     3600"5%6%'%'%6%7%8%9%6%7%8%9%6%7%8%9%6%7%8%0%&%a%<%b%[%c%d%e%f%g%h%r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$/$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$/$/$/$/$/$/$/$/$/$/$/$/$/$/$r$r$/$/$r$r$/$r$i%j%O$($_$_$:$:$p+z.Y ",
     3601"k%l%m%n%o%o%p%q%o%o%r%q%o%o%r%q%o%o%p%q%s%t%/$u%v%w%x%y%z%A%B%r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$/$/$/$/$/$/$/$r$r$i%i%i%r$r$i%i%i%i%i%i%i%i%i%i%i%i%r$/$/$j%j%j%j%j%j%j%j%j%O$($_$_$:$:$`.z.A.",
     3602"C%D%E%F%G%H%I%J%K%H%I%J%K%H%I%J%K%H%I%J%L%M%N%O%P%Q%R%S%T%A%B%r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$U%U%r$r$i%i%/$/$r$r$/$/$/$/$r$r$i%i%i%i%i%i%i%i%i%i%i%i%i%i%j%i%j%j%j%j%j%j%j%j%j%j%j%j%j%O$($_$_$:$:$p+z.Y ",
     3603"/$/$/$/$V%V%W%X%W%Y%Y%Z%W%W%Y%Z%W%W%W%`%`% &B%.&+&@&#&$&%&A%B%r$r$r$U%U%U%U%r$U%U%U%U%U%U%U%U%U%U%i%i%i%i%i%i%i%i%/$/$/$i%i%i%i%i%i%i%i%i%j%j%j%j%i%i%i%i%i%j%j%j%i%i%j%j%j%j%j%j%j%j%O$($_$_$:$:$`.z.A.",
     3604"&&*&=&-&=&;&>&,&=&;&>&,&=&;&>&,&=&;&>&'&)&!&~&{&]&^&/&(&_&:&<&U%U%U%U%U%U%U%U%U%U%U%U%U%i%i%U%U%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%O$($_$_$:$:$p+z.Y ",
     3605"U%U%U%U%U%U%U%U%U%U%U%U%U%U%U%U%U%U%U%U%[&}&|&1&2&3&4&5&_&6&U%7&U%U%U%U%U%U%U%U%i%i%U%U%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%O$O$_$_$:$:$`.z.A.",
     3606"U%U%U%U%U%U%[&8&U%9&[&0&U%9&[&0&U%9&[&a&:&b&c&d&e&f&g&h&i&<&j&U%U%U%U%U%U%U%U%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%O$O$_$_$:$:$p+z.Y ",
     3607"k&l&m&7&7&n&o&p&7&n&q&r&s&s&q&r&s&n&o&p&t&u&u&g&v&w&x&q&n&m&y&7&7&U%U%7&z&7&z&U%A&B&i%i%B&B&i%i%B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&i%B&O$O$_$_$:$:$`.z.A.",
     3608"C&D&E&z&z&E&F&G&z&E&F&G&z&E&F&G&z&E&F&G&H&I&J&K&L&M&N&O&P&Q&z&z&z&z&z&z&z&z&z&z&z&z&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&O$O$_$_$:$:$p+z.Y ",
     3609"z&z&z&z&R&S&T&U&R&S&T&U&R&S&T&U&R&S&T&U&V&V&W&X&Y&Z&`&C&R&z&z&z&z&z&z&z&z&z&z&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&O$O$_$_$:$:$^+z.A.",
     3610"z& *.*+*@*#*$*%*@*#*$*%*@*#*$*%*@*#*$*%*&***=*-*;*>*k&P&+*z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&B&B&B&B&z&z&z&B&B&B&z&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&/$O$O$@@_$,*:$/ ^+z.Y ",
     3611"'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*)*'*!*~*{*]*^*^*^*/*/*/*/*/*/*/*^*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*^*/*/*/*/*/*h h ^*h h ^*^*h h ^*^*^*^*h ^*^*^*^*h ^*^*^*(*_*_*_*_*_$:*:$<*`.z.} ",
     3612"'*'*'*'*'*[*}*|*'*[*}*|*'*[*}*|*'*[*}*|*1*1*2*}*}*2*[*)*3*4*5*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*h h h h h h h h h h h h h h h h 6*7*_*_*_*_*^*:*:$: 8*z.Y } ",
     3613"9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*( <*8*^+z.Y } 1 ",
     3614"a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*8*b*8*b*8*b*8*b*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*8*8*8*b*8*`.z.A.Y | | ",
     3615"c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*p+`.p+`.p+`.p+`.`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+^+`.^+^+z.z.Y Y | | 1 ",
     3616"d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*A.Y A.Y A.Y A.Y Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y } } | | | | 1 1 ",
     3617"e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*} | } | } | } | | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | | | | 1 | | | 1 1 1 "};
     3618
     3619
     3620static char * tabmiddle_xpm[] = {
     3621"33 42 32 1",
     3622"       c None",
     3623".      c #CECFEF",
     3624"+      c #CECBE7",
     3625"@      c #C6C7E7",
     3626"#      c #C6CBE7",
     3627"$      c #BDBEDE",
     3628"%      c #BDC3DE",
     3629"&      c #CECBEF",
     3630"*      c #B5B6D6",
     3631"=      c #ADAECE",
     3632"-      c #ADB2CE",
     3633";      c #BDBAD6",
     3634">      c #B5BAD6",
     3635",      c #C6C3DE",
     3636"'      c #ADAAC6",
     3637")      c #B5B2CE",
     3638"!      c #B5B6CE",
     3639"~      c #A5A2BD",
     3640"{      c #A5A6BD",
     3641"]      c #9C9EB5",
     3642"^      c #9CA2BD",
     3643"/      c #ADAEC6",
     3644"(      c #C6C3E7",
     3645"_      c #9C9AB5",
     3646":      c #A5A6C6",
     3647"<      c #949AAD",
     3648"[      c #A5AAC6",
     3649"}      c #9496AD",
     3650"|      c #BDBADE",
     3651"1      c #BDBED6",
     3652"2      c #9CA2B5",
     3653"3      c #A5AABD",
     3654"..........................+@.#.#.",
     3655"........................$@%&#.#..",
     3656"......................**$$@@&#.#.",
     3657".....................=-;>,%+@.#..",
     3658"....................'')!$$@@&#.#.",
     3659"...................~{=)$$@@&#.#..",
     3660"..................]^'/;;(%&#.#...",
     3661"................._]:/*>,%&@.#.#..",
     3662".................<{[)!$%+@.#.#...",
     3663"................}~{=!$%@@.#......",
     3664"................]^/-|$@@.#.......",
     3665"................]'/*;@@&#........",
     3666"...............<~[)>,%&#.#.......",
     3667"...............]~=)$%+#.#........",
     3668"...............]'/;1@@.#.........",
     3669"...............~{)*,%&#..........",
     3670"...............2/-$$@#...........",
     3671"...............~[*>(@&#..........",
     3672"...............^=)$%+#...........",
     3673"...............{'*>(@.#..........",
     3674"...............^=)$%+#...........",
     3675"...............{'*>(@.#..........",
     3676"...............^=)$%+#...........",
     3677"...............{'*>(@.#..........",
     3678"...............^=)$%+#...........",
     3679"...............{'*>(@.#..........",
     3680"...............^=)$%+#...........",
     3681"...............{'*>@@.#..........",
     3682"...............^=!$%&#...........",
     3683"...............{/*;@@.#..........",
     3684"...............{)!$%&#...........",
     3685"..............]'/;1@@.#..........",
     3686"..............23)>,%&#...........",
     3687"..............~=-$$@@.#..........",
     3688".............]{/*;@@.#...........",
     3689"............<^[)>,%&#............",
     3690"............]{/!$%@@.#...........",
     3691"..........]^[-!$%@@.#............",
     3692".........]^3/!>$@@.#.............",
     3693".......<]^3/!>$@@&#..............",
     3694".....<]2{[/!>$%@&#.#.............",
     3695"}<<_]2{3/-!>$%@&#.#.............."};
     3696
     3697
     3698static char * tabselectedbeginn_xpm[] = {
     3699"33 39 28 1",
     3700"       c None",
     3701".      c #CECFEF",
     3702"+      c #EFF3EF",
     3703"@      c #FFFBFF",
     3704"#      c #F7FBF7",
     3705"$      c #FFFFFF",
     3706"%      c #EFEFEF",
     3707"&      c #F7F7F7",
     3708"*      c #DEDFDE",
     3709"=      c #E7E7E7",
     3710"-      c #D6D3D6",
     3711";      c #DEE3DE",
     3712">      c #EFEBEF",
     3713",      c #F7F3F7",
     3714"'      c #CECBCE",
     3715")      c #CECFCE",
     3716"!      c #D6D7D6",
     3717"~      c #DEDBDE",
     3718"{      c #E7EBE7",
     3719"]      c #C6C7C6",
     3720"^      c #E7E3E7",
     3721"/      c #BDC3BD",
     3722"(      c #CED3CE",
     3723"_      c #BDBABD",
     3724":      c #C6C3C6",
     3725"<      c #C6CBC6",
     3726"[      c #D6DBD6",
     3727"}      c #BDBEBD",
     3728"..........................+@#$#$$",
     3729"........................%%&&@#$#$",
     3730"......................*==%%&&@#$$",
     3731"....................--*;>%,&@#$#$",
     3732"...................')!~={,+@#$#$$",
     3733"...................]-!^=%%&&@#$#$",
     3734"................../'(~;>%&&@#$#$$",
     3735"................._])!*={,&@#$#$$$",
     3736"................_])~*>%&&$#$$$$$$",
     3737"................:<![={&&@#$$$$$$$",
     3738"................:)!^=,+@#$$$$$$$$",
     3739"...............}'(*^%+@#$#$$$$$$$",
     3740"...............:<!*>%&&$#$$$$$$$$",
     3741".............../)!^{,&@#$$$$$$$$$",
     3742"...............](*^%+@#$$$$$$$$$$",
     3743"...............]!~=%&&$$$$$$$$$$$",
     3744"...............'(*=,+@#$$$$$$$$$$",
     3745"...............<!*>%&&$$$$$$$$$$$",
     3746"...............'-^=,+@#$$$$$$$$$$",
     3747"...............<!*>%&#$$$$$$$$$$$",
     3748"...............'-^=,+@#$$$$$$$$$$",
     3749"...............<!*>%&#$$$$$$$$$$$",
     3750"...............'-^=,+@#$$$$$$$$$$",
     3751"...............<!*>%&#$$$$$$$$$$$",
     3752"...............'-^=,+@#$$$$$$$$$$",
     3753"...............<!*>%&#$$$$$$$$$$$",
     3754"...............'!^=,&@#$$$$$$$$$$",
     3755"...............<~*>%&#$$$$$$$$$$$",
     3756"...............)!^{,&@#$$$$$$$$$$",
     3757"..............])~;%+@#$$$$$$$$$$$",
     3758"..............]-[={&&$#$$$$$$$$$$",
     3759".............])!^=,&@#$$$$$$$$$$$",
     3760"............:'-*^%+@#$$$$$$$$$$$$",
     3761"............])~*>%&&$#$$$$$$$$$$$",
     3762"...........:'!*={,&@#$$$$$$$$$$$$",
     3763"..........:'-~^=,+@#$$$$$$$$$$$$$",
     3764".......}]'-~^=%,&@#$$$$$$$$$$$$$$",
     3765".....}:])-~^=%,+@#$#$$$$$$$$$$$$$",
     3766"}}}:]')-!*^=%,&@#$#$$$$$$$$$$$$$$"};
     3767
     3768
     3769static char * tabselectedend_xpm[] = {
     3770"33 42 33 1",
     3771"       c None",
     3772".      c #FFFFFF",
     3773"+      c #CECBE7",
     3774"@      c #C6C7E7",
     3775"#      c #CECFEF",
     3776"$      c #C6CBE7",
     3777"%      c #BDBEDE",
     3778"&      c #BDC3DE",
     3779"*      c #CECBEF",
     3780"=      c #B5B6D6",
     3781"-      c #ADAECE",
     3782";      c #ADB2CE",
     3783">      c #BDBAD6",
     3784",      c #B5BAD6",
     3785"'      c #C6C3DE",
     3786")      c #ADAAC6",
     3787"!      c #B5B2CE",
     3788"~      c #B5B6CE",
     3789"{      c #A5A2BD",
     3790"]      c #A5A6BD",
     3791"^      c #9C9EB5",
     3792"/      c #9CA2BD",
     3793"(      c #ADAEC6",
     3794"_      c #C6C3E7",
     3795":      c #9C9AB5",
     3796"<      c #A5A6C6",
     3797"[      c #949AAD",
     3798"}      c #A5AAC6",
     3799"|      c #9496AD",
     3800"1      c #BDBADE",
     3801"2      c #BDBED6",
     3802"3      c #9CA2B5",
     3803"4      c #A5AABD",
     3804"..........................+@#$#$#",
     3805"........................%@&*$#$##",
     3806"......................==%%@@*$#$#",
     3807".....................-;>,'&+@#$##",
     3808"....................))!~%%@@*$#$#",
     3809"...................{]-!%%@@*$#$##",
     3810"..................^/)(>>_&*$#$###",
     3811".................:^<(=,'&*@#$#$##",
     3812".................[]}!~%&+@#$#$###",
     3813"................|{]-~%&@@#$######",
     3814"................^/(;1%@@#$#######",
     3815"................^)(=>@@*$########",
     3816"...............[{}!,'&*$#$#######",
     3817"...............^{-!%&+$#$########",
     3818"...............^)(>2@@#$#########",
     3819"...............{]!='&*$##########",
     3820"...............3(;%%@$###########",
     3821"...............{}=,_@*$##########",
     3822".............../-!%&+$###########",
     3823"...............])=,_@#$##########",
     3824".............../-!%&+$###########",
     3825"...............])=,_@#$##########",
     3826".............../-!%&+$###########",
     3827"...............])=,_@#$##########",
     3828".............../-!%&+$###########",
     3829"...............])=,_@#$##########",
     3830".............../-!%&+$###########",
     3831"...............])=,@@#$##########",
     3832".............../-~%&*$###########",
     3833"...............](=>@@#$##########",
     3834"...............]!~%&*$###########",
     3835"..............^)(>2@@#$##########",
     3836"..............34!,'&*$###########",
     3837"..............{-;%%@@#$##########",
     3838".............^](=>@@#$###########",
     3839"............[/}!,'&*$############",
     3840"............^](~%&@@#$###########",
     3841"..........^/};~%&@@#$############",
     3842".........^/4(~,%@@#$#############",
     3843".......[^/4(~,%@@*$##############",
     3844".....[^3]}(~,%&@*$#$#############",
     3845"|[[:^3]4(;~,%&@*$#$##############"};
     3846
     3847
     3848static char * tabend_xpm[] = {
     3849"33 42 3 1",
     3850"       c None",
     3851".      c #CECFEF",
     3852"+      c #FFFFFF",
     3853"..........................+++++++",
     3854"........................+++++++++",
     3855"......................+++++++++++",
     3856".....................++++++++++++",
     3857"....................+++++++++++++",
     3858"...................++++++++++++++",
     3859"..................+++++++++++++++",
     3860".................++++++++++++++++",
     3861".................++++++++++++++++",
     3862"................+++++++++++++++++",
     3863"................+++++++++++++++++",
     3864"................+++++++++++++++++",
     3865"...............++++++++++++++++++",
     3866"...............++++++++++++++++++",
     3867"...............++++++++++++++++++",
     3868"...............++++++++++++++++++",
     3869"...............++++++++++++++++++",
     3870"...............++++++++++++++++++",
     3871"...............++++++++++++++++++",
     3872"...............++++++++++++++++++",
     3873"...............++++++++++++++++++",
     3874"...............++++++++++++++++++",
     3875"...............++++++++++++++++++",
     3876"...............++++++++++++++++++",
     3877"...............++++++++++++++++++",
     3878"...............++++++++++++++++++",
     3879"...............++++++++++++++++++",
     3880"...............++++++++++++++++++",
     3881"...............++++++++++++++++++",
     3882"...............++++++++++++++++++",
     3883"...............++++++++++++++++++",
     3884"..............+++++++++++++++++++",
     3885"..............+++++++++++++++++++",
     3886"..............+++++++++++++++++++",
     3887".............++++++++++++++++++++",
     3888"............+++++++++++++++++++++",
     3889"............+++++++++++++++++++++",
     3890"..........+++++++++++++++++++++++",
     3891".........++++++++++++++++++++++++",
     3892".......++++++++++++++++++++++++++",
     3893".....++++++++++++++++++++++++++++",
     3894"+++++++++++++++++++++++++++++++++"};
     3895
     3896
     3897
     3898
     3899QColor fromHsl(QColor c)
     3900{
     3901    const qreal h = c.hueF();
     3902    const qreal s = c.saturationF();
     3903    const qreal l = c.valueF();
     3904
     3905    qreal ca[3] = {0, 0, 0};
     3906
     3907    if (s == 0 || h == 1) {
     3908        // achromatic case
     3909        ca[0] = ca[1] = ca[2] = l;
     3910    } else {
     3911        // chromatic case
     3912        qreal temp2;
     3913        if (l < qreal(0.5))
     3914            temp2 = l * (qreal(1.0) + s);
     3915        else
     3916            temp2 = l + s - (l * s);
     3917
     3918        const qreal temp1 = (qreal(2.0) * l) - temp2;
     3919        qreal temp3[3] = { h + (qreal(1.0) / qreal(3.0)),
     3920            h,
     3921            h - (qreal(1.0) / qreal(3.0)) };
     3922
     3923        for (int i = 0; i != 3; ++i) {
     3924            if (temp3[i] < qreal(0.0))
     3925                temp3[i] += qreal(1.0);
     3926            else if (temp3[i] > qreal(1.0))
     3927                temp3[i] -= qreal(1.0);
     3928
     3929            const qreal sixtemp3 = temp3[i] * qreal(6.0);
     3930
     3931            if (sixtemp3 < qreal(1.0))
     3932                ca[i] = ((temp1 + (temp2 - temp1) * sixtemp3));
     3933            else if ((temp3[i] * qreal(2.0)) < qreal(1.0))
     3934                ca[i] = (temp2);
     3935            else if ((temp3[i] * qreal(3.0)) < qreal(2.0))
     3936                ca[i] = temp1 + (temp2 -temp1) * (qreal(2.0) /qreal(3.0) - temp3[i]) * qreal(6.0);
     3937            else ca[i] = temp1;
     3938        }
     3939    }
     3940   
     3941    return QColor::fromRgbF(ca[0], ca[1], ca[2]);
     3942}
     3943
     3944#define Q_MAX_3(a, b, c) ( ( a > b && a > c) ? a : (b > c ? b : c) )
     3945#define Q_MIN_3(a, b, c) ( ( a < b && a < c) ? a : (b < c ? b : c) )
     3946
     3947QColor toHsl(QColor c)
     3948{
     3949    QColor color;
     3950    qreal h;
     3951    qreal s;
     3952    qreal l;
     3953
     3954    const qreal r = c.redF();
     3955    const qreal g = c.greenF();
     3956    const qreal b = c.blueF();
     3957    const qreal max = Q_MAX_3(r, g, b);
     3958    const qreal min = Q_MIN_3(r, g, b);
     3959    const qreal delta = max - min; 
     3960    const qreal delta2 = max + min;
     3961    const qreal lightness = qreal(0.5) * delta2;
     3962    l = (lightness);
     3963    if (qFuzzyIsNull(delta)) {
     3964        // achromatic case, hue is undefined
     3965        h = 0;
     3966        s = 0;
     3967    } else {
     3968        // chromatic case
     3969        qreal hue = 0;
     3970        if (lightness < qreal(0.5))
     3971            s = ((delta / delta2));
     3972        else
     3973            s = ((delta / (qreal(2.0) - delta2)));
     3974        if (qFuzzyCompare(r, max)) {
     3975            hue = ((g - b) /delta);
     3976        } else if (qFuzzyCompare(g, max)) {
     3977            hue = (2.0 + (b - r) / delta);
     3978        } else if (qFuzzyCompare(b, max)) {
     3979            hue = (4.0 + (r - g) / delta);
     3980        } else {
     3981            Q_ASSERT_X(false, "QColor::toHsv", "internal error");
     3982        }
     3983        hue *= 60.0;
     3984        if (hue < 0.0)
     3985            hue += 360.0;
     3986        h = (hue * 100);
     3987    }
     3988
     3989    h = h / 36000;
     3990
     3991    return QColor::fromHsvF(h, s, l);
     3992}
     3993
     3994void tintColor(QColor &color, QColor tintColor, qreal _saturation)
     3995{
     3996    tintColor = toHsl(tintColor);
     3997    color = toHsl(color);
     3998    qreal hue = tintColor.hueF();
     3999
     4000    qreal saturation = color.saturationF();
     4001    if (_saturation)
     4002        saturation = _saturation;
     4003    qreal lightness = color.valueF();
     4004    color.setHsvF(hue, saturation, lightness);
     4005
     4006    color = fromHsl(color);
     4007    color.toRgb();
     4008}
     4009
     4010void tintImagePal(QImage *image, QColor color, qreal saturation)
     4011{
     4012    QVector<QRgb> colorTable = image->colorTable();
     4013    for (int i=2;i< colorTable.size();i++) {
     4014        QColor c(toHsl(colorTable.at(i)));
     4015        tintColor(c, color, saturation);
     4016        colorTable[i] = c.rgb();
     4017    }
     4018    image->setColorTable(colorTable);
     4019}
     4020
     4021
     4022void tintImage(QImage *image, QColor color, qreal saturation)
     4023{
     4024    *image = image->convertToFormat(QImage::Format_RGB32);
     4025
     4026    for (int x = 0; x < image->width(); x++)
     4027        for (int y = 0; y < image->height(); y++) {
     4028            QColor c(image->pixel(x,y));
     4029            tintColor(c, color, saturation);
     4030            image->setPixel(x, y, c.rgb());
     4031        }
     4032}
     4033
     4034#endif //Q_WS_WINCE_WM
    6724035
    6734036
    6744037enum QSliderDirection { SliderUp, SliderDown, SliderLeft, SliderRight };
     4038
     4039#ifdef Q_WS_WINCE_WM
     4040
     4041void QWindowsMobileStylePrivate::tintImagesButton(QColor color)
     4042{
     4043       if (currentTintButton == color)
     4044        return;
     4045
     4046       imageTabEnd = QImage(tabend_xpm);
     4047       imageTabSelectedEnd = QImage(tabselectedend_xpm);
     4048       imageTabSelectedBegin = QImage(tabselectedbeginn_xpm);
     4049       imageTabMiddle = QImage(tabmiddle_xpm);
     4050       tintImage(&imageTabEnd, color, 0.0);
     4051       tintImage(&imageTabSelectedEnd, color, 0.0);
     4052       tintImage(&imageTabSelectedBegin, color, 0.0);
     4053       tintImage(&imageTabMiddle, color, 0.0);
     4054
     4055       if (!doubleControls) {
     4056           int height = imageTabMiddle.height() / 2 + 1;
     4057           imageTabEnd = imageTabEnd.scaledToHeight(height);
     4058           imageTabMiddle = imageTabMiddle.scaledToHeight(height);
     4059           imageTabSelectedEnd = imageTabSelectedEnd.scaledToHeight(height);
     4060           imageTabSelectedBegin = imageTabSelectedBegin.scaledToHeight(height);
     4061       }
     4062}
     4063
     4064void QWindowsMobileStylePrivate::tintImagesHigh(QColor color)
     4065{
     4066    if (currentTintHigh == color)
     4067        return;
     4068    currentTintHigh = color;
     4069    tintListViewHighlight(color);
     4070    imageScrollbarHandleUpHigh = imageScrollbarHandleUp;
     4071    imageScrollbarHandleDownHigh = imageScrollbarHandleDown;
     4072    tintImagePal(&imageScrollbarHandleDownHigh, color, qreal(0.8));
     4073    tintImagePal(&imageScrollbarHandleUpHigh, color, qreal(0.8));
     4074}
     4075
     4076void QWindowsMobileStylePrivate::tintListViewHighlight(QColor color)
     4077{
     4078    imageListViewHighlightCornerRight = QImage(listviewhighcornerright_xpm);
     4079    tintImage(&imageListViewHighlightCornerRight, color, qreal(0.0));
     4080
     4081    imageListViewHighlightCornerLeft = QImage(listviewhighcornerleft_xpm);
     4082    tintImage(&imageListViewHighlightCornerLeft, color, qreal(0.0));
     4083
     4084    imageListViewHighlightMiddle = QImage(listviewhighmiddle_xpm);
     4085    tintImage(&imageListViewHighlightMiddle, color, qreal(0.0));
     4086     
     4087     int height = imageListViewHighlightMiddle.height();
     4088     if (!doubleControls) {
     4089         height = height / 2;
     4090         imageListViewHighlightCornerRight = imageListViewHighlightCornerRight.scaledToHeight(height);
     4091         imageListViewHighlightCornerLeft = imageListViewHighlightCornerLeft.scaledToHeight(height);
     4092         imageListViewHighlightMiddle = imageListViewHighlightMiddle.scaledToHeight(height);
     4093     }
     4094}
     4095
     4096#endif //Q_WS_WINCE_WM
     4097
     4098void QWindowsMobileStylePrivate::setupWindowsMobileStyle65()
     4099{
     4100#ifdef Q_WS_WINCE_WM
     4101    wm65 = qt_wince_is_windows_mobile_65();
     4102    if (wm65) {
     4103        imageScrollbarHandleUp =  QImage(sbhandleup_xpm);
     4104        imageScrollbarHandleDown = QImage(sbhandledown_xpm);
     4105        imageScrollbarGripUp = QImage(sbgripup_xpm);
     4106        imageScrollbarGripDown = QImage(sbgripdown_xpm);
     4107        imageScrollbarGripMiddle = QImage(sbgripmiddle_xpm);
     4108
     4109        if (!doubleControls) {
     4110            imageScrollbarHandleUp = imageScrollbarHandleUp.scaledToHeight(imageScrollbarHandleUp.height() / 2);
     4111            imageScrollbarHandleDown = imageScrollbarHandleDown.scaledToHeight(imageScrollbarHandleDown.height() / 2);
     4112            imageScrollbarGripMiddle = imageScrollbarGripMiddle.scaledToHeight(imageScrollbarGripMiddle.height() / 2);
     4113            imageScrollbarGripUp = imageScrollbarGripUp.scaledToHeight(imageScrollbarGripUp.height() / 2);
     4114            imageScrollbarGripDown = imageScrollbarGripDown.scaledToHeight(imageScrollbarGripDown.height() / 2);
     4115        } else {
     4116        }
     4117        tintImagesHigh(Qt::blue);
     4118    }
     4119#endif //Q_WS_WINCE_WM
     4120}
     4121
     4122void QWindowsMobileStylePrivate::drawTabBarTab(QPainter *painter, const QStyleOptionTab *tab)
     4123{
     4124#ifndef QT_NO_TABBAR
     4125#ifdef Q_WS_WINCE_WM
     4126    if (wm65) {
     4127        tintImagesButton(tab->palette.button().color());
     4128        QRect r;
     4129        r.setTopLeft(tab->rect.topRight() - QPoint(imageTabMiddle.width(), 0));
     4130        r.setBottomRight(tab->rect.bottomRight());
     4131        if (tab->state & QStyle::State_Selected) {
     4132            painter->fillRect(tab->rect, tab->palette.window());
     4133        } else {
     4134            painter->fillRect(tab->rect, QColor(imageTabMiddle.pixel(0,0)));
     4135        }
     4136        if  (tab->selectedPosition ==  QStyleOptionTab::NextIsSelected) {
     4137            painter->drawImage(r, imageTabSelectedBegin);
     4138        } else if (tab->position == QStyleOptionTab::End ||
     4139            tab->position == QStyleOptionTab::OnlyOneTab) {
     4140                if (!(tab->state & QStyle::State_Selected)) {
     4141                    painter->drawImage(r, imageTabEnd);
     4142                }
     4143        } else if (tab->state & QStyle::State_Selected) {
     4144            painter->drawImage(r, imageTabSelectedEnd);
     4145        } else {
     4146            painter->drawImage(r, imageTabMiddle);
     4147        }
     4148        if (tab->position == QStyleOptionTab::Beginning && ! (tab->state & QStyle::State_Selected)) {
     4149            painter->drawImage(tab->rect.topLeft() - QPoint(imageTabMiddle.width() * 0.60, 0), imageTabSelectedEnd);
     4150        }
     4151        //imageTabBarBig
     4152        return;
     4153    }
     4154#endif //Q_WS_WINCE_WM
     4155    painter->save();
     4156    painter->setPen(tab->palette.shadow().color());
     4157    if (doubleControls) {
     4158        QPen pen = painter->pen();
     4159        pen.setWidth(2);
     4160        pen.setCapStyle(Qt::FlatCap);
     4161        painter->setPen(pen);
     4162    }
     4163    if(tab->shape == QTabBar::RoundedNorth) {
     4164        if (tab->state & QStyle::State_Selected) {
     4165            painter->fillRect(tab->rect, tab->palette.light());
     4166            painter->drawLine(tab->rect.topRight(), tab->rect.bottomRight());
     4167        }
     4168        else {
     4169            painter->fillRect(tab->rect, tab->palette.button());
     4170            painter->drawLine(tab->rect.bottomLeft() , tab->rect.bottomRight());
     4171            painter->drawLine(tab->rect.topRight(), tab->rect.bottomRight());
     4172        }
     4173    }
     4174    else if(tab->shape == QTabBar::RoundedSouth) {
     4175        if (tab->state & QStyle::State_Selected) {
     4176            painter->fillRect(tab->rect.adjusted(0,-2,0,0), tab->palette.light());
     4177            painter->drawLine(tab->rect.topRight(), tab->rect.bottomRight());
     4178        }
     4179        else {
     4180            painter->fillRect(tab->rect, tab->palette.button());
     4181            if (doubleControls)
     4182                painter->drawLine(tab->rect.topLeft() + QPoint(0,1), tab->rect.topRight() + QPoint(0,1));
     4183            else
     4184                painter->drawLine(tab->rect.topLeft(), tab->rect.topRight());
     4185            painter->drawLine(tab->rect.topRight(), tab->rect.bottomRight());
     4186        }
     4187    }
     4188    else if(tab->shape == QTabBar::RoundedEast) {
     4189        if (tab->state & QStyle::State_Selected) {
     4190            painter->fillRect(tab->rect, tab->palette.light());
     4191            painter->drawLine(tab->rect.topLeft(), tab->rect.topRight());
     4192        }
     4193        else {
     4194            painter->fillRect(tab->rect, tab->palette.button());
     4195            painter->drawLine(tab->rect.topLeft(), tab->rect.bottomLeft());
     4196            painter->drawLine(tab->rect.topLeft(), tab->rect.topRight());
     4197        }
     4198    }
     4199    else if(tab->shape == QTabBar::RoundedWest) {
     4200        if (tab->state & QStyle::State_Selected) {
     4201            painter->fillRect(tab->rect, tab->palette.light());
     4202            painter->drawLine(tab->rect.bottomLeft(), tab->rect.bottomRight());
     4203        }
     4204        else {
     4205            painter->fillRect(tab->rect, tab->palette.button());
     4206            painter->drawLine(tab->rect.topRight(), tab->rect.bottomRight());
     4207            painter->drawLine(tab->rect.bottomLeft(), tab->rect.bottomRight());
     4208        }
     4209    }
     4210    painter->restore();
     4211#endif //QT_NO_TABBAR
     4212}
     4213
     4214void QWindowsMobileStylePrivate::drawPanelItemViewSelected(QPainter *painter, const QStyleOptionViewItemV4 *option, QRect rect)
     4215{
     4216#ifdef Q_WS_WINCE_WM
     4217    if (wm65) {
     4218        QRect r;
     4219        if (rect.isValid())
     4220            r = rect;
     4221        else
     4222            r = option->rect;
     4223        tintImagesHigh(option->palette.highlight().color());
     4224
     4225        painter->setPen(QColor(Qt::lightGray));
     4226
     4227        if (option->viewItemPosition ==  QStyleOptionViewItemV4::Middle) {
     4228            painter->drawImage(r, imageListViewHighlightMiddle);
     4229        } else if (option->viewItemPosition ==  QStyleOptionViewItemV4::Beginning) {
     4230            painter->drawImage(r.adjusted(10, 0, 0, 0), imageListViewHighlightMiddle);
     4231        } else if (option->viewItemPosition ==  QStyleOptionViewItemV4::End) {
     4232            painter->drawImage(r.adjusted(0, 0, -10, 0), imageListViewHighlightMiddle);
     4233        } else {
     4234            painter->drawImage(r.adjusted(10, 0, -10, 0), imageListViewHighlightMiddle);
     4235        }
     4236
     4237        QImage cornerLeft = imageListViewHighlightCornerLeft;
     4238        QImage cornerRight = imageListViewHighlightCornerRight;
     4239
     4240        int width = r.width() > cornerRight.width() ? r.width() : cornerRight.width();
     4241
     4242        if ((width * 2) > r.width()) {
     4243            width = (r.width() - 5) / 2;
     4244        }
     4245
     4246        cornerLeft = cornerLeft.scaled(width, r.height());
     4247        cornerRight = cornerRight.scaled(width, r.height());
     4248
     4249        if ((option->viewItemPosition ==  QStyleOptionViewItemV4::Beginning) || (option->viewItemPosition ==  QStyleOptionViewItemV4::OnlyOne) || !option->viewItemPosition) {
     4250            painter->drawImage(r.topLeft(), cornerLeft);
     4251        }
     4252        if ((option->viewItemPosition ==  QStyleOptionViewItemV4::End) || (option->viewItemPosition ==  QStyleOptionViewItemV4::OnlyOne) || !option->viewItemPosition) {
     4253            painter->drawImage(r.topRight() - QPoint(cornerRight.width(),0), cornerRight);
     4254        }
     4255        return;
     4256    }
     4257#endif //Q_WS_WINCE_WM
     4258    QPalette::ColorGroup cg = option->state & QStyle::State_Enabled
     4259                                      ? QPalette::Normal : QPalette::Disabled;
     4260
     4261    if (rect.isValid())
     4262        painter->fillRect(rect, option->palette.brush(cg, QPalette::Highlight));
     4263    else
     4264        painter->fillRect(option->rect, option->palette.brush(cg, QPalette::Highlight));
     4265}
     4266
     4267void QWindowsMobileStylePrivate::drawScrollbarGrip(QPainter *p, QStyleOptionSlider *newScrollbar, const QStyleOptionComplex *option, bool drawCompleteFrame)
     4268{
     4269#ifdef Q_WS_WINCE_WM
     4270    if (wm65) {
     4271        if (newScrollbar->orientation == Qt::Horizontal) {
     4272            QTransform transform;
     4273            transform.rotate(-90);
     4274            QRect r = newScrollbar->rect;
     4275            p->drawImage(r.adjusted(10, 0, -10, 0), imageScrollbarGripMiddle.transformed(transform));
     4276            p->drawImage(r.topLeft(), imageScrollbarGripUp.transformed(transform));
     4277            p->drawImage(r.topRight() - QPoint(imageScrollbarGripDown.height() - 1, 0), imageScrollbarGripDown.transformed(transform));
     4278        } else {
     4279            QRect r = newScrollbar->rect;
     4280            p->drawImage(r.adjusted(0, 10, 0, -10), imageScrollbarGripMiddle);
     4281            p->drawImage(r.topLeft(), imageScrollbarGripUp);
     4282            p->drawImage(r.bottomLeft() - QPoint(0, imageScrollbarGripDown.height() - 1), imageScrollbarGripDown);
     4283        }
     4284        return ;
     4285    }
     4286#endif
     4287        if (newScrollbar->orientation == Qt::Horizontal) {
     4288            p->fillRect(newScrollbar->rect,option->palette.button());
     4289            QRect r = newScrollbar->rect;
     4290            p->drawLine(r.topLeft(), r.bottomLeft());
     4291            p->drawLine(r.topRight(), r.bottomRight());
     4292            if (smartphone) {
     4293                p->drawLine(r.topLeft(), r.topRight());
     4294                p->drawLine(r.bottomLeft(), r.bottomRight());
     4295            }
     4296        }
     4297        else {
     4298            p->fillRect(newScrollbar->rect,option->palette.button());
     4299            QRect r = newScrollbar->rect;
     4300            p->drawLine(r.topLeft(), r.topRight());
     4301            p->drawLine(r.bottomLeft(), r.bottomRight());
     4302            if (smartphone) {
     4303                p->drawLine(r.topLeft(), r.bottomLeft());
     4304                p->drawLine(r.topRight(), r.bottomRight());
     4305            }
     4306        }
     4307        if (newScrollbar->state & QStyle::State_HasFocus) {
     4308            QStyleOptionFocusRect fropt;
     4309            fropt.QStyleOption::operator=(*newScrollbar);
     4310            fropt.rect.setRect(newScrollbar->rect.x() + 2, newScrollbar->rect.y() + 2,
     4311                newScrollbar->rect.width() - 5,
     4312                newScrollbar->rect.height() - 5);
     4313        }
     4314    int gripMargin = doubleControls ? 4 : 2;
     4315    int doubleLines = doubleControls ? 2 : 1;
     4316    //If there is a frame around the scrollbar (abstractScrollArea),
     4317    //then the margin is different, because of the missing frame
     4318    int gripMarginFrame = doubleControls ? 3 : 1;
     4319    if (drawCompleteFrame)
     4320        gripMarginFrame = 0;
     4321    //draw grips
     4322    if (!smartphone)
     4323        if (newScrollbar->orientation == Qt::Horizontal) {
     4324            for (int i = -3; i < 3; i += 2) {
     4325                p->drawLine(
     4326                    QPoint(newScrollbar->rect.center().x() + i * doubleLines + 1,
     4327                    newScrollbar->rect.top() + gripMargin +gripMarginFrame),
     4328                    QPoint(newScrollbar->rect.center().x() + i * doubleLines + 1,
     4329                    newScrollbar->rect.bottom() - gripMargin));
     4330            }
     4331        } else {
     4332            for (int i = -2; i < 4 ; i += 2) {
     4333                p->drawLine(
     4334                    QPoint(newScrollbar->rect.left() + gripMargin + gripMarginFrame ,
     4335                    newScrollbar->rect.center().y() + 1 + i * doubleLines - 1),
     4336                    QPoint(newScrollbar->rect.right() - gripMargin,
     4337                    newScrollbar->rect.center().y() + 1 + i * doubleLines - 1));
     4338            }
     4339        }
     4340        if (!smartphone) {
     4341            QRect r;
     4342            if (doubleControls)
     4343                r = option->rect.adjusted(1, 1, -1, 0);
     4344            else
     4345                r = option->rect.adjusted(0, 0, -1, 0);
     4346            if (drawCompleteFrame && doubleControls)
     4347                r.adjust(0, 0, 0, -1);
     4348            //Check if the scrollbar is part of an abstractItemView and draw the frame according
     4349            if (drawCompleteFrame)
     4350                p->drawRect(r);
     4351            else
     4352                if (newScrollbar->orientation == Qt::Horizontal)
     4353                    p->drawLine(r.topLeft(), r.topRight());
     4354                else
     4355                    p->drawLine(r.topLeft(), r.bottomLeft());
     4356        }
     4357}
     4358
     4359void QWindowsMobileStylePrivate::drawScrollbarHandleUp(QPainter *p, QStyleOptionSlider *opt, bool completeFrame, bool )
     4360{
     4361#ifdef Q_WS_WINCE_WM
     4362    if (wm65) {
     4363        tintImagesHigh(opt->palette.highlight().color());
     4364        QRect r = opt->rect;
     4365         if (opt->orientation == Qt::Horizontal) {
     4366            QTransform transform;
     4367            transform.rotate(-90);
     4368            if (opt->state & QStyle::State_Sunken)
     4369                p->drawImage(r.topLeft(), imageScrollbarHandleUpHigh.transformed(transform));
     4370            else
     4371                p->drawImage(r.topLeft(), imageScrollbarHandleUp.transformed(transform));
     4372         } else {
     4373             if (opt->state & QStyle::State_Sunken)
     4374                 p->drawImage(r.topLeft(), imageScrollbarHandleUpHigh);
     4375             else
     4376                 p->drawImage(r.topLeft(), imageScrollbarHandleUp);
     4377         }
     4378        return ;
     4379    }
     4380#endif //Q_WS_WINCE_WM
     4381
     4382    QBrush fill = opt->palette.button();
     4383    if (opt->state & QStyle::State_Sunken)
     4384        fill = opt->palette.shadow();
     4385
     4386    QStyleOption arrowOpt = *opt;
     4387    if (doubleControls)
     4388        arrowOpt.rect = opt->rect.adjusted(4, 6, -5, -3);
     4389    else
     4390        arrowOpt.rect = opt->rect.adjusted(5, 6, -4, -3);
     4391
     4392    bool horizontal = (opt->orientation == Qt::Horizontal);
     4393
     4394    if (horizontal) {
     4395        p->fillRect(opt->rect,fill);
     4396        QRect r = opt->rect.adjusted(0,0,1,0);
     4397        p->drawLine(r.topRight(), r.bottomRight());
     4398        if (doubleControls)
     4399            arrowOpt.rect.adjust(0, -2 ,0, -2);
     4400        q_func()->proxy()->drawPrimitive(QStyle::PE_IndicatorArrowLeft, &arrowOpt, p, 0);
     4401    } else {
     4402        p->fillRect(opt->rect,fill);
     4403        QRect r = opt->rect.adjusted(0, 0, 0, 1);
     4404        p->drawLine(r.bottomLeft(), r.bottomRight());
     4405        if (completeFrame)
     4406            arrowOpt.rect.adjust(-2, 0, -2, 0);
     4407        if (doubleControls)
     4408            arrowOpt.rect.adjust(0, -4 , 0, -4);
     4409        if (completeFrame && doubleControls)
     4410            arrowOpt.rect.adjust(2, 0, 2, 0);
     4411        q_func()->proxy()->drawPrimitive(QStyle::PE_IndicatorArrowUp, &arrowOpt, p, 0);
     4412    }
     4413}
     4414
     4415void QWindowsMobileStylePrivate::drawScrollbarHandleDown(QPainter *p, QStyleOptionSlider *opt, bool completeFrame, bool secondScrollBar)
     4416{
     4417#ifndef QT_NO_SCROLLBAR
     4418#ifdef Q_WS_WINCE_WM
     4419    if (wm65) {
     4420        tintImagesHigh(opt->palette.highlight().color());
     4421        QRect r = opt->rect;
     4422        if (opt->orientation == Qt::Horizontal) {
     4423            QTransform transform;
     4424            transform.rotate(-90);
     4425            if (opt->state & QStyle::State_Sunken)
     4426                p->drawImage(r.topLeft(), imageScrollbarHandleDownHigh.transformed(transform));
     4427            else
     4428                p->drawImage(r.topLeft(), imageScrollbarHandleDown.transformed(transform));
     4429        } else {
     4430            if (opt->state & QStyle::State_Sunken)
     4431                p->drawImage(r.topLeft(), imageScrollbarHandleDownHigh);
     4432            else
     4433                p->drawImage(r.topLeft(), imageScrollbarHandleDown);
     4434        }
     4435        return ;
     4436    }
     4437#endif //Q_WS_WINCE_WM
     4438
     4439    QBrush fill = opt->palette.button();
     4440    if (opt->state & QStyle::State_Sunken)
     4441        fill = opt->palette.shadow();
     4442
     4443    QStyleOption arrowOpt = *opt;
     4444    if (doubleControls)
     4445        arrowOpt.rect = opt->rect.adjusted(4, 0, -5, 3);
     4446    else
     4447        arrowOpt.rect = opt->rect.adjusted(5, 6, -4, -3);
     4448
     4449    bool horizontal = (opt->orientation == Qt::Horizontal);
     4450
     4451    if (horizontal) {
     4452        p->fillRect(opt->rect,fill);
     4453        QRect r = opt->rect.adjusted(0, 0, 0, 0);
     4454        p->drawLine(r.topLeft(), r.bottomLeft());
     4455        if (secondScrollBar)
     4456            p->drawLine(r.topRight(), r.bottomRight());
     4457        if (doubleControls)
     4458            arrowOpt.rect.adjust(0, 4, 0, 4 );
     4459        q_func()->proxy()->drawPrimitive(QStyle::PE_IndicatorArrowRight, &arrowOpt, p, 0);
     4460    } else {
     4461        p->fillRect(opt->rect,fill);
     4462        QRect r = opt->rect.adjusted(0, -1, 0, -1);
     4463        p->drawLine(r.topLeft(), r.topRight());
     4464        if (secondScrollBar)
     4465            p->drawLine(r.bottomLeft() + QPoint(0,1), r.bottomRight() + QPoint(0, 1));
     4466        if (completeFrame)
     4467            arrowOpt.rect.adjust(-2, 0, -2, 0);
     4468        if (doubleControls)
     4469            arrowOpt.rect.adjust(1, 0, 1, 0 );
     4470        if (completeFrame && doubleControls)
     4471            arrowOpt.rect.adjust(1, 0, 1, 0);
     4472        q_func()->proxy()->drawPrimitive(QStyle::PE_IndicatorArrowDown, &arrowOpt, p, 0);
     4473    }
     4474#endif //QT_NO_SCROLLBAR
     4475}
     4476
     4477void QWindowsMobileStylePrivate::drawScrollbarGroove(QPainter *p,const QStyleOptionSlider *opt)
     4478{
     4479#ifndef QT_NO_SCROLLBAR
     4480#ifdef Q_OS_WINCE_WM
     4481    if (wm65) {
     4482        p->fillRect(opt->rect, QColor(231, 231, 231));
     4483        return ;
     4484    }
     4485#endif
     4486            QBrush fill;
     4487            if (smartphone) {
     4488                fill = opt->palette.light();
     4489                p->fillRect(opt->rect, fill);
     4490                fill = opt->palette.button();
     4491                QImage image;
     4492#ifndef QT_NO_IMAGEFORMAT_XPM
     4493                if (opt->orientation == Qt::Horizontal)
     4494                  image = QImage(vertlines_xpm);
     4495                else
     4496                  image = QImage(horlines_xpm);
     4497#endif
     4498                image.setColor(1, opt->palette.button().color().rgb());
     4499                fill.setTextureImage(image);
     4500            }
     4501            else {
     4502              fill = opt->palette.light();
     4503            }
     4504            p->fillRect(opt->rect, fill);
     4505#endif //QT_NO_SCROLLBAR
     4506}
    6754507
    6764508QWindowsMobileStyle::QWindowsMobileStyle(QWindowsMobileStylePrivate &dd) : QWindowsStyle(dd) {
     
    6864518QWindowsMobileStylePrivate::QWindowsMobileStylePrivate() :QWindowsStylePrivate() {
    6874519
    688 #ifdef Q_OS_WINCE
     4520#ifdef Q_WS_WINCE
    6894521   doubleControls = qt_wince_is_high_dpi();
    6904522   smartphone = qt_wince_is_smartphone();
     
    6924524   doubleControls = false;
    6934525   smartphone = false;
    694 #endif //Q_OS_WINCE
     4526#endif //Q_WS_WINCE
    6954527
    6964528#ifndef QT_NO_IMAGEFORMAT_XPM
     
    7214553       imageNormalize = QImage(normal_small_xpm);
    7224554   }
     4555
     4556   setupWindowsMobileStyle65();
     4557
    7234558
    7244559   imageArrowDownBig = QImage(arrowdown_big_xpm);
     
    11574992   case PE_IndicatorSpinMinus: {
    11584993       QRect r = option->rect;
    1159        int fw = pixelMetric(PM_DefaultFrameWidth, option, widget)+2;
     4994       int fw = proxy()->pixelMetric(PM_DefaultFrameWidth, option, widget)+2;
    11604995       QRect br = r.adjusted(fw, fw, -fw, -fw);
    11614996       int offset = (option->state & State_Sunken) ? 1 : 0;
     
    11945029            }
    11955030            if (option->state & State_Sunken)
    1196                 painter->translate(pixelMetric(PM_ButtonShiftHorizontal),
    1197                 pixelMetric(PM_ButtonShiftVertical));
     5031                painter->translate(proxy()->pixelMetric(PM_ButtonShiftHorizontal),
     5032                proxy()->pixelMetric(PM_ButtonShiftVertical));
    11985033            if (option->state & State_Enabled) {
    11995034                painter->translate(option->rect.x() + option->rect.width() / 2,
     
    13745209          switch (tab->shape) {
    13755210            case QTabBar::RoundedNorth:
     5211#ifdef Q_WS_WINCE_WM
     5212                if (!d->wm65)
     5213#endif
     5214                {
    13765215                if (d->doubleControls)
    1377                   painter->drawLine(rect.topLeft() + QPoint(0, 1), rect.topRight() + QPoint(0, 1));
     5216                    painter->drawLine(rect.topLeft() + QPoint(0, 1), rect.topRight() + QPoint(0, 1));
    13785217                else
    13795218                    painter->drawLine(rect.topLeft(), rect.topRight());
     5219                }
    13805220                break;
    13815221            case QTabBar::RoundedSouth:
     5222#ifdef Q_WS_WINCE_WM
     5223                if (!d->wm65)
     5224#endif
     5225                {
    13825226                if (d->doubleControls)
    13835227                  painter->drawLine(rect.bottomLeft(), rect.bottomRight());
    13845228                else
    13855229                  painter->drawLine(rect.bottomLeft(), rect.bottomRight());
     5230                }
    13865231                break;
    13875232            case QTabBar::RoundedEast:
     5233#ifdef Q_WS_WINCE_WM
     5234                if (!d->wm65)
     5235#endif
    13885236                painter->drawLine(rect.topRight(), rect.bottomRight());
    13895237                break;
    13905238            case QTabBar::RoundedWest:
     5239#ifdef Q_WS_WINCE_WM
     5240                if (!d->wm65)
     5241#endif
    13915242                painter->drawLine(rect.topLeft(), rect.bottomLeft());
    13925243                break;
     
    14075258        break;
    14085259#endif //QT_NO_TABBAR
     5260#ifndef QT_NO_ITEMVIEWS
     5261    case PE_PanelItemViewRow:
     5262        if (const QStyleOptionViewItemV4 *vopt = qstyleoption_cast<const QStyleOptionViewItemV4 *>(option)) {
     5263            QPalette::ColorGroup cg = vopt->state & QStyle::State_Enabled
     5264                                      ? QPalette::Normal : QPalette::Disabled;
     5265            if (cg == QPalette::Normal && !(vopt->state & QStyle::State_Active))
     5266                cg = QPalette::Inactive;
     5267
     5268            if ((vopt->state & QStyle::State_Selected) &&  proxy()->styleHint(QStyle::SH_ItemView_ShowDecorationSelected, option, widget))
     5269                 d->drawPanelItemViewSelected(painter, vopt);
     5270            else if (vopt->features & QStyleOptionViewItemV2::Alternate)
     5271                painter->fillRect(vopt->rect, vopt->palette.brush(cg, QPalette::AlternateBase));
     5272            else if (!(vopt->state & QStyle::State_Enabled))
     5273                painter->fillRect(vopt->rect, vopt->palette.brush(cg, QPalette::Base));
     5274        }
     5275        break;
     5276    case PE_PanelItemViewItem:
     5277        if (const QStyleOptionViewItemV4 *vopt = qstyleoption_cast<const QStyleOptionViewItemV4 *>(option)) {
     5278            QPalette::ColorGroup cg = vopt->state & QStyle::State_Enabled
     5279                                      ? QPalette::Normal : QPalette::Disabled;
     5280            if (cg == QPalette::Normal && !(vopt->state & QStyle::State_Active))
     5281                cg = QPalette::Inactive;
     5282
     5283            if (vopt->showDecorationSelected && (vopt->state & QStyle::State_Selected)) {
     5284                d->drawPanelItemViewSelected(painter, vopt);
     5285            } else {
     5286                if (vopt->backgroundBrush.style() != Qt::NoBrush) {
     5287                    QPointF oldBO = painter->brushOrigin();
     5288                    painter->setBrushOrigin(vopt->rect.topLeft());
     5289                    painter->fillRect(vopt->rect, vopt->backgroundBrush);
     5290                    painter->setBrushOrigin(oldBO);
     5291                }
     5292
     5293                if (vopt->state & QStyle::State_Selected) {
     5294                    QRect textRect = proxy()->subElementRect(QStyle::SE_ItemViewItemText,  option, widget);
     5295                    d->drawPanelItemViewSelected(painter, vopt, textRect);
     5296                }
     5297            }
     5298        }
     5299        break;
     5300#endif //QT_NO_ITEMVIEWS
    14095301
    14105302    case PE_FrameWindow: {
     
    14615353        break; }
    14625354    case PE_Frame:
    1463        if (d->doubleControls)
    1464             qDrawPlainRect(painter, option->rect, option->palette.shadow().color(),2,&option->palette.light());
    1465         else
    1466             qDrawPlainRect(painter, option->rect, option->palette.shadow().color(),1,&option->palette.light());
     5355        qDrawPlainRect(painter, option->rect, option->palette.shadow().color(),
     5356                       d->doubleControls ? 2 : 1, &option->palette.background());
    14675357        break;
    14685358    case PE_FrameLineEdit:
     
    15025392        if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton *>(option)) {
    15035393            QRect br = button->rect;
    1504             int dbi = pixelMetric(PM_ButtonDefaultIndicator, button, widget);
     5394            int dbi = proxy()->pixelMetric(PM_ButtonDefaultIndicator, button, widget);
    15055395
    15065396            if (button->features & QStyleOptionButton::AutoDefaultButton)
     
    15085398            QStyleOptionButton tmpBtn = *button;
    15095399            tmpBtn.rect = br;
    1510             drawPrimitive(PE_PanelButtonCommand, &tmpBtn, painter, widget);
     5400            proxy()->drawPrimitive(PE_PanelButtonCommand, &tmpBtn, painter, widget);
    15115401            if (button->features & QStyleOptionButton::HasMenu) {
    1512                 int mbi = pixelMetric(PM_MenuButtonIndicator, button, widget);
     5402                int mbi = proxy()->pixelMetric(PM_MenuButtonIndicator, button, widget);
    15135403                QRect ir = button->rect;
    15145404                QStyleOptionButton newButton = *button;
     
    15175407                else
    15185408                    newButton.rect = QRect(ir.right() - mbi, ir.height() - 20, mbi, ir.height() - 4);
    1519                 drawPrimitive(PE_IndicatorArrowDown, &newButton, painter, widget);
     5409                proxy()->drawPrimitive(PE_IndicatorArrowDown, &newButton, painter, widget);
    15205410            }
    15215411            if (button->features & QStyleOptionButton::DefaultButton)
    1522                 drawPrimitive(PE_FrameDefaultButton, option, painter, widget);
     5412                proxy()->drawPrimitive(PE_FrameDefaultButton, option, painter, widget);
    15235413        }
    15245414        break;
     
    15285418           bool isRadio = (element == CE_RadioButton);
    15295419           QStyleOptionButton subopt = *button;
    1530            subopt.rect = subElementRect(isRadio ? SE_RadioButtonIndicator
     5420           subopt.rect = proxy()->subElementRect(isRadio ? SE_RadioButtonIndicator
    15315421               : SE_CheckBoxIndicator, button, widget);
    1532            drawPrimitive(isRadio ? PE_IndicatorRadioButton : PE_IndicatorCheckBox,
     5422           proxy()->drawPrimitive(isRadio ? PE_IndicatorRadioButton : PE_IndicatorCheckBox,
    15335423               &subopt, painter, widget);
    1534            subopt.rect = subElementRect(isRadio ? SE_RadioButtonContents
     5424           subopt.rect = proxy()->subElementRect(isRadio ? SE_RadioButtonContents
    15355425               : SE_CheckBoxContents, button, widget);
    1536            drawControl(isRadio ? CE_RadioButtonLabel : CE_CheckBoxLabel, &subopt, painter, widget);
     5426           proxy()->drawControl(isRadio ? CE_RadioButtonLabel : CE_CheckBoxLabel, &subopt, painter, widget);
    15375427           if (button->state & State_HasFocus) {
    15385428               QStyleOptionFocusRect fropt;
    15395429               fropt.QStyleOption::operator=(*button);
    1540                fropt.rect = subElementRect(isRadio ? SE_RadioButtonFocusRect
     5430               fropt.rect = proxy()->subElementRect(isRadio ? SE_RadioButtonFocusRect
    15415431                   : SE_CheckBoxFocusRect, button, widget);
    1542                drawPrimitive(PE_FrameFocusRect, &fropt, painter, widget);
     5432               proxy()->drawPrimitive(PE_FrameFocusRect, &fropt, painter, widget);
    15435433           }
    15445434       }
     
    15545444           if (!button->icon.isNull()) {
    15555445               pix = button->icon.pixmap(button->iconSize, button->state & State_Enabled ? QIcon::Normal : QIcon::Disabled);
    1556                drawItemPixmap(painter, button->rect, alignment, pix);
     5446               proxy()->drawItemPixmap(painter, button->rect, alignment, pix);
    15575447               if (button->direction == Qt::RightToLeft)
    15585448                   textRect.setRight(textRect.right() - button->iconSize.width() - 4);
     
    15625452           if (!button->text.isEmpty()){
    15635453               if (button->state & State_Enabled)
    1564                    drawItemText(painter, textRect, alignment | Qt::TextShowMnemonic,
     5454                   proxy()->drawItemText(painter, textRect, alignment | Qt::TextShowMnemonic,
    15655455                   button->palette, false, button->text, QPalette::WindowText);
    15665456               else
    1567                    drawItemText(painter, textRect, alignment | Qt::TextShowMnemonic,
     5457                   proxy()->drawItemText(painter, textRect, alignment | Qt::TextShowMnemonic,
    15685458                   button->palette, false, button->text, QPalette::Mid);
    15695459           }
     
    15815471    case CE_TabBarTab:
    15825472        if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(option)) {
    1583             drawControl(CE_TabBarTabShape, tab, painter, widget);
    1584             drawControl(CE_TabBarTabLabel, tab, painter, widget);
     5473            proxy()->drawControl(CE_TabBarTabShape, tab, painter, widget);
     5474            proxy()->drawControl(CE_TabBarTabLabel, tab, painter, widget);
    15855475        }
    15865476        break;
    15875477    case CE_TabBarTabShape:
    15885478        if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(option)) {
     5479           
    15895480            if (tab->shape == QTabBar::RoundedNorth || tab->shape == QTabBar::RoundedEast ||
    15905481                tab->shape == QTabBar::RoundedSouth || tab->shape == QTabBar::RoundedWest) {
    1591 
    1592                     painter->save();
    1593                     painter->setPen(tab->palette.shadow().color());
    1594                     if (d->doubleControls) {
    1595                         QPen pen = painter->pen();
    1596                         pen.setWidth(2);
    1597                         pen.setCapStyle(Qt::FlatCap);
    1598                         painter->setPen(pen);
    1599                     }
    1600                     if(tab->shape == QTabBar::RoundedNorth) {
    1601                           if (tab->state & State_Selected) {
    1602                             painter->fillRect(tab->rect, tab->palette.light());
    1603                             painter->drawLine(tab->rect.topRight(), tab->rect.bottomRight());
    1604                         }
    1605                         else {
    1606                             painter->fillRect(tab->rect, tab->palette.button());
    1607                             painter->drawLine(tab->rect.bottomLeft() , tab->rect.bottomRight());
    1608                             painter->drawLine(tab->rect.topRight(), tab->rect.bottomRight());
    1609                         }
    1610                     }
    1611                     else if(tab->shape == QTabBar::RoundedSouth) {
    1612 
    1613                         if (tab->state & State_Selected) {
    1614                             painter->fillRect(tab->rect.adjusted(0,-2,0,0), tab->palette.light());
    1615                             painter->drawLine(tab->rect.topRight(), tab->rect.bottomRight());
    1616                         }
    1617                         else {
    1618                             painter->fillRect(tab->rect, tab->palette.button());
    1619                             if (d->doubleControls)
    1620                                 painter->drawLine(tab->rect.topLeft() + QPoint(0,1), tab->rect.topRight() + QPoint(0,1));
    1621                             else
    1622                                 painter->drawLine(tab->rect.topLeft(), tab->rect.topRight());
    1623                             painter->drawLine(tab->rect.topRight(), tab->rect.bottomRight());
    1624                         }
    1625                     }
    1626                     else if(tab->shape == QTabBar::RoundedEast) {
    1627                         if (tab->state & State_Selected) {
    1628                             painter->fillRect(tab->rect, tab->palette.light());
    1629                             painter->drawLine(tab->rect.topLeft(), tab->rect.topRight());
    1630                         }
    1631                         else {
    1632                             painter->fillRect(tab->rect, tab->palette.button());
    1633                             painter->drawLine(tab->rect.topLeft(), tab->rect.bottomLeft());
    1634                             painter->drawLine(tab->rect.topLeft(), tab->rect.topRight());
    1635                         }
    1636                     }
    1637                     else if(tab->shape == QTabBar::RoundedWest) {
    1638                         if (tab->state & State_Selected) {
    1639                             painter->fillRect(tab->rect, tab->palette.light());
    1640                             painter->drawLine(tab->rect.bottomLeft(), tab->rect.bottomRight());
    1641                         }
    1642                         else {
    1643                             painter->fillRect(tab->rect, tab->palette.button());
    1644                             painter->drawLine(tab->rect.topRight(), tab->rect.bottomRight());
    1645                             painter->drawLine(tab->rect.bottomLeft(), tab->rect.bottomRight());
    1646                         }
    1647                     }
    1648 
    1649                     painter->restore();
     5482                    d->drawTabBarTab(painter, tab);
    16505483            } else {
    16515484                QCommonStyle::drawControl(element, option, painter, widget);
     
    16785511            QRegion clipRegion = painter->clipRegion();
    16795512            painter->setClipRect(option->rect);
    1680             drawControl(CE_HeaderSection, header, painter, widget);
     5513            proxy()->drawControl(CE_HeaderSection, header, painter, widget);
    16815514            QStyleOptionHeader subopt = *header;
    1682             subopt.rect = subElementRect(SE_HeaderLabel, header, widget);
     5515            subopt.rect = proxy()->subElementRect(SE_HeaderLabel, header, widget);
    16835516            if (header->state & State_Sunken)
    16845517                subopt.palette.setColor(QPalette::ButtonText, header->palette.brightText().color());
    16855518            subopt.state |= QStyle::State_On;
    16865519            if (subopt.rect.isValid())
    1687                 drawControl(CE_HeaderLabel, &subopt, painter, widget);
     5520                proxy()->drawControl(CE_HeaderLabel, &subopt, painter, widget);
    16885521            if (header->sortIndicator != QStyleOptionHeader::None) {
    1689                 subopt.rect = subElementRect(SE_HeaderArrow, option, widget);
    1690                 drawPrimitive(PE_IndicatorHeaderArrow, &subopt, painter, widget);
     5522                subopt.rect = proxy()->subElementRect(SE_HeaderArrow, option, widget);
     5523                proxy()->drawPrimitive(PE_IndicatorHeaderArrow, &subopt, painter, widget);
    16915524            }
    16925525            painter->setClipRegion(clipRegion);
     
    17635596             }
    17645597#endif // QT_NO_SCROLLAREA
    1765             break; }
    1766 
     5598            break;
     5599        }
     5600#ifndef QT_NO_COMBOBOX
     5601    case CE_ComboBoxLabel:
     5602        // This is copied from qcommonstyle.cpp with the difference, that
     5603        // the editRect isn't adjusted when calling drawItemText.
     5604        if (const QStyleOptionComboBox *cb = qstyleoption_cast<const QStyleOptionComboBox *>(option)) {
     5605            QRect editRect = proxy()->subControlRect(CC_ComboBox, cb, SC_ComboBoxEditField, widget);
     5606            painter->save();
     5607            painter->setClipRect(editRect);
     5608            if (!cb->currentIcon.isNull()) {
     5609                QIcon::Mode mode = cb->state & State_Enabled ? QIcon::Normal
     5610                                                             : QIcon::Disabled;
     5611                QPixmap pixmap = cb->currentIcon.pixmap(cb->iconSize, mode);
     5612                QRect iconRect(editRect);
     5613                iconRect.setWidth(cb->iconSize.width() + 4);
     5614                iconRect = alignedRect(cb->direction,
     5615                                       Qt::AlignLeft | Qt::AlignVCenter,
     5616                                       iconRect.size(), editRect);
     5617                if (cb->editable)
     5618                    painter->fillRect(iconRect, option->palette.brush(QPalette::Base));
     5619                proxy()->drawItemPixmap(painter, iconRect, Qt::AlignCenter, pixmap);
     5620
     5621                if (cb->direction == Qt::RightToLeft)
     5622                    editRect.translate(-4 - cb->iconSize.width(), 0);
     5623                else
     5624                    editRect.translate(cb->iconSize.width() + 4, 0);
     5625            }
     5626            if (!cb->currentText.isEmpty() && !cb->editable) {
     5627                proxy()->drawItemText(painter, editRect,
     5628                             visualAlignment(cb->direction, Qt::AlignLeft | Qt::AlignVCenter),
     5629                             cb->palette, cb->state & State_Enabled, cb->currentText);
     5630            }
     5631            painter->restore();
     5632        }
     5633        break;
     5634#endif // QT_NO_COMBOBOX
    17675635#ifndef QT_NO_DOCKWIDGET
    17685636    case CE_DockWidgetTitle:
     
    18335701                QPalette palette = dwOpt->palette;
    18345702                palette.setColor(QPalette::Window, inactiveCaptionTextColor);
    1835                 QRect titleRect = subElementRect(SE_DockWidgetTitleBarText, option, widget);
     5703                QRect titleRect = proxy()->subElementRect(SE_DockWidgetTitleBarText, option, widget);
    18365704                if (verticalTitleBar) {
    18375705                    titleRect = QRect(r.left() + rect.bottom()
     
    18405708                                    titleRect.height(), titleRect.width());
    18415709                }
    1842                 drawItemText(painter, titleRect,
     5710                proxy()->drawItemText(painter, titleRect,
    18435711                            Qt::AlignLeft | Qt::AlignVCenter | Qt::TextShowMnemonic, palette,
    18445712                            dwOpt->state & State_Enabled, dwOpt->title,
     
    18905758
    18915759                if ((button->state & (State_On | State_Sunken)) && button->direction == Qt::RightToLeft)
    1892                     point.rx() -= pixelMetric(PM_ButtonShiftHorizontal, option, widget) * 2;
     5760                    point.rx() -= proxy()->pixelMetric(PM_ButtonShiftHorizontal, option, widget) * 2;
    18935761
    18945762                painter->drawPixmap(visualPos(button->direction, button->rect, point), pixmap);
     
    19065774            }
    19075775            if (button->state & State_Enabled)
    1908                 drawItemText(painter, ir, tf, button->palette, true, button->text, colorRole);
     5776                proxy()->drawItemText(painter, ir, tf, button->palette, true, button->text, colorRole);
    19095777            else
    1910             drawItemText(painter, ir, tf, button->palette, true, button->text, QPalette::Mid);
     5778            proxy()->drawItemText(painter, ir, tf, button->palette, true, button->text, QPalette::Mid);
    19115779            painter->restore();
    19125780        }
     
    19285796    case CC_Slider:
    19295797        if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider *>(option)) {
    1930             int thickness  = pixelMetric(PM_SliderControlThickness, slider, widget);
    1931             int len        = pixelMetric(PM_SliderLength, slider, widget);
     5798            int thickness  = proxy()->pixelMetric(PM_SliderControlThickness, slider, widget);
     5799            int len        = proxy()->pixelMetric(PM_SliderLength, slider, widget);
    19325800            int ticks = slider->tickPosition;
    1933             QRect groove = subControlRect(CC_Slider, slider, SC_SliderGroove, widget);
    1934             QRect handle = subControlRect(CC_Slider, slider, SC_SliderHandle, widget);
     5801            QRect groove = proxy()->subControlRect(CC_Slider, slider, SC_SliderGroove, widget);
     5802            QRect handle = proxy()->subControlRect(CC_Slider, slider, SC_SliderHandle, widget);
    19355803
    19365804            if ((slider->subControls & SC_SliderGroove) && groove.isValid()) {
     
    19835851                    QStyleOptionFocusRect fropt;
    19845852                    fropt.QStyleOption::operator=(*slider);
    1985                     fropt.rect = subElementRect(SE_SliderFocusRect, slider, widget);
    1986                     drawPrimitive(PE_FrameFocusRect, &fropt, painter, widget);
     5853                    fropt.rect = proxy()->subElementRect(SE_SliderFocusRect, slider, widget);
     5854                    proxy()->drawPrimitive(PE_FrameFocusRect, &fropt, painter, widget);
    19875855                }
    19885856                if ((tickAbove && tickBelow) || (!tickAbove && !tickBelow)) {
     
    21195987        }
    21205988        if (const QStyleOptionSlider *scrollbar = qstyleoption_cast<const QStyleOptionSlider *>(option)) {
     5989            d->drawScrollbarGroove(painter, scrollbar);
    21215990            // Make a copy here and reset it for each primitive.
    2122             QBrush fill;
    2123             if (d->smartphone) {
    2124                 fill = option->palette.light();
    2125                 painter->fillRect(option->rect,fill);
    2126                 fill = option->palette.button();
    2127                 QImage image;
    2128 #ifndef QT_NO_IMAGEFORMAT_XPM
    2129                 if (scrollbar->orientation == Qt::Horizontal)
    2130                   image = QImage(vertlines_xpm);
    2131                 else
    2132                   image = QImage(horlines_xpm);
    2133 #endif
    2134                 image.setColor(1, option->palette.button().color().rgb());
    2135                 fill.setTextureImage(image);
    2136             }
    2137             else {
    2138               fill = option->palette.light();
    2139             }
    2140             painter->fillRect(option->rect,fill);
    21415991            QStyleOptionSlider newScrollbar = *scrollbar;
    21425992            State saveFlags = scrollbar->state;
     
    21606010                if (scrollbar->subControls & SC_ScrollBarSubLine) {
    21616011                    newScrollbar.state = saveFlags;
    2162                     newScrollbar.rect = subControlRect(control, &newScrollbar, SC_ScrollBarSubLine, widget);
     6012                    newScrollbar.rect = proxy()->subControlRect(control, &newScrollbar, SC_ScrollBarSubLine, widget);
    21636013                    if (newScrollbar.rect.isValid()) {
    21646014                        if (!(scrollbar->activeSubControls & SC_ScrollBarSubLine))
    21656015                            newScrollbar.state &= ~(State_Sunken | State_MouseOver);
    2166                         QStyleOption arrowOpt = newScrollbar;
    2167                         if (d->doubleControls)
    2168                             arrowOpt.rect = newScrollbar.rect.adjusted(4, 6, -5, -3);
    2169                         else
    2170                             arrowOpt.rect = newScrollbar.rect.adjusted(5, 6, -4, -3);
    2171                         QBrush fill = option->palette.button();
    2172                         if (newScrollbar.state & State_Sunken)
    2173                             fill = option->palette.shadow();
    2174                         if (scrollbar->orientation == Qt::Horizontal) {
    2175                             painter->fillRect(newScrollbar.rect,fill);
    2176                             QRect r = newScrollbar.rect.adjusted(0,0,1,0);
    2177                             painter->drawLine(r.topRight(), r.bottomRight());
    2178                             if (d->doubleControls)
    2179                                arrowOpt.rect.adjust(0, -2 ,0, -2);
    2180                             drawPrimitive(PE_IndicatorArrowLeft, &arrowOpt, painter, widget);
    2181                         }
    2182                         else {
    2183                             painter->fillRect(newScrollbar.rect,fill);
    2184                             QRect r = newScrollbar.rect.adjusted(0, 0, 0, 1);
    2185                             painter->drawLine(r.bottomLeft(), r.bottomRight());
    2186                             if (drawCompleteFrame)
    2187                                 arrowOpt.rect.adjust(-2, 0, -2, 0);
    2188                             if (d->doubleControls)
    2189                                arrowOpt.rect.adjust(0, -4 , 0, -4);
    2190                             if (drawCompleteFrame && d->doubleControls)
    2191                                 arrowOpt.rect.adjust(2, 0, 2, 0);
    2192                             drawPrimitive(PE_IndicatorArrowUp, &arrowOpt, painter, widget);
    2193                         }
     6016                        d->drawScrollbarHandleUp(painter, &newScrollbar, drawCompleteFrame, secondScrollBar);
    21946017                    }
    21956018                }
     
    21976020                    newScrollbar.rect = scrollbar->rect;
    21986021                    newScrollbar.state = saveFlags;
    2199                     newScrollbar.rect = subControlRect(control, &newScrollbar, SC_ScrollBarAddLine, widget);
     6022                    newScrollbar.rect = proxy()->subControlRect(control, &newScrollbar, SC_ScrollBarAddLine, widget);
    22006023                    if (newScrollbar.rect.isValid()) {
    22016024                        if (!(scrollbar->activeSubControls & SC_ScrollBarAddLine))
    22026025                            newScrollbar.state &= ~(State_Sunken | State_MouseOver);
    2203                         QStyleOption arrowOpt = newScrollbar;
    2204                         if (d->doubleControls)
    2205                             arrowOpt.rect = newScrollbar.rect.adjusted(4, 0, -5, 3);
    2206                         else
    2207                             arrowOpt.rect = newScrollbar.rect.adjusted(5, 6, -4, -3);
    2208                         QBrush fill = option->palette.button();
    2209                         if (newScrollbar.state & State_Sunken)
    2210                             fill = option->palette.shadow();
    2211                         if (scrollbar->orientation == Qt::Horizontal) {
    2212                             painter->fillRect(newScrollbar.rect,fill);
    2213                             QRect r = newScrollbar.rect.adjusted(0, 0, 0, 0);
    2214                             painter->drawLine(r.topLeft(), r.bottomLeft());
    2215                             if (secondScrollBar)
    2216                                 painter->drawLine(r.topRight(), r.bottomRight());
    2217                              if (d->doubleControls)
    2218                                arrowOpt.rect.adjust(0, 4, 0, 4 );
    2219                             drawPrimitive(PE_IndicatorArrowRight, &arrowOpt, painter, widget);
    2220                         }
    2221                         else {
    2222                             painter->fillRect(newScrollbar.rect,fill);
    2223                             QRect r = newScrollbar.rect.adjusted(0, -1, 0, -1);
    2224                             painter->drawLine(r.topLeft(), r.topRight());
    2225                             if (secondScrollBar)
    2226                                 painter->drawLine(r.bottomLeft() + QPoint(0,1), r.bottomRight() + QPoint(0, 1));
    2227                             if (drawCompleteFrame)
    2228                                 arrowOpt.rect.adjust(-2, 0, -2, 0);
    2229                             if (d->doubleControls)
    2230                               arrowOpt.rect.adjust(1, 0, 1, 0 );
    2231                             if (drawCompleteFrame && d->doubleControls)
    2232                                 arrowOpt.rect.adjust(1, 0, 1, 0);
    2233                             drawPrimitive(PE_IndicatorArrowDown, &arrowOpt, painter, widget);
    2234                         }
    2235                     }
    2236                 }
    2237                 if (scrollbar->subControls & SC_ScrollBarSubPage) {
    2238                     newScrollbar.rect = scrollbar->rect;
    2239                     newScrollbar.state = saveFlags;
    2240                     newScrollbar.rect = subControlRect(control, &newScrollbar, SC_ScrollBarSubPage, widget);
    2241                     if (newScrollbar.rect.isValid()) {
    2242                         if (!(scrollbar->activeSubControls & SC_ScrollBarSubPage))
    2243                             newScrollbar.state &= ~(State_Sunken | State_MouseOver);
    2244                         if (scrollbar->orientation == Qt::Horizontal) {
    2245                             QRect r = newScrollbar.rect.adjusted(0, 0, 0, 0);
    2246                         }
    2247                         else{
    2248                             QRect r = newScrollbar.rect.adjusted(0, 0, 0, 0);
    2249                         }
    2250                     }
    2251                 }
    2252                 if (scrollbar->subControls & SC_ScrollBarAddPage) {
    2253                     newScrollbar.rect = scrollbar->rect;
    2254                     newScrollbar.state = saveFlags;
    2255                     newScrollbar.rect = subControlRect(control, &newScrollbar, SC_ScrollBarAddPage, widget);
    2256                     if (newScrollbar.rect.isValid()) {
    2257                         if (!(scrollbar->activeSubControls & SC_ScrollBarAddPage))
    2258                             newScrollbar.state &= ~(State_Sunken | State_MouseOver);
    2259                         if (scrollbar->orientation == Qt::Horizontal) {
    2260                             QRect r = newScrollbar.rect.adjusted(0, 0, 0, -1);
    2261                         }
    2262                         else {
    2263                             QRect r = newScrollbar.rect.adjusted(0, 0,- 1, 0);
    2264                         }
    2265                     }
    2266                 }
    2267                 if (scrollbar->subControls & SC_ScrollBarFirst) {
    2268                     newScrollbar.rect = scrollbar->rect;
    2269                     newScrollbar.state = saveFlags;
    2270                     newScrollbar.rect = subControlRect(control, &newScrollbar, SC_ScrollBarFirst, widget);
    2271                     if (newScrollbar.rect.isValid()) {
    2272                         if (!(scrollbar->activeSubControls & SC_ScrollBarFirst))
    2273                             newScrollbar.state &= ~(State_Sunken | State_MouseOver);
    2274                         QRect r = newScrollbar.rect;
    2275                     }
    2276                 }
    2277                 if (scrollbar->subControls & SC_ScrollBarLast) {
    2278                     newScrollbar.rect = scrollbar->rect;
    2279                     newScrollbar.state = saveFlags;
    2280                     newScrollbar.rect = subControlRect(control, &newScrollbar, SC_ScrollBarLast, widget);
    2281                     if (newScrollbar.rect.isValid()) {
    2282                         if (!(scrollbar->activeSubControls & SC_ScrollBarLast))
    2283                             newScrollbar.state &= ~(State_Sunken | State_MouseOver);
    2284                         QRect r = newScrollbar.rect;
     6026                        d->drawScrollbarHandleDown(painter, &newScrollbar, drawCompleteFrame, secondScrollBar);
    22856027                    }
    22866028                }
    22876029                if (scrollbar->subControls & SC_ScrollBarSlider) {
    2288                     newScrollbar.rect = scrollbar->rect;
    2289                     newScrollbar.state = saveFlags;
    2290                     newScrollbar.rect = subControlRect(control, &newScrollbar, SC_ScrollBarSlider, widget);
    2291                     if (newScrollbar.rect.isValid()) {
    2292                         if (!(scrollbar->activeSubControls & SC_ScrollBarSlider))
    2293                             newScrollbar.state &= ~(State_Sunken | State_MouseOver);
    2294                         if (scrollbar->orientation == Qt::Horizontal) {
    2295                             painter->fillRect(newScrollbar.rect,option->palette.button());
    2296                             QRect r = newScrollbar.rect;
    2297                             painter->drawLine(r.topLeft(), r.bottomLeft());
    2298                             painter->drawLine(r.topRight(), r.bottomRight());
    2299                             if (d->smartphone) {
    2300                                 painter->drawLine(r.topLeft(), r.topRight());
    2301                                 painter->drawLine(r.bottomLeft(), r.bottomRight());
    2302                             }
    2303                         }
    2304                         else {
    2305                             painter->fillRect(newScrollbar.rect,option->palette.button());
    2306                             QRect r = newScrollbar.rect;
    2307                             painter->drawLine(r.topLeft(), r.topRight());
    2308                             painter->drawLine(r.bottomLeft(), r.bottomRight());
    2309                             if (d->smartphone) {
    2310                                 painter->drawLine(r.topLeft(), r.bottomLeft());
    2311                                 painter->drawLine(r.topRight(), r.bottomRight());
    2312                             }
    2313                         }
    2314                         if (scrollbar->state & State_HasFocus) {
    2315                             QStyleOptionFocusRect fropt;
    2316                             fropt.QStyleOption::operator=(newScrollbar);
    2317                             fropt.rect.setRect(newScrollbar.rect.x() + 2, newScrollbar.rect.y() + 2,
    2318                                 newScrollbar.rect.width() - 5,
    2319                                 newScrollbar.rect.height() - 5);
    2320                         }
    2321                     }
     6030
     6031                      newScrollbar.rect = scrollbar->rect;
     6032                      newScrollbar.state = saveFlags;
     6033                      newScrollbar.rect = proxy()->subControlRect(control, &newScrollbar, SC_ScrollBarSlider, widget);
     6034
     6035                      if (newScrollbar.rect.isValid()) {
     6036                          if (!(scrollbar->activeSubControls & SC_ScrollBarSlider))
     6037                              newScrollbar.state &= ~(State_Sunken | State_MouseOver);
     6038                          d->drawScrollbarGrip(painter, &newScrollbar, option, drawCompleteFrame);
     6039                      }
    23226040                }
    2323                 int gripMargin = d->doubleControls ? 4 : 2;
    2324                 int doubleLines = d->doubleControls ? 2 : 1;
    2325                 //If there is a frame around the scrollbar (abstractScrollArea),
    2326                 //then the margin is different, because of the missing frame
    2327                 int gripMarginFrame = d->doubleControls ? 3 : 1;
    2328                 if (drawCompleteFrame)
    2329                     gripMarginFrame = 0;
    2330                 //draw grips
    2331                 if (!d->smartphone)
    2332                     if (scrollbar->orientation == Qt::Horizontal) {
    2333                         for (int i = -3; i < 3; i += 2) {
    2334                             painter->drawLine(
    2335                                 QPoint(newScrollbar.rect.center().x() + i * doubleLines + 1,
    2336                                 newScrollbar.rect.top() + gripMargin +gripMarginFrame),
    2337                                 QPoint(newScrollbar.rect.center().x() + i * doubleLines + 1,
    2338                                 newScrollbar.rect.bottom() - gripMargin));
    2339                         }
    2340                     } else {
    2341                         for (int i = -2; i < 4 ; i += 2) {
    2342                             painter->drawLine(
    2343                                 QPoint(newScrollbar.rect.left() + gripMargin + gripMarginFrame ,
    2344                                 newScrollbar.rect.center().y() + 1 + i * doubleLines - 1),
    2345                                 QPoint(newScrollbar.rect.right() - gripMargin,
    2346                                 newScrollbar.rect.center().y() + 1 + i * doubleLines - 1));
    2347                         }
    2348                 }
    2349                 if (!d->smartphone) {
    2350                     QRect r;
    2351                     if (d->doubleControls)
    2352                         r = option->rect.adjusted(1, 1, -1, 0);
    2353                     else
    2354                         r = option->rect.adjusted(0, 0, -1, 0);
    2355                     if (drawCompleteFrame && d->doubleControls)
    2356                         r.adjust(0, 0, 0, -1);
    2357                     //Check if the scrollbar is part of an abstractItemView and draw the frame according
    2358                     if (drawCompleteFrame)
    2359                         painter->drawRect(r);
    2360                     else
    2361                         if (scrollbar->orientation == Qt::Horizontal)
    2362                             painter->drawLine(r.topLeft(), r.topRight());
    2363                         else
    2364                             painter->drawLine(r.topLeft(), r.bottomLeft());
    2365                 }
    23666041        }
    23676042        painter->restore();
    23686043        break;
    2369 #endif // QT_NO_SLIDER
     6044#endif // QT_NO_SCROLLBAR
    23706045    case CC_ToolButton:
    23716046        if (const QStyleOptionToolButton *toolbutton
     
    23796054#endif //QT_NO_TABWIDGET
    23806055
    2381             button = subControlRect(control, toolbutton, SC_ToolButton, widget);
    2382             menuarea = subControlRect(control, toolbutton, SC_ToolButtonMenu, widget);
     6056            button = proxy()->subControlRect(control, toolbutton, SC_ToolButton, widget);
     6057            menuarea = proxy()->subControlRect(control, toolbutton, SC_ToolButtonMenu, widget);
    23836058            State buttonFlags = toolbutton->state;
    23846059            if (buttonFlags & State_AutoRaise) {
     
    23976072                    tool.rect = button;
    23986073                    tool.state = buttonFlags;
    2399                     drawPrimitive(PE_PanelButtonTool, &tool, painter, widget);
     6074                    proxy()->drawPrimitive(PE_PanelButtonTool, &tool, painter, widget);
    24006075            }
    24016076            if (toolbutton->subControls & SC_ToolButtonMenu) {
     
    24066081                toolMenu.state = menuFlags;
    24076082                if (buttonFlags & State_Sunken)
    2408                   drawPrimitive(PE_PanelButtonTool, &toolMenu, painter, widget);
     6083                  proxy()->drawPrimitive(PE_PanelButtonTool, &toolMenu, painter, widget);
    24096084                QStyleOption arrowOpt(0);
    24106085                arrowOpt.rect = tool.rect;
     
    24186093                }
    24196094                arrowOpt.state = flags;
    2420                 drawPrimitive(PE_IndicatorArrowDown, &arrowOpt, painter, widget);
     6095                proxy()->drawPrimitive(PE_IndicatorArrowDown, &arrowOpt, painter, widget);
    24216096            }
    24226097            if (toolbutton->state & State_HasFocus) {
     
    24256100                focusRect.rect.adjust(3, 3, -3, -3);
    24266101                if (toolbutton->features & QStyleOptionToolButton::Menu)
    2427                     focusRect.rect.adjust(0, 0, -pixelMetric(QStyle::PM_MenuButtonIndicator,
     6102                    focusRect.rect.adjust(0, 0, -proxy()->pixelMetric(QStyle::PM_MenuButtonIndicator,
    24286103                                                         toolbutton, widget), 0);
    2429                 drawPrimitive(PE_FrameFocusRect, &focusRect, painter, widget);
     6104                proxy()->drawPrimitive(PE_FrameFocusRect, &focusRect, painter, widget);
    24306105            }
    24316106            QStyleOptionToolButton label = *toolbutton;
     
    24346109            else
    24356110              label.state = toolbutton->state & State_Enabled;
    2436             int fw = pixelMetric(PM_DefaultFrameWidth, option, widget);
     6111            int fw = proxy()->pixelMetric(PM_DefaultFrameWidth, option, widget);
    24376112            label.rect = button.adjusted(fw, fw, -fw, -fw);
    2438             drawControl(CE_ToolButtonLabel, &label, painter, widget);
     6113            proxy()->drawControl(CE_ToolButtonLabel, &label, painter, widget);
    24396114        }
    24406115        break;
     
    24506125            QStyleOptionGroupBox groupBoxFont = *groupBox;
    24516126            groupBoxFont.fontMetrics = QFontMetrics(font);
    2452             QRect textRect = subControlRect(CC_GroupBox, &groupBoxFont, SC_GroupBoxLabel, widget);
    2453             QRect checkBoxRect = subControlRect(CC_GroupBox, option, SC_GroupBoxCheckBox, widget).adjusted(0,0,0,0);
     6127            QRect textRect = proxy()->subControlRect(CC_GroupBox, &groupBoxFont, SC_GroupBoxLabel, widget);
     6128            QRect checkBoxRect = proxy()->subControlRect(CC_GroupBox, option, SC_GroupBoxCheckBox, widget).adjusted(0,0,0,0);
    24546129            if (groupBox->subControls & QStyle::SC_GroupBoxFrame) {
    24556130                QStyleOptionFrameV2 frame;
     
    24586133                frame.lineWidth = groupBox->lineWidth;
    24596134                frame.midLineWidth = groupBox->midLineWidth;
    2460                 frame.rect = subControlRect(CC_GroupBox, option, SC_GroupBoxFrame, widget);
     6135                frame.rect = proxy()->subControlRect(CC_GroupBox, option, SC_GroupBoxFrame, widget);
    24616136                painter->save();
    24626137                QRegion region(groupBox->rect);
     
    24686143                    region -= finalRect;
    24696144                }
    2470                 drawPrimitive(PE_FrameGroupBox, &frame, painter, widget);
     6145                proxy()->drawPrimitive(PE_FrameGroupBox, &frame, painter, widget);
    24716146                painter->restore();
    24726147            }
     
    24766151                box.QStyleOption::operator=(*groupBox);
    24776152                box.rect = checkBoxRect;
    2478                 drawPrimitive(PE_IndicatorCheckBox, &box, painter, widget);
     6153                proxy()->drawPrimitive(PE_IndicatorCheckBox, &box, painter, widget);
    24796154            }
    24806155            // Draw title
     
    24926167
    24936168                if (groupBox->state & State_Enabled)
    2494                     drawItemText(painter, textRect,  Qt::TextShowMnemonic | Qt::AlignHCenter | alignment,
     6169                    proxy()->drawItemText(painter, textRect,  Qt::TextShowMnemonic | Qt::AlignHCenter | alignment,
    24956170                    groupBox->palette, true, groupBox->text,
    24966171                    textColor.isValid() ? QPalette::NoRole : QPalette::Link);
    24976172                else
    2498                     drawItemText(painter, textRect,  Qt::TextShowMnemonic | Qt::AlignHCenter | alignment,
     6173                    proxy()->drawItemText(painter, textRect,  Qt::TextShowMnemonic | Qt::AlignHCenter | alignment,
    24996174                    groupBox->palette, true, groupBox->text, QPalette::Mid);
    25006175                if (groupBox->state & State_HasFocus) {
     
    25026177                    fropt.QStyleOption::operator=(*groupBox);
    25036178                    fropt.rect = textRect;
    2504                     drawPrimitive(PE_FrameFocusRect, &fropt, painter, widget);
     6179                    proxy()->drawPrimitive(PE_FrameFocusRect, &fropt, painter, widget);
    25056180                }
    25066181            }
     
    25156190            QBrush editBrush = cmb->palette.brush(QPalette::Base);
    25166191            if ((cmb->subControls & SC_ComboBoxFrame) && cmb->frame)
    2517                 qDrawPlainRect(painter, option->rect, option->palette.shadow().color(), pixelMetric(PM_ComboBoxFrameWidth, option, widget), &editBrush);
     6192                qDrawPlainRect(painter, option->rect, option->palette.shadow().color(), proxy()->pixelMetric(PM_ComboBoxFrameWidth, option, widget), &editBrush);
    25186193            else
    25196194                painter->fillRect(option->rect, editBrush);
    2520                 State flags = State_None;
    2521                 QRect ar = subControlRect(CC_ComboBox, cmb, SC_ComboBoxArrow, widget);
    2522                 if ((option->state & State_On)) {
    2523                   painter->fillRect(ar.adjusted(0, 0, 1, 1),cmb->palette.brush(QPalette::Shadow));
    2524                 }
    2525                 if (d->doubleControls)
    2526                   ar.adjust(5, 0, 5, 0);
    2527                 else
    2528                   ar.adjust(2, 0, -2, 0);
    2529                 if (option->state & State_Enabled)
    2530                     flags |= State_Enabled;
    2531                 if (option->state & State_On)
    2532                     flags |= State_Sunken;
    2533                 QStyleOption arrowOpt(0);
    2534                 arrowOpt.rect = ar;
    2535                 arrowOpt.palette = cmb->palette;
    2536                 arrowOpt.state = flags;
    2537                 drawPrimitive(PrimitiveElement(PE_IndicatorArrowDownBig), &arrowOpt, painter, widget);
     6195            State flags = State_None;
     6196            QRect ar = proxy()->subControlRect(CC_ComboBox, cmb, SC_ComboBoxArrow, widget);
     6197            if ((option->state & State_On)) {
     6198                painter->fillRect(ar.adjusted(0, 0, 1, 1),cmb->palette.brush(QPalette::Shadow));
     6199            }
     6200            if (d->doubleControls)
     6201                ar.adjust(5, 0, 5, 0);
     6202            else
     6203                ar.adjust(2, 0, -2, 0);
     6204            if (option->state & State_Enabled)
     6205                flags |= State_Enabled;
     6206            if (option->state & State_On)
     6207                flags |= State_Sunken;
     6208            QStyleOption arrowOpt(0);
     6209            arrowOpt.rect = ar;
     6210            arrowOpt.palette = cmb->palette;
     6211            arrowOpt.state = flags;
     6212            proxy()->drawPrimitive(PrimitiveElement(PE_IndicatorArrowDownBig), &arrowOpt, painter, widget);
    25386213            if (cmb->subControls & SC_ComboBoxEditField) {
    2539                 QRect re = subControlRect(CC_ComboBox, cmb, SC_ComboBoxEditField, widget);
     6214                QRect re = proxy()->subControlRect(CC_ComboBox, cmb, SC_ComboBoxEditField, widget);
    25406215                if (cmb->state & State_HasFocus && !cmb->editable)
    25416216                    painter->fillRect(re.x(), re.y(), re.width(), re.height(),
     
    25516226                    QStyleOptionFocusRect focus;
    25526227                    focus.QStyleOption::operator=(*cmb);
    2553                     focus.rect = subElementRect(SE_ComboBoxFocusRect, cmb, widget);
     6228                    focus.rect = proxy()->subElementRect(SE_ComboBoxFocusRect, cmb, widget);
    25546229                    focus.state |= State_FocusAtBorder;
    25556230                    focus.backgroundColor = cmb->palette.highlight().color();
    25566231                    if ((option->state & State_On))
    2557                       drawPrimitive(PE_FrameFocusRect, &focus, painter, widget);
     6232                      proxy()->drawPrimitive(PE_FrameFocusRect, &focus, painter, widget);
    25586233               }
    25596234            }
     
    25716246
    25726247            if (spinBox->frame && (spinBox->subControls & SC_SpinBoxFrame)) {
    2573                 QRect r = subControlRect(CC_SpinBox, spinBox, SC_SpinBoxFrame, widget);
    2574                 qDrawPlainRect(painter, r, option->palette.shadow().color(),pixelMetric(PM_SpinBoxFrameWidth, option, widget),0);
     6248                QRect r = proxy()->subControlRect(CC_SpinBox, spinBox, SC_SpinBoxFrame, widget);
     6249                qDrawPlainRect(painter, r, option->palette.shadow().color(), proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget),0);
    25756250            }
    25766251            QPalette shadePal(option->palette);
     
    25946269                primitiveElement = (spinBox->buttonSymbols == QAbstractSpinBox::PlusMinus ? PE_IndicatorArrowUpBig
    25956270                    : PE_IndicatorArrowUpBig);
    2596                 copy.rect = subControlRect(CC_SpinBox, spinBox, SC_SpinBoxUp, widget);
     6271                copy.rect = proxy()->subControlRect(CC_SpinBox, spinBox, SC_SpinBoxUp, widget);
    25976272                if (copy.state & (State_Sunken | State_On))
    2598                     qDrawPlainRect(painter, copy.rect, option->palette.shadow().color(),pixelMetric(PM_SpinBoxFrameWidth, option, widget), &copy.palette.brush(QPalette::Shadow));
     6273                    qDrawPlainRect(painter, copy.rect, option->palette.shadow().color(), proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget), &copy.palette.brush(QPalette::Shadow));
    25996274                else
    2600                   qDrawPlainRect(painter, copy.rect, option->palette.shadow().color(),pixelMetric(PM_SpinBoxFrameWidth, option, widget), &copy.palette.brush(QPalette::Base));
    2601                 copy.rect.adjust(pixelMetric(PM_SpinBoxFrameWidth, option, widget), 0, -pixelMetric(PM_SpinBoxFrameWidth, option, widget), 0);
    2602                 drawPrimitive(PrimitiveElement(primitiveElement), &copy, painter, widget);
     6275                  qDrawPlainRect(painter, copy.rect, option->palette.shadow().color(), proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget), &copy.palette.brush(QPalette::Base));
     6276                copy.rect.adjust(proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget), 0, -pixelMetric(PM_SpinBoxFrameWidth, option, widget), 0);
     6277                proxy()->drawPrimitive(PrimitiveElement(primitiveElement), &copy, painter, widget);
    26036278            }
    26046279            if (spinBox->subControls & SC_SpinBoxDown) {
     
    26206295                primitiveElement = (spinBox->buttonSymbols == QAbstractSpinBox::PlusMinus ? PE_IndicatorArrowDownBig
    26216296                                                                       : PE_IndicatorArrowDownBig);
    2622                 copy.rect = subControlRect(CC_SpinBox, spinBox, SC_SpinBoxDown, widget);
    2623                 qDrawPlainRect(painter, copy.rect, option->palette.shadow().color(),pixelMetric(PM_SpinBoxFrameWidth, option, widget), &copy.palette.brush(QPalette::Base));
     6297                copy.rect = proxy()->subControlRect(CC_SpinBox, spinBox, SC_SpinBoxDown, widget);
     6298                qDrawPlainRect(painter, copy.rect, option->palette.shadow().color(), proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget), &copy.palette.brush(QPalette::Base));
    26246299                if (copy.state & (State_Sunken | State_On))
    2625                     qDrawPlainRect(painter, copy.rect, option->palette.shadow().color(),pixelMetric(PM_SpinBoxFrameWidth, option, widget), &copy.palette.brush(QPalette::Shadow));
     6300                    qDrawPlainRect(painter, copy.rect, option->palette.shadow().color(), proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget), &copy.palette.brush(QPalette::Shadow));
    26266301                else
    2627                     qDrawPlainRect(painter, copy.rect, option->palette.shadow().color(),pixelMetric(PM_SpinBoxFrameWidth, option, widget), &copy.palette.brush(QPalette::Base));
     6302                    qDrawPlainRect(painter, copy.rect, option->palette.shadow().color(), proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget), &copy.palette.brush(QPalette::Base));
    26286303                copy.rect.adjust(3, 0, -4, 0);
    26296304                if (primitiveElement == PE_IndicatorArrowUp || primitiveElement == PE_IndicatorArrowDown) {
    2630                     int frameWidth = pixelMetric(PM_SpinBoxFrameWidth, option, widget);
     6305                    int frameWidth = proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget);
    26316306                    copy.rect = copy.rect.adjusted(frameWidth, frameWidth, -frameWidth, -frameWidth);
    2632                     drawPrimitive(PrimitiveElement(primitiveElement), &copy, painter, widget);
     6307                    proxy()->drawPrimitive(PrimitiveElement(primitiveElement), &copy, painter, widget);
    26336308                }
    26346309                else {
    2635                     drawPrimitive(PrimitiveElement(primitiveElement), &copy, painter, widget);
     6310                    proxy()->drawPrimitive(PrimitiveElement(primitiveElement), &copy, painter, widget);
    26366311                }
    26376312                if (spinBox->frame && (spinBox->subControls & SC_SpinBoxFrame)) {
    2638                     QRect r = subControlRect(CC_SpinBox, spinBox, SC_SpinBoxEditField, widget);
     6313                    QRect r = proxy()->subControlRect(CC_SpinBox, spinBox, SC_SpinBoxEditField, widget);
    26396314                }
    26406315            }
     
    26566331    case CT_PushButton:
    26576332       if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton *>(option)) {
    2658             newSize = QWindowsStyle::sizeFromContents(type, option, size, widget);
     6333            newSize = QCommonStyle::sizeFromContents(type, option, size, widget);
    26596334            int w = newSize.width(),
    26606335                h = newSize.height();
    26616336            int defwidth = 0;
    26626337            if (button->features & QStyleOptionButton::AutoDefaultButton)
    2663                 defwidth = 2 * pixelMetric(PM_ButtonDefaultIndicator, button, widget);
    2664             if (w < 75 + defwidth && button->icon.isNull())
    2665                 w = 75 + defwidth;
    2666             if (h < 23 + defwidth)
    2667                 h = 23 + defwidth;
     6338                defwidth = 2 * proxy()->pixelMetric(PM_ButtonDefaultIndicator, button, widget);
     6339
     6340            int minwidth = int(QStyleHelper::dpiScaled(55.0f));
     6341            int minheight = int(QStyleHelper::dpiScaled(19.0f));
     6342
     6343            if (w < minwidth + defwidth && button->icon.isNull())
     6344                w = minwidth + defwidth;
     6345            if (h < minheight + defwidth)
     6346                h = minheight + defwidth;
    26686347            newSize = QSize(w + 4, h + 4);
    26696348        }
     
    26846363            bool isRadio = (type == CT_RadioButton);
    26856364            QRect irect = visualRect(button->direction, button->rect,
    2686                                      subElementRect(isRadio ? SE_RadioButtonIndicator
     6365                                     proxy()->subElementRect(isRadio ? SE_RadioButtonIndicator
    26876366                                                            : SE_CheckBoxIndicator, button, widget));
    2688             int h = pixelMetric(isRadio ? PM_ExclusiveIndicatorHeight
     6367            int h = proxy()->pixelMetric(isRadio ? PM_ExclusiveIndicatorHeight
    26896368                                        : PM_IndicatorHeight, button, widget);
    26906369            int margins = (!button->icon.isNull() && button->text.isEmpty()) ? 0 : 10;
     
    26986377    case CT_ComboBox:
    26996378        if (const QStyleOptionComboBox *comboBox = qstyleoption_cast<const QStyleOptionComboBox *>(option)) {
    2700             int fw = comboBox->frame ? pixelMetric(PM_ComboBoxFrameWidth, option, widget) * 2 : 0;
    2701             newSize = QSize(newSize.width() + fw + 9, newSize.height() + fw-4); //Nine is a magic Number - See CommonStyle for real magic (23)
     6379            int fw = comboBox->frame ? proxy()->pixelMetric(PM_ComboBoxFrameWidth, option, widget) * 2 : 0;
     6380            newSize = QSize(newSize.width() + fw + 9, newSize.height() + fw); //Nine is a magic Number - See CommonStyle for real magic (23)
    27026381        }
    27036382        break;
     
    27066385    case CT_SpinBox:
    27076386        if (const QStyleOptionSpinBox *spinBox = qstyleoption_cast<const QStyleOptionSpinBox *>(option)) {
    2708             int fw = spinBox->frame ? pixelMetric(PM_SpinBoxFrameWidth, option, widget) * 2 : 0;
     6387            int fw = spinBox->frame ? proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget) * 2 : 0;
    27096388            newSize = QSize(newSize.width() + fw-5, newSize.height() + fw-6);
    27106389        }
     
    27206399        break;
    27216400    case CT_TabBarTab:
    2722         newSize += QSize(0,0);
     6401        if (d_func()->doubleControls)
     6402            newSize = QSize(newSize.width(), 42);
     6403        else
     6404            newSize = QSize(newSize.width(), 21);
    27236405        break;
    27246406    case CT_HeaderSection:
    27256407        newSize += QSize(4, 2);
    27266408        break;
     6409#ifndef QT_NO_ITEMVIEWS
     6410#ifdef Q_WS_WINCE_WM
     6411    case CT_ItemViewItem:
     6412        if (d_func()->wm65)
     6413            if (d_func()->doubleControls)
     6414                newSize.setHeight(46);
     6415            else
     6416                newSize.setHeight(23);
     6417        break;
     6418#endif //Q_WS_WINCE_WM
     6419#endif //QT_NO_ITEMVIEWS
    27276420    default:
    27286421        break;
     
    27526445    default:
    27536446        break;
    2754         #ifndef QT_NO_SLIDER
     6447#ifndef QT_NO_SLIDER
    27556448    case SE_SliderFocusRect:
    27566449        if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider *>(option)) {
     
    27636456        break;
    27646457#endif // QT_NO_SLIDER
     6458#ifndef QT_NO_ITEMVIEWS
     6459        case SE_ItemViewItemFocusRect:
     6460#ifdef Q_WS_WINCE_WM
     6461            if (d->wm65)
     6462                rect = QRect();
     6463#endif
     6464        break;
     6465#endif //QT_NO_ITEMVIEWS
    27656466    }
    27666467    return rect;
     
    27786479    case CC_ScrollBar:
    27796480        if (const QStyleOptionSlider *scrollbar = qstyleoption_cast<const QStyleOptionSlider *>(option)) {
    2780             int sliderButtonExtent = pixelMetric(PM_ScrollBarExtent, scrollbar, widget);
    2781             int sliderlen;
     6481            int sliderButtonExtent = proxy()->pixelMetric(PM_ScrollBarExtent, scrollbar, widget);
    27826482            float stretchFactor = 1.4f;
    27836483            int sliderButtonExtentDir = int (sliderButtonExtent * stretchFactor);
     6484
     6485#ifdef Q_WS_WINCE_WM
     6486            if (d->wm65)
     6487            {
     6488                sliderButtonExtent = d->imageScrollbarHandleUp.width();
     6489                sliderButtonExtentDir = d->imageScrollbarHandleUp.height();
     6490            }
     6491#endif //Q_WS_WINCE_WM
     6492
     6493            int sliderlen;
    27846494            int maxlen = ((scrollbar->orientation == Qt::Horizontal) ?
    27856495                scrollbar->rect.width() : scrollbar->rect.height()) - (sliderButtonExtentDir * 2);
     
    27896499                sliderlen = (qint64(scrollbar->pageStep) * maxlen) / (range + scrollbar->pageStep);
    27906500
    2791                 int slidermin = pixelMetric(PM_ScrollBarSliderMin, scrollbar, widget);
     6501                int slidermin = proxy()->pixelMetric(PM_ScrollBarSliderMin, scrollbar, widget);
    27926502                if (sliderlen < slidermin || range > INT_MAX / 2)
    27936503                    sliderlen = slidermin;
     
    28846594    case CC_ToolButton:
    28856595        if (const QStyleOptionToolButton *toolButton = qstyleoption_cast<const QStyleOptionToolButton *>(option)) {
    2886             int mbi = pixelMetric(PM_MenuButtonIndicator, toolButton, widget);
     6596            int mbi = proxy()->pixelMetric(PM_MenuButtonIndicator, toolButton, widget);
    28876597            rect = toolButton->rect;
    28886598            switch (subControl) {
     
    29106620        case CC_Slider:
    29116621        if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider *>(option)) {
    2912             int tickOffset = pixelMetric(PM_SliderTickmarkOffset, slider, widget);
    2913             int thickness = pixelMetric(PM_SliderControlThickness, slider, widget);
     6622            int tickOffset = proxy()->pixelMetric(PM_SliderTickmarkOffset, slider, widget);
     6623            int thickness = proxy()->pixelMetric(PM_SliderControlThickness, slider, widget);
    29146624            switch (subControl) {
    29156625            case SC_SliderHandle: {
    29166626                int sliderPos = 0;
    2917                 int len = pixelMetric(PM_SliderLength, slider, widget);
     6627                int len = proxy()->pixelMetric(PM_SliderLength, slider, widget);
    29186628                bool horizontal = slider->orientation == Qt::Horizontal;
    29196629                sliderPos = sliderPositionFromValue(slider->minimum, slider->maximum,
     
    29516661        case SC_ComboBoxArrow:
    29526662            rect.setRect(xpos, y + bmarg, he - 2*bmarg, he - 2*bmarg);
    2953             rect.setRect(xpos, y + bmarg, int((he - 2*bmarg)), he - 2*bmarg);
    29546663            break;
    2955          case SC_ComboBoxEditField:
    2956              rect.setRect(x + margin+4, y + margin+2, wi - 4 * margin - int((he - 2*bmarg) * 0.84f) -2, he - 2 * margin-4);
    2957              break;
    2958           case SC_ComboBoxFrame:
    2959               rect = comboBox->rect;
    2960               break;
     6664        case SC_ComboBoxEditField:
     6665            rect.setRect(x + margin, y + margin, wi - 2 * margin - int((he - 2*bmarg) * 0.84f), he - 2 * margin);
     6666            if (d->doubleControls) {
     6667                if (comboBox->editable)
     6668                    rect.adjust(2, 0, 0, 0);
     6669                else
     6670                    rect.adjust(4, 2, 0, -2);
     6671            } else if (!comboBox->editable) {
     6672                rect.adjust(2, 1, 0, -1);
     6673            }
     6674            break;
     6675        case SC_ComboBoxFrame:
     6676            rect = comboBox->rect;
     6677            break;
    29616678        default:
    29626679        break;
     
    29686685        if (const QStyleOptionSpinBox *spinBox = qstyleoption_cast<const QStyleOptionSpinBox *>(option)) {
    29696686            QSize bs;
    2970             int fw = spinBox->frame ? pixelMetric(PM_SpinBoxFrameWidth, spinBox, widget) : 0;
     6687            int fw = spinBox->frame ? proxy()->pixelMetric(PM_SpinBoxFrameWidth, spinBox, widget) : 0;
    29716688            bs.setHeight(qMax(d->doubleControls ? 28 : 14, (spinBox->rect.height())));
    29726689            // 1.6 -approximate golden mean
     
    29796696            switch (subControl) {
    29806697            case SC_SpinBoxUp:
    2981                 rect = QRect(x+pixelMetric(PM_SpinBoxFrameWidth, option, widget), 0 , bs.width(), bs.height());
     6698                rect = QRect(x + proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget), 0 , bs.width(), bs.height());
    29826699                break;
    29836700            case SC_SpinBoxDown:
     
    29856702                break;
    29866703            case SC_SpinBoxEditField:
     6704                if (spinBox->buttonSymbols == QAbstractSpinBox::NoButtons) {
     6705                    rect = QRect(lx, fw, spinBox->rect.width() - 2*fw - 2, spinBox->rect.height() - 2*fw);
     6706                } else {
    29876707                    rect = QRect(lx, fw, rx-2, spinBox->rect.height() - 2*fw);
     6708                }
    29886709                break;
    29896710            case SC_SpinBoxFrame:
     
    30256746                int frameWidth = 0;
    30266747                if (groupBox->text.size()) {
    3027                     frameWidth = pixelMetric(PM_DefaultFrameWidth, groupBox, widget);
     6748                    frameWidth = proxy()->pixelMetric(PM_DefaultFrameWidth, groupBox, widget);
    30286749                    rect = frameRect.adjusted(frameWidth, frameWidth + topHeight + labelMargin, -frameWidth, -frameWidth);
    30296750                }
     
    30466767                else
    30476768                  rect.setHeight(0);
    3048                 int indicatorWidth = pixelMetric(PM_IndicatorWidth, option, widget);
    3049                 int indicatorSpace = pixelMetric(PM_CheckBoxLabelSpacing, option, widget) - 1;
     6769                int indicatorWidth = proxy()->pixelMetric(PM_IndicatorWidth, option, widget);
     6770                int indicatorSpace = proxy()->pixelMetric(PM_CheckBoxLabelSpacing, option, widget) - 1;
    30506771                bool hasCheckBox = groupBox->subControls & QStyle::SC_GroupBoxCheckBox;
    30516772                int checkBoxSize = hasCheckBox ? (indicatorWidth + indicatorSpace) : 0;
     
    30616782                    // Adjust for check box
    30626783                    if (subControl == SC_GroupBoxCheckBox) {
    3063                         int indicatorHeight = pixelMetric(PM_IndicatorHeight, option, widget);
     6784                        int indicatorHeight = proxy()->pixelMetric(PM_IndicatorHeight, option, widget);
    30646785                        left = ltr ? totalRect.left() : (totalRect.right() - indicatorWidth);
    30656786                        int top = totalRect.top() + (fontMetrics.height() - indicatorHeight) / 2;
     
    31276848#endif //QT_NO_TOOLBAR
    31286849
    3129 #ifndef QT_NO_PROPERTIES
    3130         if (QAbstractButton *pushButton = qobject_cast<QAbstractButton*>(widget)) {
    3131             QVariant oldFont = widget->property("_q_styleWindowsMobileFont");
    3132             if (!oldFont.isValid()) {
    3133                 QFont f = pushButton->font();
    3134                 widget->setProperty("_q_styleWindowsMobileFont", f);
    3135                 f.setBold(true);
    3136                 int p = f.pointSize();
    3137                 if (p > 2)
    3138                     f.setPointSize(p-1);
    3139                 pushButton->setFont(f);
    3140             }
    3141         }
    3142 #endif
    3143         QWindowsStyle::polish(widget);
     6850    QWindowsStyle::polish(widget);
    31446851}
    31456852
    31466853void QWindowsMobileStyle::unpolish(QWidget *widget)
    31476854{
    3148 #ifndef QT_NO_PROPERTIES
    3149     if (QAbstractButton *pushButton = qobject_cast<QAbstractButton*>(widget)) {
    3150         QVariant oldFont = widget->property("_q_styleWindowsMobileFont");
    3151         if (oldFont.isValid()) {
    3152             widget->setFont(qVariantValue<QFont>(oldFont));
    3153         widget->setProperty("_q_styleWindowsMobileFont", QVariant());
    3154         }
    3155     }
    3156 #endif
    31576855    QWindowsStyle::unpolish(widget);
    31586856}
     
    32566954      case PM_RadioButtonLabelSpacing:
    32576955        ret = d->doubleControls ? 6 * 2 : 6;
    3258         break;
    32596956        break;
    32606957        // Returns the number of pixels to use for the business part of the
     
    32766973            int thick = 8;
    32776974            if (ticks != QSlider::TicksBothSides && ticks != QSlider::NoTicks)
    3278                 thick += pixelMetric(PM_SliderLength, sl, widget) / 4;
     6975                thick += proxy()->pixelMetric(PM_SliderLength, sl, widget) / 4;
    32796976
    32806977            space -= thick;
     
    32986995        break;
    32996996    case PM_IconViewIconSize:
    3300         ret = pixelMetric(PM_LargeIconSize, opt, widget);
     6997        ret = proxy()->pixelMetric(PM_LargeIconSize, opt, widget);
    33016998        break;
    33026999    case PM_ToolBarIconSize:
     
    33197016        break;
    33207017   case PM_ScrollBarSliderMin:
    3321         d->doubleControls ? ret = 36 : ret = 18;
    3322         break;       
     7018#ifdef Q_WS_WINCE_WM
     7019       if (d->wm65)
     7020#else
     7021       if (false)
     7022#endif
     7023       {
     7024           d->doubleControls ? ret = 68 : ret = 34;
     7025       } else {
     7026           d->doubleControls ? ret = 36 : ret = 18;
     7027       }
     7028        break;
    33237029   case PM_ScrollBarExtent: {
    3324        //Check if the scrollbar is part of an abstractItemView and set size according
     7030       
    33257031       if (d->smartphone)
    33267032           ret = 9;
    33277033       else
    33287034         d->doubleControls ? ret = 25 : ret = 13;
     7035
     7036#ifdef Q_WS_WINCE_WM
     7037       if (d->wm65)
     7038#else
     7039       if (false)
     7040#endif
     7041       {
     7042           d->doubleControls ? ret = 26 : ret = 13;
     7043           break;
     7044       }
     7045
    33297046#ifndef QT_NO_SCROLLAREA
     7047       //Check if the scrollbar is part of an abstractItemView and set size according
    33307048       if (widget)
    33317049       if (QWidget *parent = widget->parentWidget())
     
    33647082    case PM_TextCursorWidth:
    33657083        ret = 2;
    3366         break;       
     7084        break;
    33677085    case PM_TabBar_ScrollButtonOverlap:
    33687086        ret = 0;
     
    33987116    case SH_ToolBar_Movable:
    33997117        ret = false;
    3400         break;   
     7118        break;
    34017119    case SH_ScrollBar_ContextMenu:
    34027120        ret = false;
     7121        break;
     7122    case SH_MenuBar_AltKeyNavigation:
     7123        ret = false;
     7124        break;
     7125    case SH_RequestSoftwareInputPanel:
     7126        ret = RSIP_OnMouseClick;
    34037127        break;
    34047128    default:
     
    34647188    switch (iconMode) {
    34657189    case QIcon::Selected: {
     7190#ifdef Q_WS_WINCE_WM
     7191        if (d_func()->wm65)
     7192            return pixmap;
     7193#endif //Q_WS_WINCE_WM
    34667194        QImage img = pixmap.toImage().convertToFormat(QImage::Format_ARGB32);
    34677195        int imgh = img.height();
Note: See TracChangeset for help on using the changeset viewer.