rmthemegen 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/README +2 -3
- data/lib/rmthemegen/geany_fix.rb +21 -19
- data/lib/rmthemegen/index.html +1 -0
- data/lib/rmthemegen/rgb_contrast_test.rb +123 -0
- data/lib/rmthemegen/rmthemegen_187.rb +321 -0
- data/lib/rmthemegen/version.rb +1 -1
- data/rmthemegen.gemspec +1 -1
- data/test/rmthemegen_spec.rb +9 -0
- metadata +18 -3
data/.gitignore
CHANGED
data/README
CHANGED
@@ -4,19 +4,18 @@ By David Heitzman
|
|
4
4
|
evolvemeans@gmail.com
|
5
5
|
released under the MIT license "free to use"
|
6
6
|
|
7
|
-
"This software is not designed to diagnose, treat, or cure any particular
|
7
|
+
"This software is not designed to diagnose, treat, or cure any particular ailment. Except bad color schemes. "
|
8
8
|
|
9
9
|
requirements :
|
10
10
|
ruby : >= 1.9.1
|
11
11
|
gems:
|
12
12
|
color
|
13
|
-
|
13
|
+
xml-simple
|
14
14
|
|
15
15
|
usage: ruby rmthemegen
|
16
16
|
It will generate 1 or more files called: "rmt_something_something.xml"
|
17
17
|
Place these in your ./RubyMine/config/colors directory and then go to File/Settings/Editor/Colors&Fonts
|
18
18
|
you should see your theme(s) listed there.
|
19
19
|
|
20
|
-
Trivia: the names are chosen at random from lists of nouns and adjectives.
|
21
20
|
|
22
21
|
|
data/lib/rmthemegen/geany_fix.rb
CHANGED
@@ -18,6 +18,7 @@ module RMThemeGen
|
|
18
18
|
puts " David Heitzman 2011 "
|
19
19
|
puts " Note: if you want to put back your old Geany colors, go to ~/.config/geany/filedefs/ and"
|
20
20
|
puts " copy the corresponding _old_xxx file back onto filetypes.xyz, eg. filetypes.html, etc. "
|
21
|
+
puts " Restart geany to see new colors "
|
21
22
|
|
22
23
|
begin
|
23
24
|
@dir = (File.expand_path "~/.config/geany/filedefs/")+"/"
|
@@ -64,7 +65,7 @@ module RMThemeGen
|
|
64
65
|
@max_cont = 1.0
|
65
66
|
|
66
67
|
@schemeversion = 1
|
67
|
-
@background_max_brightness = 0.
|
68
|
+
@background_max_brightness = 0.16
|
68
69
|
@background_grey = true #if false, allows background to be any color, as long as it meets brightness parameter
|
69
70
|
# @foreground_min_brightness = 0.4
|
70
71
|
|
@@ -134,7 +135,6 @@ module RMThemeGen
|
|
134
135
|
#goes into the geany directory and kicks some ass. it replaces every single color definition with
|
135
136
|
#something random, of course with a consistent background.
|
136
137
|
|
137
|
-
puts "Backing up all your current color files"
|
138
138
|
@filelist.each do |f|
|
139
139
|
begin
|
140
140
|
# puts f+" -->"+@dir+"_old_"+@extstring+File.basename(f)
|
@@ -165,45 +165,47 @@ module RMThemeGen
|
|
165
165
|
case File.basename(f)
|
166
166
|
when "filetypes.common"
|
167
167
|
if token == "marker_search" then
|
168
|
-
r9 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.35, :max_cont
|
168
|
+
r9 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.35, :max_cont=>@max_cont).upcase
|
169
169
|
newl = token +"="+"0x"+r1+";0x"+r9+";true;true"
|
170
170
|
elsif token == "caret" then
|
171
|
-
r9 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.35, :max_cont
|
171
|
+
r9 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.35, :max_cont=>@max_cont).upcase
|
172
172
|
newl = token +"="+"0xFFFFFF;0x"+r9+";"+p3+";"+p4
|
173
173
|
elsif token == "current_line" then
|
174
|
-
r9 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont
|
175
|
-
newl = token +"="+"0x"+r1+";0x"+r9+";"+"true"+";"+"
|
174
|
+
r9 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>@min_cont*0.15, :max_cont=>@min_cont*0.3).upcase
|
175
|
+
newl = token +"="+"0x"+r1+";0x"+r9+";"+"true"+";"+"false"
|
176
176
|
elsif token == "selection" then
|
177
|
-
r9 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont
|
177
|
+
r9 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>@min_cont*0.25, :max_cont=>@min_cont*0.5).upcase
|
178
178
|
newl = token +"="+"0x"+r1+";0x"+r9+";"+"false"+";"+"true"
|
179
179
|
elsif token == "brace_good" then
|
180
|
-
rb = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.25, :max_cont
|
181
|
-
rf = randcolor(:bg_rgb=>rb, :min_cont=>0.30, :max_cont=>0
|
182
|
-
newl = token +"="+"0x"+rf+";0x"+rb+";"+"
|
180
|
+
rb = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.25, :max_cont=>@max_cont).upcase
|
181
|
+
rf = randcolor(:bg_rgb=>rb, :min_cont=>0.30, :max_cont=>1.0).upcase
|
182
|
+
newl = token +"="+"0x"+rf+";0x"+rb+";"+"true"+";"+"false"
|
183
183
|
elsif token == "brace_bad" then
|
184
|
-
rb = randcolor(:bg_rgb=>@backgroundcolor, :min_cont
|
185
|
-
rf = randcolor(:bg_rgb=>rb, :min_cont=>0.30, :max_cont=>0
|
186
|
-
newl = token +"="+"0x"+rf+";0x"+rb+";"+"true"+";"+"
|
184
|
+
rb = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>@min_cont, :max_cont=>1.0).upcase
|
185
|
+
rf = randcolor(:bg_rgb=>rb, :min_cont=>0.30, :max_cont=>1.0).upcase
|
186
|
+
newl = token +"="+"0x"+rf+";0x"+rb+";"+"true"+";"+"false"
|
187
187
|
else
|
188
|
-
|
188
|
+
newl = token +"="+"0x"+r1+";0x"+r2+";"+p3+";"+p4
|
189
189
|
end
|
190
190
|
|
191
191
|
when "filetypes.xml"
|
192
|
-
|
193
|
-
|
194
|
-
newl = token +"="+"0x"+r1+";0x"+r2+";"+p3+";"+p4
|
195
|
-
end
|
192
|
+
newl = token +"="+"0x"+r1+";0x"+r2+";"+p3+";"+p4
|
193
|
+
|
196
194
|
when "filetypes.ruby"
|
197
195
|
if token=="default" then
|
198
196
|
r3 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>@min_cont, :max_cont=>@max_cont).upcase
|
199
197
|
#for whatever reason this needs to go in there in a ruby file : pod=0x388afb;0x131313;false;false
|
200
198
|
newl = token +"="+"0x"+r1+";0x"+r2+";"+p3+";"+p4+"\npod=0x#{r3};0x#{@backgroundcolor};false;false"
|
199
|
+
elsif token.include?("comment") then
|
200
|
+
r1 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>@min_cont*0.87, :max_cont=>@min_cont*0.95).upcase
|
201
|
+
r2 = @backgroundcolor.upcase
|
202
|
+
newl = token +"="+"0x"+r1+";0x"+r2+";"+p3+";"+p4
|
201
203
|
else
|
202
204
|
newl = token +"="+"0x"+r1+";0x"+r2+";"+p3+";"+p4
|
203
205
|
end
|
204
206
|
else
|
205
207
|
if token.include?("comment") then
|
206
|
-
r1 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont
|
208
|
+
r1 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>@min_cont*0.33, :max_cont=>@min_cont*0.64).upcase
|
207
209
|
r2 = @backgroundcolor.upcase
|
208
210
|
newl = token +"="+"0x"+r1+";0x"+r2+";"+p3+";"+p4
|
209
211
|
else
|
@@ -0,0 +1 @@
|
|
1
|
+
<html><p>0: nada</p><p style='padding:0;margin:0;background-color:#000000;color:#000000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 0/0/0/0</p><p style='padding:0;margin:0;background-color:#000000;color:#010000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 0/0/0/0</p><p style='padding:0;margin:0;background-color:#000000;color:#020000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 0/0/0/0</p><p style='padding:0;margin:0;background-color:#000000;color:#030000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 0/0/0/0</p><p style='padding:0;margin:0;background-color:#000000;color:#040000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 0/0/0/0</p><p style='padding:0;margin:0;background-color:#000000;color:#050000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 0/0/0/0</p><p style='padding:0;margin:0;background-color:#000000;color:#060000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 0/0/0/0</p><p style='padding:0;margin:0;background-color:#000000;color:#070000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 0/0/0/0</p><p style='padding:0;margin:0;background-color:#000000;color:#080000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 1/0/0/0</p><p style='padding:0;margin:0;background-color:#000000;color:#090000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 1/0/1/0</p><p style='padding:0;margin:0;background-color:#000000;color:#0a0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 1/0/1/1</p><p style='padding:0;margin:0;background-color:#000000;color:#0b0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 1/0/1/1</p><p style='padding:0;margin:0;background-color:#000000;color:#0c0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 1/0/1/1</p><p style='padding:0;margin:0;background-color:#000000;color:#0d0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 1/0/1/1</p><p style='padding:0;margin:0;background-color:#000000;color:#0e0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 1/0/1/1</p><p style='padding:0;margin:0;background-color:#000000;color:#0f0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 1/0/1/1</p><p style='padding:0;margin:0;background-color:#000000;color:#100000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 2/0/1/1</p><p style='padding:0;margin:0;background-color:#000000;color:#110000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 2/0/1/1</p><p style='padding:0;margin:0;background-color:#000000;color:#120000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 2/0/2/1</p><p style='padding:0;margin:0;background-color:#000000;color:#130000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 2/0/2/1</p><p style='padding:0;margin:0;background-color:#000000;color:#140000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 2/0/2/2</p><p style='padding:0;margin:0;background-color:#000000;color:#150000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 2/0/2/2</p><p style='padding:0;margin:0;background-color:#000000;color:#160000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 2/0/2/2</p><p style='padding:0;margin:0;background-color:#000000;color:#170000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 3/0/2/2</p><p style='padding:0;margin:0;background-color:#000000;color:#180000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 3/0/2/2</p><p style='padding:0;margin:0;background-color:#000000;color:#190000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 3/0/2/2</p><p style='padding:0;margin:0;background-color:#000000;color:#1a0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 3/0/3/2</p><p style='padding:0;margin:0;background-color:#000000;color:#1b0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 3/0/3/2</p><p style='padding:0;margin:0;background-color:#000000;color:#1c0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 3/0/3/2</p><p style='padding:0;margin:0;background-color:#000000;color:#1d0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 3/0/3/2</p><p style='padding:0;margin:0;background-color:#000000;color:#1e0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 3/0/3/3</p><p style='padding:0;margin:0;background-color:#000000;color:#1f0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 4/0/3/3</p><p style='padding:0;margin:0;background-color:#000000;color:#200000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 4/0/3/3</p><p style='padding:0;margin:0;background-color:#000000;color:#210000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 4/0/3/3</p><p style='padding:0;margin:0;background-color:#000000;color:#220000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 4/0/3/3</p><p style='padding:0;margin:0;background-color:#000000;color:#230000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 4/0/4/3</p><p style='padding:0;margin:0;background-color:#000000;color:#240000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 4/0/4/3</p><p style='padding:0;margin:0;background-color:#000000;color:#250000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 4/0/4/3</p><p style='padding:0;margin:0;background-color:#000000;color:#260000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 4/0/4/3</p><p style='padding:0;margin:0;background-color:#000000;color:#270000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 5/0/4/4</p><p style='padding:0;margin:0;background-color:#000000;color:#280000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 5/0/4/4</p><p style='padding:0;margin:0;background-color:#000000;color:#290000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 5/0/4/4</p><p style='padding:0;margin:0;background-color:#000000;color:#2a0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 5/0/4/4</p><p style='padding:0;margin:0;background-color:#000000;color:#2b0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 5/0/5/4</p><p style='padding:0;margin:0;background-color:#000000;color:#2c0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 5/0/5/4</p><p style='padding:0;margin:0;background-color:#000000;color:#2d0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 5/0/5/4</p><p style='padding:0;margin:0;background-color:#000000;color:#2e0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 6/0/5/4</p><p style='padding:0;margin:0;background-color:#000000;color:#2f0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 6/0/5/4</p><p style='padding:0;margin:0;background-color:#000000;color:#300000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 6/0/5/4</p><p style='padding:0;margin:0;background-color:#000000;color:#310000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 6/0/5/5</p><p style='padding:0;margin:0;background-color:#000000;color:#320000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 6/0/5/5</p><p style='padding:0;margin:0;background-color:#000000;color:#330000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 6/0/5/5</p><p style='padding:0;margin:0;background-color:#000000;color:#340000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 6/0/6/5</p><p style='padding:0;margin:0;background-color:#000000;color:#350000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 6/0/6/5</p><p style='padding:0;margin:0;background-color:#000000;color:#360000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 7/0/6/5</p><p style='padding:0;margin:0;background-color:#000000;color:#370000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 7/0/6/5</p><p style='padding:0;margin:0;background-color:#000000;color:#380000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 7/0/6/5</p><p style='padding:0;margin:0;background-color:#000000;color:#390000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 7/0/6/5</p><p style='padding:0;margin:0;background-color:#000000;color:#3a0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 7/0/6/6</p><p style='padding:0;margin:0;background-color:#000000;color:#3b0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 7/0/6/6</p><p style='padding:0;margin:0;background-color:#000000;color:#3c0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 7/0/7/6</p><p style='padding:0;margin:0;background-color:#000000;color:#3d0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 7/0/7/6</p><p style='padding:0;margin:0;background-color:#000000;color:#3e0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 8/0/7/6</p><p style='padding:0;margin:0;background-color:#000000;color:#3f0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 8/0/7/6</p><p style='padding:0;margin:0;background-color:#000000;color:#400000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 8/1/7/6</p><p style='padding:0;margin:0;background-color:#000000;color:#410000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 8/1/7/6</p><p style='padding:0;margin:0;background-color:#000000;color:#420000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 8/1/7/6</p><p style='padding:0;margin:0;background-color:#000000;color:#430000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 8/1/7/7</p><p style='padding:0;margin:0;background-color:#000000;color:#440000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 8/1/7/7</p><p style='padding:0;margin:0;background-color:#000000;color:#450000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 9/1/8/7</p><p style='padding:0;margin:0;background-color:#000000;color:#460000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 9/1/8/7</p><p style='padding:0;margin:0;background-color:#000000;color:#470000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 9/1/8/7</p><p style='padding:0;margin:0;background-color:#000000;color:#480000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 9/1/8/7</p><p style='padding:0;margin:0;background-color:#000000;color:#490000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 9/1/8/7</p><p style='padding:0;margin:0;background-color:#000000;color:#4a0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 9/1/8/7</p><p style='padding:0;margin:0;background-color:#000000;color:#4b0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 9/1/8/7</p><p style='padding:0;margin:0;background-color:#000000;color:#4c0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 9/1/8/8</p><p style='padding:0;margin:0;background-color:#000000;color:#4d0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 10/1/9/8</p><p style='padding:0;margin:0;background-color:#000000;color:#4e0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 10/1/9/8</p><p style='padding:0;margin:0;background-color:#000000;color:#4f0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 10/1/9/8</p><p style='padding:0;margin:0;background-color:#000000;color:#500000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 10/1/9/8</p><p style='padding:0;margin:0;background-color:#000000;color:#510000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 10/1/9/8</p><p style='padding:0;margin:0;background-color:#000000;color:#520000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 10/1/9/8</p><p style='padding:0;margin:0;background-color:#000000;color:#530000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 10/1/9/8</p><p style='padding:0;margin:0;background-color:#000000;color:#540000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 10/1/9/8</p><p style='padding:0;margin:0;background-color:#000000;color:#550000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 11/1/9/8</p><p style='padding:0;margin:0;background-color:#000000;color:#560000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 11/1/10/9</p><p style='padding:0;margin:0;background-color:#000000;color:#570000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 11/1/10/9</p><p style='padding:0;margin:0;background-color:#000000;color:#580000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 11/2/10/9</p><p style='padding:0;margin:0;background-color:#000000;color:#590000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 11/2/10/9</p><p style='padding:0;margin:0;background-color:#000000;color:#5a0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 11/2/10/9</p><p style='padding:0;margin:0;background-color:#000000;color:#5b0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 11/2/10/9</p><p style='padding:0;margin:0;background-color:#000000;color:#5c0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 12/2/10/9</p><p style='padding:0;margin:0;background-color:#000000;color:#5d0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 12/2/10/9</p><p style='padding:0;margin:0;background-color:#000000;color:#5e0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 12/2/11/9</p><p style='padding:0;margin:0;background-color:#000000;color:#5f0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 12/2/11/10</p><p style='padding:0;margin:0;background-color:#000000;color:#600000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 12/2/11/10</p><p style='padding:0;margin:0;background-color:#000000;color:#610000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 12/2/11/10</p><p style='padding:0;margin:0;background-color:#000000;color:#620000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 12/2/11/10</p><p style='padding:0;margin:0;background-color:#000000;color:#630000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 12/2/11/10</p><p style='padding:0;margin:0;background-color:#000000;color:#640000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 13/2/11/10</p><p style='padding:0;margin:0;background-color:#000000;color:#650000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 13/2/11/10</p><p style='padding:0;margin:0;background-color:#000000;color:#660000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 13/2/11/10</p><p style='padding:0;margin:0;background-color:#000000;color:#670000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 13/2/12/10</p><p style='padding:0;margin:0;background-color:#000000;color:#680000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 13/2/12/11</p><p style='padding:0;margin:0;background-color:#000000;color:#690000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 13/3/12/11</p><p style='padding:0;margin:0;background-color:#000000;color:#6a0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 13/3/12/11</p><p style='padding:0;margin:0;background-color:#000000;color:#6b0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 13/3/12/11</p><p style='padding:0;margin:0;background-color:#000000;color:#6c0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 14/3/12/11</p><p style='padding:0;margin:0;background-color:#000000;color:#6d0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 14/3/12/11</p><p style='padding:0;margin:0;background-color:#000000;color:#6e0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 14/3/12/11</p><p style='padding:0;margin:0;background-color:#000000;color:#6f0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 14/3/13/11</p><p style='padding:0;margin:0;background-color:#000000;color:#700000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 14/3/13/11</p><p style='padding:0;margin:0;background-color:#000000;color:#710000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 14/3/13/12</p><p style='padding:0;margin:0;background-color:#000000;color:#720000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 14/3/13/12</p><p style='padding:0;margin:0;background-color:#000000;color:#730000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 15/3/13/12</p><p style='padding:0;margin:0;background-color:#000000;color:#740000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 15/3/13/12</p><p style='padding:0;margin:0;background-color:#000000;color:#750000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 15/3/13/12</p><p style='padding:0;margin:0;background-color:#000000;color:#760000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 15/3/13/12</p><p style='padding:0;margin:0;background-color:#000000;color:#770000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 15/3/13/12</p><p style='padding:0;margin:0;background-color:#000000;color:#780000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 15/4/14/12</p><p style='padding:0;margin:0;background-color:#000000;color:#790000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 15/4/14/13</p><p style='padding:0;margin:0;background-color:#000000;color:#7a0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 15/4/14/13</p><p style='padding:0;margin:0;background-color:#000000;color:#7b0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 16/4/14/13</p><p style='padding:0;margin:0;background-color:#000000;color:#7c0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 16/4/14/13</p><p style='padding:0;margin:0;background-color:#000000;color:#7d0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 16/4/14/13</p><p style='padding:0;margin:0;background-color:#000000;color:#7e0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 16/4/14/13</p><p style='padding:0;margin:0;background-color:#000000;color:#7f0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 16/4/14/13</p><p style='padding:0;margin:0;background-color:#000000;color:#800000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 16/4/15/13</p><p style='padding:0;margin:0;background-color:#000000;color:#810000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 16/4/15/13</p><p style='padding:0;margin:0;background-color:#000000;color:#820000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 16/4/15/14</p><p style='padding:0;margin:0;background-color:#000000;color:#830000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 17/4/15/14</p><p style='padding:0;margin:0;background-color:#000000;color:#840000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 17/4/15/14</p><p style='padding:0;margin:0;background-color:#000000;color:#850000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 17/5/15/14</p><p style='padding:0;margin:0;background-color:#000000;color:#860000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 17/5/15/14</p><p style='padding:0;margin:0;background-color:#000000;color:#870000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 17/5/15/14</p><p style='padding:0;margin:0;background-color:#000000;color:#880000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 17/5/15/14</p><p style='padding:0;margin:0;background-color:#000000;color:#890000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 17/5/16/14</p><p style='padding:0;margin:0;background-color:#000000;color:#8a0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 18/5/16/14</p><p style='padding:0;margin:0;background-color:#000000;color:#8b0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 18/5/16/15</p><p style='padding:0;margin:0;background-color:#000000;color:#8c0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 18/5/16/15</p><p style='padding:0;margin:0;background-color:#000000;color:#8d0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 18/5/16/15</p><p style='padding:0;margin:0;background-color:#000000;color:#8e0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 18/5/16/15</p><p style='padding:0;margin:0;background-color:#000000;color:#8f0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 18/5/16/15</p><p style='padding:0;margin:0;background-color:#000000;color:#900000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 18/6/16/15</p><p style='padding:0;margin:0;background-color:#000000;color:#910000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 18/6/17/15</p><p style='padding:0;margin:0;background-color:#000000;color:#920000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 19/6/17/15</p><p style='padding:0;margin:0;background-color:#000000;color:#930000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 19/6/17/15</p><p style='padding:0;margin:0;background-color:#000000;color:#940000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 19/6/17/16</p><p style='padding:0;margin:0;background-color:#000000;color:#950000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 19/6/17/16</p><p style='padding:0;margin:0;background-color:#000000;color:#960000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 19/6/17/16</p><p style='padding:0;margin:0;background-color:#000000;color:#970000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 19/6/17/16</p><p style='padding:0;margin:0;background-color:#000000;color:#980000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 19/6/17/16</p><p style='padding:0;margin:0;background-color:#000000;color:#990000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 20/6/17/16</p><p style='padding:0;margin:0;background-color:#000000;color:#9a0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 20/7/18/16</p><p style='padding:0;margin:0;background-color:#000000;color:#9b0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 20/7/18/16</p><p style='padding:0;margin:0;background-color:#000000;color:#9c0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 20/7/18/17</p><p style='padding:0;margin:0;background-color:#000000;color:#9d0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 20/7/18/17</p><p style='padding:0;margin:0;background-color:#000000;color:#9e0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 20/7/18/17</p><p style='padding:0;margin:0;background-color:#000000;color:#9f0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 20/7/18/17</p><p style='padding:0;margin:0;background-color:#000000;color:#a00000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 20/7/18/17</p><p style='padding:0;margin:0;background-color:#000000;color:#a10000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 21/7/18/17</p><p style='padding:0;margin:0;background-color:#000000;color:#a20000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 21/7/18/17</p><p style='padding:0;margin:0;background-color:#000000;color:#a30000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 21/7/19/17</p><p style='padding:0;margin:0;background-color:#000000;color:#a40000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 21/8/19/17</p><p style='padding:0;margin:0;background-color:#000000;color:#a50000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 21/8/19/18</p><p style='padding:0;margin:0;background-color:#000000;color:#a60000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 21/8/19/18</p><p style='padding:0;margin:0;background-color:#000000;color:#a70000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 21/8/19/18</p><p style='padding:0;margin:0;background-color:#000000;color:#a80000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 21/8/19/18</p><p style='padding:0;margin:0;background-color:#000000;color:#a90000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 22/8/19/18</p><p style='padding:0;margin:0;background-color:#000000;color:#aa0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 22/8/19/18</p><p style='padding:0;margin:0;background-color:#000000;color:#ab0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 22/8/20/18</p><p style='padding:0;margin:0;background-color:#000000;color:#ac0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 22/8/20/18</p><p style='padding:0;margin:0;background-color:#000000;color:#ad0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 22/9/20/19</p><p style='padding:0;margin:0;background-color:#000000;color:#ae0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 22/9/20/19</p><p style='padding:0;margin:0;background-color:#000000;color:#af0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 22/9/20/19</p><p style='padding:0;margin:0;background-color:#000000;color:#b00000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 23/9/20/19</p><p style='padding:0;margin:0;background-color:#000000;color:#b10000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 23/9/20/19</p><p style='padding:0;margin:0;background-color:#000000;color:#b20000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 23/9/20/19</p><p style='padding:0;margin:0;background-color:#000000;color:#b30000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 23/9/20/19</p><p style='padding:0;margin:0;background-color:#000000;color:#b40000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 23/9/21/19</p><p style='padding:0;margin:0;background-color:#000000;color:#b50000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 23/10/21/20</p><p style='padding:0;margin:0;background-color:#000000;color:#b60000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 23/10/21/20</p><p style='padding:0;margin:0;background-color:#000000;color:#b70000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 23/10/21/20</p><p style='padding:0;margin:0;background-color:#000000;color:#b80000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 24/10/21/20</p><p style='padding:0;margin:0;background-color:#000000;color:#b90000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 24/10/21/20</p><p style='padding:0;margin:0;background-color:#000000;color:#ba0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 24/10/21/20</p><p style='padding:0;margin:0;background-color:#000000;color:#bb0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 24/10/21/20</p><p style='padding:0;margin:0;background-color:#000000;color:#bc0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 24/10/22/20</p><p style='padding:0;margin:0;background-color:#000000;color:#bd0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 24/10/22/20</p><p style='padding:0;margin:0;background-color:#000000;color:#be0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 24/11/22/21</p><p style='padding:0;margin:0;background-color:#000000;color:#bf0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 24/11/22/21</p><p style='padding:0;margin:0;background-color:#000000;color:#c00000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 25/11/22/21</p><p style='padding:0;margin:0;background-color:#000000;color:#c10000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 25/11/22/21</p><p style='padding:0;margin:0;background-color:#000000;color:#c20000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 25/11/22/21</p><p style='padding:0;margin:0;background-color:#000000;color:#c30000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 25/11/22/21</p><p style='padding:0;margin:0;background-color:#000000;color:#c40000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 25/11/22/21</p><p style='padding:0;margin:0;background-color:#000000;color:#c50000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 25/12/23/21</p><p style='padding:0;margin:0;background-color:#000000;color:#c60000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 25/12/23/22</p><p style='padding:0;margin:0;background-color:#000000;color:#c70000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 26/12/23/22</p><p style='padding:0;margin:0;background-color:#000000;color:#c80000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 26/12/23/22</p><p style='padding:0;margin:0;background-color:#000000;color:#c90000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 26/12/23/22</p><p style='padding:0;margin:0;background-color:#000000;color:#ca0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 26/12/23/22</p><p style='padding:0;margin:0;background-color:#000000;color:#cb0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 26/12/23/22</p><p style='padding:0;margin:0;background-color:#000000;color:#cc0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 26/13/23/22</p><p style='padding:0;margin:0;background-color:#000000;color:#cd0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 26/13/24/22</p><p style='padding:0;margin:0;background-color:#000000;color:#ce0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 26/13/24/23</p><p style='padding:0;margin:0;background-color:#000000;color:#cf0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 27/13/24/23</p><p style='padding:0;margin:0;background-color:#000000;color:#d00000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 27/13/24/23</p><p style='padding:0;margin:0;background-color:#000000;color:#d10000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 27/13/24/23</p><p style='padding:0;margin:0;background-color:#000000;color:#d20000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 27/13/24/23</p><p style='padding:0;margin:0;background-color:#000000;color:#d30000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 27/14/24/23</p><p style='padding:0;margin:0;background-color:#000000;color:#d40000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 27/14/24/23</p><p style='padding:0;margin:0;background-color:#000000;color:#d50000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 27/14/24/23</p><p style='padding:0;margin:0;background-color:#000000;color:#d60000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 27/14/25/24</p><p style='padding:0;margin:0;background-color:#000000;color:#d70000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 28/14/25/24</p><p style='padding:0;margin:0;background-color:#000000;color:#d80000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 28/14/25/24</p><p style='padding:0;margin:0;background-color:#000000;color:#d90000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 28/14/25/24</p><p style='padding:0;margin:0;background-color:#000000;color:#da0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 28/15/25/24</p><p style='padding:0;margin:0;background-color:#000000;color:#db0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 28/15/25/24</p><p style='padding:0;margin:0;background-color:#000000;color:#dc0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 28/15/25/24</p><p style='padding:0;margin:0;background-color:#000000;color:#dd0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 28/15/25/24</p><p style='padding:0;margin:0;background-color:#000000;color:#de0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 29/15/26/25</p><p style='padding:0;margin:0;background-color:#000000;color:#df0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 29/15/26/25</p><p style='padding:0;margin:0;background-color:#000000;color:#e00000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 29/15/26/25</p><p style='padding:0;margin:0;background-color:#000000;color:#e10000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 29/16/26/25</p><p style='padding:0;margin:0;background-color:#000000;color:#e20000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 29/16/26/25</p><p style='padding:0;margin:0;background-color:#000000;color:#e30000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 29/16/26/25</p><p style='padding:0;margin:0;background-color:#000000;color:#e40000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 29/16/26/25</p><p style='padding:0;margin:0;background-color:#000000;color:#e50000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 29/16/26/25</p><p style='padding:0;margin:0;background-color:#000000;color:#e60000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 30/16/26/26</p><p style='padding:0;margin:0;background-color:#000000;color:#e70000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 30/17/27/26</p><p style='padding:0;margin:0;background-color:#000000;color:#e80000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 30/17/27/26</p><p style='padding:0;margin:0;background-color:#000000;color:#e90000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 30/17/27/26</p><p style='padding:0;margin:0;background-color:#000000;color:#ea0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 30/17/27/26</p><p style='padding:0;margin:0;background-color:#000000;color:#eb0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 30/17/27/26</p><p style='padding:0;margin:0;background-color:#000000;color:#ec0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 30/17/27/26</p><p style='padding:0;margin:0;background-color:#000000;color:#ed0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 30/18/27/26</p><p style='padding:0;margin:0;background-color:#000000;color:#ee0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 31/18/27/27</p><p style='padding:0;margin:0;background-color:#000000;color:#ef0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 31/18/28/27</p><p style='padding:0;margin:0;background-color:#000000;color:#f00000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 31/18/28/27</p><p style='padding:0;margin:0;background-color:#000000;color:#f10000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 31/18/28/27</p><p style='padding:0;margin:0;background-color:#000000;color:#f20000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 31/18/28/27</p><p style='padding:0;margin:0;background-color:#000000;color:#f30000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 31/19/28/27</p><p style='padding:0;margin:0;background-color:#000000;color:#f40000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 31/19/28/27</p><p style='padding:0;margin:0;background-color:#000000;color:#f50000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 32/19/28/27</p><p style='padding:0;margin:0;background-color:#000000;color:#f60000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 32/19/28/28</p><p style='padding:0;margin:0;background-color:#000000;color:#f70000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 32/19/28/28</p><p style='padding:0;margin:0;background-color:#000000;color:#f80000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 32/19/29/28</p><p style='padding:0;margin:0;background-color:#000000;color:#f90000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 32/20/29/28</p><p style='padding:0;margin:0;background-color:#000000;color:#fa0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 32/20/29/28</p><p style='padding:0;margin:0;background-color:#000000;color:#fb0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 32/20/29/28</p><p style='padding:0;margin:0;background-color:#000000;color:#fc0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 32/20/29/28</p><p style='padding:0;margin:0;background-color:#000000;color:#fd0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 33/20/29/29</p><p style='padding:0;margin:0;background-color:#000000;color:#fe0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 33/21/29/29</p><p style='padding:0;margin:0;background-color:#000000;color:#ff0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 33/21/29/29</p></html>
|
@@ -0,0 +1,123 @@
|
|
1
|
+
require 'xmlsimple'
|
2
|
+
require 'color'
|
3
|
+
require File.dirname(__FILE__)+"/token_list"
|
4
|
+
require File.dirname(__FILE__)+'/rgb_contrast_methods'
|
5
|
+
|
6
|
+
module RMThemeGen
|
7
|
+
class ThemeGenerator < RMThemeParent
|
8
|
+
|
9
|
+
attr_reader :xmlout #a huge structure of xml that can be given to XmlSimple.xml_out() to create that actual color theme file
|
10
|
+
|
11
|
+
def initialize
|
12
|
+
|
13
|
+
@iterations = 0
|
14
|
+
@iterations = ARGV[0].to_s.to_i
|
15
|
+
|
16
|
+
puts "rgb_contrast methods -- this should create an index.html that displays samples of text and their contrast rating by the methods in contrast_methods "
|
17
|
+
|
18
|
+
#for testing purposes of the RGB contrast evaluator
|
19
|
+
f = File.open("index.html","w+")
|
20
|
+
st1="<html>"
|
21
|
+
h = Hash.new
|
22
|
+
#generate histogram
|
23
|
+
0.times do
|
24
|
+
begin
|
25
|
+
grkcol = Color::RGB.new(@rand.rand*256,@rand.rand*256,@rand.rand*256)
|
26
|
+
brkcol = Color::RGB.new(@rand.rand*256,@rand.rand*256,@rand.rand*256)
|
27
|
+
#puts grkcol.contrast(brkcol)
|
28
|
+
end until true# grkcol.contrast(brkcol) > 0.20
|
29
|
+
key =(grkcol.contrast(brkcol)*100).to_i
|
30
|
+
h[key] = h.has_key?(key) ? h[key] += 1 : 1
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
0.upto 0 do |f|
|
35
|
+
st1 += "<p>"+f.to_s+": "+ ( h[f.to_i] ? h[f.to_i].to_s : "nada")+"</p>"
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
0.upto 255 do |i|
|
40
|
+
begin
|
41
|
+
# grkcol = Color::RGB.new(@rand.rand*256,@rand.rand*256,@rand.rand*256)
|
42
|
+
# brkcol = Color::RGB.new(@rand.rand*256,@rand.rand*256,@rand.rand*256)
|
43
|
+
grkcol = Color::RGB.new( 0,0,0 )
|
44
|
+
brkcol = Color::RGB.new(i,0,0)
|
45
|
+
#puts grkcol.contrast(brkcol)
|
46
|
+
end until true# grkcol.contrast(brkcol) > 0.20
|
47
|
+
st1 += "<p style='padding:0;margin:0;background-color:#{grkcol.html};color:#{brkcol.html};'>aBD9 #!#$87 asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv "
|
48
|
+
st1 += "<span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: #{(100*grkcol.diff_hue(brkcol)).to_i}/#{(100*grkcol.diff_lum(brkcol)).to_i}/#{(100*grkcol.diff_bri(brkcol)).to_i}/#{(100*grkcol.contrast(brkcol)).to_i}</p>"
|
49
|
+
# grkcol = Color::RGB.new(0xf1,0x11,0x9a)
|
50
|
+
# brkcol = Color::RGB.new(0xa0,0xf4,0x2f)
|
51
|
+
# st1 += "<p style='padding:0;margin:0;background-color:#{grkcol.html};color:#{brkcol.html};'>aBD9 #!#$87 asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv "
|
52
|
+
# st1 += "<span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: #{(100*grkcol.diff_hue(brkcol)).to_i}/#{(100*grkcol.diff_lum(brkcol)).to_i}/#{(100*grkcol.diff_bri(brkcol)).to_i}/#{(100*grkcol.contrast(brkcol)).to_i}</p>"
|
53
|
+
# grkcol = Color::RGB.new(0x42,0x08,0x11)
|
54
|
+
# brkcol = Color::RGB.new(0x48,0x19,0xd0)
|
55
|
+
# st1 += "<p style='background-color:#{grkcol.html};color:#{brkcol.html};'>aBD9 #!#$87 asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv "
|
56
|
+
#st1 += "<span style='background-color:#ffffff;color:#000000;'>hue/lum/bri/all: #{(100*grkcol.diff_hue(brkcol)).to_i}/#{(100*grkcol.diff_lum(brkcol)).to_i}/#{(100*grkcol.diff_bri(brkcol)).to_i}/#{(100*grkcol.contrast(brkcol)).to_i}</p>"
|
57
|
+
end
|
58
|
+
|
59
|
+
st1+="</html>"
|
60
|
+
printf(f,st1)
|
61
|
+
f.close
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
def randthemename
|
66
|
+
out = " "
|
67
|
+
while out.include? " " do
|
68
|
+
out = @@adjectives[rand * @@adjectives.size]+"_"+@@nouns[rand * @@nouns.size]
|
69
|
+
end
|
70
|
+
return out
|
71
|
+
end
|
72
|
+
|
73
|
+
def randfilename(existing = "")
|
74
|
+
if existing != "" then
|
75
|
+
out=existing
|
76
|
+
else
|
77
|
+
ar=["a","b","f","h","z","1","5"]
|
78
|
+
ar.shuffle!
|
79
|
+
out =""
|
80
|
+
ar.each { |n|
|
81
|
+
out << n
|
82
|
+
}
|
83
|
+
end
|
84
|
+
return "rmt_"+out+".xml"
|
85
|
+
end
|
86
|
+
|
87
|
+
|
88
|
+
def randcolor(opts={})
|
89
|
+
|
90
|
+
df= { :r=>nil, :g=>nil, :b=>nil, #these are the usual 0..255
|
91
|
+
:bg_rgb => nil,
|
92
|
+
:min_cont => @min_cont, #if a backrgb (background color) is supplied this will be used to create a minimum contrast with it.
|
93
|
+
:max_cont => @max_cont,
|
94
|
+
:max_bright => @max_bright,
|
95
|
+
:min_bright => @min_bright,
|
96
|
+
# :bright_median => 0.5,
|
97
|
+
:shade_of_grey => false} #forces r == g == b
|
98
|
+
df = df.merge opts
|
99
|
+
df[:bg_rgb] = Color::RGB.from_html(df[:bg_rgb]) if df[:bg_rgb]
|
100
|
+
color = brightok = contok = nil;
|
101
|
+
while (!color || !brightok || !contok ) do
|
102
|
+
r = (df[:r] || rand*256)%256 #mod for robustness
|
103
|
+
g = (df[:g] || rand*256)%256
|
104
|
+
b = (df[:b] || rand*256)%256
|
105
|
+
g = b = r if df[:shade_of_grey] == true
|
106
|
+
color = Color::RGB.new(r,g,b)
|
107
|
+
#puts "bg" + @backgroundcolor if df[:bg_rgb]
|
108
|
+
#puts "color "+color.html
|
109
|
+
#puts "contrast "+color.contrast(df[:bg_rgb]).to_s if df[:bg_rgb]
|
110
|
+
contok = df[:bg_rgb] ? (df[:min_cont]..df[:max_cont]).cover?( color.contrast(df[:bg_rgb]) ) : true
|
111
|
+
#puts "contok "+contok.to_s
|
112
|
+
brightok = (df[:min_bright]..df[:max_bright]).cover?( color.to_hsl.brightness )
|
113
|
+
#puts "brightok "+brightok.to_s
|
114
|
+
end
|
115
|
+
|
116
|
+
cn = color.html
|
117
|
+
cn= cn.slice(1,cn.size)
|
118
|
+
return cn
|
119
|
+
end
|
120
|
+
end #class
|
121
|
+
end #module
|
122
|
+
|
123
|
+
l = RMThemeGen::ThemeGenerator.new
|
@@ -0,0 +1,321 @@
|
|
1
|
+
#**********************************************************************
|
2
|
+
#* *
|
3
|
+
#* RmThemeGen - a ruby script to create random, usable themes for *
|
4
|
+
#* text editors. Currently supports RubyMine 3.X.X *
|
5
|
+
#* *
|
6
|
+
#* By David Heitzman, 2011 *
|
7
|
+
#* *
|
8
|
+
#**********************************************************************
|
9
|
+
|
10
|
+
#this is a version of the software that should work with ruby 1.8.7
|
11
|
+
#originally it was written and tested for ruby 1.9.2
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
require 'rubygems'
|
16
|
+
require 'xmlsimple'
|
17
|
+
require 'color'
|
18
|
+
require File.dirname(__FILE__)+"/token_list"
|
19
|
+
require File.dirname(__FILE__)+'/rgb_contrast_methods'
|
20
|
+
|
21
|
+
module RMThemeGen
|
22
|
+
|
23
|
+
class ThemeGenerator < RMThemeParent
|
24
|
+
|
25
|
+
attr_reader :xmlout #a huge structure of xml that can be given to XmlSimple.xml_out() to create that actual color theme file
|
26
|
+
|
27
|
+
def initialize
|
28
|
+
|
29
|
+
@iterations = 1
|
30
|
+
@iterations = ARGV[0].to_s.to_i if ARGV[0]
|
31
|
+
|
32
|
+
puts "rmthemegen - creates theme files for use with rubymine (3.0.0 and up) "
|
33
|
+
puts "by David Heitzman 2011 "
|
34
|
+
puts (@@adjectives.size * @@nouns.size).to_s + " possible theme names "
|
35
|
+
|
36
|
+
puts "generating #{@iterations.to_s} themes into current directory. Filenames: rmt_xyz.xml "
|
37
|
+
#bold: <option name="FONT_TYPE" value="1" />
|
38
|
+
#italic: <option name="FONT_TYPE" value="2" />
|
39
|
+
#bold & italic: <option name="FONT_TYPE" value="3" />
|
40
|
+
|
41
|
+
#"EFFECT-TYPE" s:
|
42
|
+
# 3 ==> cross-out
|
43
|
+
# 1 ==> underline
|
44
|
+
# 2 == >squiggle underline
|
45
|
+
# 5 => blockey underline
|
46
|
+
# 0 ==> box around word
|
47
|
+
# -1 ==> seems to have no effect
|
48
|
+
|
49
|
+
# if the element name contains a string from the following arrays it makes that element
|
50
|
+
# eligible for bold, italic or both. This allows elements from multiple languages to all
|
51
|
+
# be exposed equally to
|
52
|
+
# underline not implemented yet. There are several font decorations in rubymine,
|
53
|
+
# probably should be used sparingly.
|
54
|
+
@italic_candidates = ["STRING", "SYMBOL", "REQUIRE"]
|
55
|
+
|
56
|
+
@bold_candidates = ["KEYWORD","RUBY_SPECIFIC_CALL", "CONSTANT", "COMMA", "PAREN","RUBY_ATTR_ACCESSOR_CALL", "RUBY_ATTR_READER_CALL" ,"RUBY_ATTR_WRITER_CALL", "IDENTIFIER"]
|
57
|
+
# with code inspections we don't color the text, we just put a line or something under it .
|
58
|
+
@code_inspections = ["ERROR","WARNING_ATTRIBUTES","DEPRECATED", "TYPO","WARNING_ATTRIBUTES", "BAD_CHARACTER",
|
59
|
+
"CUSTOM_INVALID_STRING_ESCAPE_ATTRIBUTES","ERRORS_ATTRIBUTES", "MATCHED_BRACE_ATTRIBUTES"]
|
60
|
+
@cross_out = ["DEPRECATED_ATTRIBUTES" ]
|
61
|
+
|
62
|
+
@unders = %w(-1 0 1 2 5 )
|
63
|
+
@underline_candidates = ["STRING"]
|
64
|
+
@italic_chance = 0.2
|
65
|
+
@bold_chance = 0.4
|
66
|
+
@underline_chance = 0.3
|
67
|
+
@bright_median = 0.85
|
68
|
+
@min_bright = @bright_median * 0.65
|
69
|
+
@max_bright = [@bright_median * 1.35,1.0].max
|
70
|
+
|
71
|
+
@min_bright = 0.0
|
72
|
+
@max_bright = 1.0
|
73
|
+
|
74
|
+
# if we avoid any notion of "brightness", which is an absolute quality, then we
|
75
|
+
# can make our background any color we want !
|
76
|
+
|
77
|
+
#tighter contrast spec
|
78
|
+
@cont_median = 0.85
|
79
|
+
@min_cont = @cont_median * 0.65
|
80
|
+
@max_cont = [@cont_median * 1.35,1.0].max
|
81
|
+
|
82
|
+
#broad contrast spec
|
83
|
+
@min_cont = 0.30
|
84
|
+
@max_cont = 1.0
|
85
|
+
|
86
|
+
@schemeversion = 1
|
87
|
+
@background_max_brightness = 0.14
|
88
|
+
@background_grey = true #if false, allows background to be any color, as long as it meets brightness parameter
|
89
|
+
# @foreground_min_brightness = 0.4
|
90
|
+
|
91
|
+
|
92
|
+
@backgroundcolor= randcolor( :shade_of_grey=>@background_grey, :max_bright=>@background_max_brightness)# "0"
|
93
|
+
|
94
|
+
end
|
95
|
+
|
96
|
+
def randthemename
|
97
|
+
out = " "
|
98
|
+
while out.include? " " do
|
99
|
+
out = @@adjectives[rand * @@adjectives.size]+"_"+@@nouns[rand * @@nouns.size]
|
100
|
+
end
|
101
|
+
return out
|
102
|
+
end
|
103
|
+
|
104
|
+
def randfilename(existing = "")
|
105
|
+
if existing != "" then
|
106
|
+
out=existing
|
107
|
+
else
|
108
|
+
ar=["a","b","f","h","z","1","5"]
|
109
|
+
ar.shuffle!
|
110
|
+
out =""
|
111
|
+
ar.each { |n|
|
112
|
+
out << n
|
113
|
+
}
|
114
|
+
end
|
115
|
+
return "rmt_"+out+".xml"
|
116
|
+
end
|
117
|
+
|
118
|
+
|
119
|
+
def randcolor(opts={})
|
120
|
+
|
121
|
+
df= { :r=>nil, :g=>nil, :b=>nil, #these are the usual 0..255
|
122
|
+
:bg_rgb => nil,
|
123
|
+
:min_cont => @min_cont, #if a backrgb (background color) is supplied this will be used to create a minimum contrast with it.
|
124
|
+
:max_cont => @max_cont,
|
125
|
+
:max_bright => @max_bright,
|
126
|
+
:min_bright => @min_bright,
|
127
|
+
# :bright_median => 0.5,
|
128
|
+
:shade_of_grey => false} #forces r == g == b
|
129
|
+
df = df.merge opts
|
130
|
+
df[:bg_rgb] = Color::RGB.from_html(df[:bg_rgb]) if df[:bg_rgb]
|
131
|
+
color = brightok = contok = nil;
|
132
|
+
while (!color || !brightok || !contok ) do
|
133
|
+
r = (df[:r] || rand*256)%256 #mod for robustness
|
134
|
+
g = (df[:g] || rand*256)%256
|
135
|
+
b = (df[:b] || rand*256)%256
|
136
|
+
g = b = r if df[:shade_of_grey] == true
|
137
|
+
color = Color::RGB.new(r,g,b)
|
138
|
+
#puts "bg" + @backgroundcolor if df[:bg_rgb]
|
139
|
+
#puts "color "+color.html
|
140
|
+
#puts "contrast "+color.contrast(df[:bg_rgb]).to_s if df[:bg_rgb]
|
141
|
+
contok = df[:bg_rgb] ? (df[:min_cont]..df[:max_cont]).include?( color.contrast(df[:bg_rgb]) ) : true
|
142
|
+
#puts "contok "+contok.to_s
|
143
|
+
brightok = (df[:min_bright]..df[:max_bright]).include?( color.to_hsl.brightness )
|
144
|
+
#puts "brightok "+brightok.to_s
|
145
|
+
end
|
146
|
+
|
147
|
+
cn = color.html
|
148
|
+
cn= cn.slice(1,cn.size)
|
149
|
+
return cn
|
150
|
+
end
|
151
|
+
|
152
|
+
def set_doc_colors
|
153
|
+
newopt = []
|
154
|
+
@@doc_color_keys.each do |o|
|
155
|
+
if o == "CARET_ROW_COLOR" then
|
156
|
+
@caret_row_color = randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>0.05,:max_cont => 0.08,:shade_of_grey=>false)
|
157
|
+
newopt << {:name=> o, :value => @caret_row_color }
|
158
|
+
elsif o.include?("SELECTION_BACKGROUND") then
|
159
|
+
@selection_background = randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>0.07,:max_cont => 0.09,:shade_of_grey=>false)
|
160
|
+
newopt << {:name=> o, :value => @selection_background }
|
161
|
+
elsif o.include?("SELECTION_FOREGROUND") then
|
162
|
+
newopt << {:name=> o }
|
163
|
+
elsif o.include?("GUTTER_BACKGROUND") then
|
164
|
+
newopt << {:name=> o, :value => @backgroundcolor }
|
165
|
+
elsif o.include?("CARET_COLOR") then
|
166
|
+
newopt << {:name=> o, :value => randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.30,:max_cont=>0.7,:shade_of_grey=>true) }
|
167
|
+
|
168
|
+
elsif o.include?("READONLY_BACKGROUND") then
|
169
|
+
newopt << {:name=> o, :value => randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.03,:max_cont=>0.09,:shade_of_grey=>@background_grey) }
|
170
|
+
elsif o.include?("READONLY_FRAGMENT_BACKGROUND") then
|
171
|
+
newopt << {:name=> o, :value => randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.03,:max_cont=>0.09,:shade_of_grey=>@background_grey) }
|
172
|
+
|
173
|
+
else
|
174
|
+
# puts "bgc"+@backgroundcolor
|
175
|
+
newopt << {:name=> o, :value => randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>@min_cont,:max_cont=>@max_cont,:shade_of_grey=>@background_grey).to_s }
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
@xmlout[:scheme][0][:colors][0][:option] = newopt
|
180
|
+
#Kernel.exit
|
181
|
+
end
|
182
|
+
|
183
|
+
def set_doc_options
|
184
|
+
newopt = []
|
185
|
+
newopt << {:name => "LINE_SPACING",:value=>'1.0' } #:value=>'1.3' works all right
|
186
|
+
newopt << {:name => "EDITOR_FONT_SIZE",:value => "16"} #:value = "14" is a safe default if you want to specify something
|
187
|
+
newopt << {:name => "EDITOR_FONT_NAME",:value => "DejaVu Sans Mono" }
|
188
|
+
@xmlout[:scheme][0][:option] = newopt
|
189
|
+
end
|
190
|
+
|
191
|
+
def set_element_colors
|
192
|
+
newopt = []
|
193
|
+
newopt[0]={:option=>[]}
|
194
|
+
################ set the fonttype
|
195
|
+
@@element_keys.each do |o|
|
196
|
+
fonttype = 0 #bold: 1, #italic: 2, bold & italic: 3
|
197
|
+
@bold_candidates.each do |bc|
|
198
|
+
if o.include? bc.to_s then
|
199
|
+
if rand < @bold_chance then fonttype = 1 end
|
200
|
+
end
|
201
|
+
end
|
202
|
+
@italic_candidates.each do |ic|
|
203
|
+
if o.include? ic.to_s then
|
204
|
+
if rand < @italic_chance then fonttype += 2 end
|
205
|
+
end
|
206
|
+
end
|
207
|
+
#this block is for setting up special cases for the new color - ie, comments darker,
|
208
|
+
#reserved words are yellowins, whatever
|
209
|
+
fonttype = "" unless fonttype.is_a? Fixnum
|
210
|
+
case
|
211
|
+
when o.include?( "COMMENT")
|
212
|
+
#comments -- this is done so that COMMENTED texts skew toward darker shades.
|
213
|
+
newcol = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.25, :max_cont => 0.27)
|
214
|
+
optblj=[{:option=>[ {:name => "FOREGROUND", :value => newcol},
|
215
|
+
# {:name => "BACKGROUND", :value =>@backgroundcolor},
|
216
|
+
{:name => "BACKGROUND"},
|
217
|
+
{:name => "EFFECT_COLOR" },{:name => "FONT_TYPE", :value=>fonttype.to_s },
|
218
|
+
{:name => "ERROR_STRIPE_COLOR", :value =>randcolor(:bg_rgb=>@backgroundcolor) }]}]
|
219
|
+
#default text and background for whole document
|
220
|
+
when ["TEXT","FOLDED_TEXT_ATTRIBUTES"].include?( o.to_s)
|
221
|
+
newcol = randcolor(:bg_rgb=>@backgroundcolor )
|
222
|
+
optblj=[{:option=>[ {:name => "FOREGROUND", :value => newcol},
|
223
|
+
{:name => "BACKGROUND", :value =>@backgroundcolor},
|
224
|
+
{:name => "EFFECT_COLOR" },{:name => "FONT_TYPE", :value=>fonttype.to_s },
|
225
|
+
{:name => "ERROR_STRIPE_COLOR", :value =>randcolor(:bg_rgb=>@backgroundcolor)}]}]
|
226
|
+
when @code_inspections.include?(o.to_s)
|
227
|
+
newcol = randcolor(:bg_rgb=>@backgroundcolor)
|
228
|
+
optblj=[{:option=>[ {:name => "FOREGROUND"},
|
229
|
+
{:name => "BACKGROUND"},
|
230
|
+
{:name => "EFFECT_COLOR", :value =>newcol},{:name => "FONT_TYPE", :value=>fonttype.to_s },
|
231
|
+
{:name => "EFFECT_TYPE", :value=>@unders.shuffle[0].to_s },
|
232
|
+
{:name => "ERROR_STRIPE_COLOR", :value =>randcolor(:bg_rgb=>@backgroundcolor) }]}]
|
233
|
+
when @cross_out.include?(o.to_s)
|
234
|
+
newcol = randcolor(:bg_rgb=>@backgroundcolor)
|
235
|
+
optblj=[{:option=>[ {:name => "FOREGROUND"},
|
236
|
+
{:name => "BACKGROUND"},
|
237
|
+
{:name => "EFFECT_COLOR", :value =>newcol},{:name => "FONT_TYPE", :value=>fonttype.to_s },
|
238
|
+
{:name => "EFFECT_TYPE", :value=>"3" },
|
239
|
+
{:name => "ERROR_STRIPE_COLOR", :value =>randcolor(:bg_rgb=>@backgroundcolor)}]}]
|
240
|
+
else
|
241
|
+
newcol=randcolor(:bg_rgb=>@backgroundcolor)
|
242
|
+
optblj=[{:option=>[ {:name => "FOREGROUND", :value => newcol},
|
243
|
+
{:name => "BACKGROUND"},
|
244
|
+
{:name => "EFFECT_COLOR" },{:name => "FONT_TYPE", :value=>fonttype.to_s },
|
245
|
+
{:name => "ERROR_STRIPE_COLOR", :value =>randcolor(:bg_rgb=>@backgroundcolor) }]}]
|
246
|
+
end
|
247
|
+
newopt[0][:option] << {:name =>o.to_s , :value=>optblj}
|
248
|
+
end
|
249
|
+
@xmlout[:scheme][0][:attributes] = newopt
|
250
|
+
end
|
251
|
+
|
252
|
+
def make_geany_files
|
253
|
+
rantm = randthemename
|
254
|
+
geanydir ="geany_"+rantm
|
255
|
+
Dir.mkdir(geanydir)
|
256
|
+
f=File.new(geanydir+"/filetypes.xml","w+")
|
257
|
+
f.puts('[styling]')
|
258
|
+
#these are for php, html, sgml, xml
|
259
|
+
@@geany_tokens.each do |t|
|
260
|
+
# foreground;background;bold;italic
|
261
|
+
if t.upcase.include? "COMMENT" then
|
262
|
+
f.puts(t+"=0x"+randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>0.12, :max_cont=>0.22)+";0x"+@backgroundcolor+";"+"false;false")
|
263
|
+
else
|
264
|
+
f.puts(t+"=0x"+randcolor(:bg_rgb=>@backgroundcolor)+";0x"+@backgroundcolor+";false"+";false")
|
265
|
+
end
|
266
|
+
end
|
267
|
+
f.puts(@@geany_filetypes_post)
|
268
|
+
f.close
|
269
|
+
|
270
|
+
geanydir ="geany_"+rantm
|
271
|
+
f=File.new(geanydir+"/filetypes.ruby","w+")
|
272
|
+
f.puts('[styling]')
|
273
|
+
@@geany_ruby_tokens.each do |t|
|
274
|
+
# foreground;background;bold;italic
|
275
|
+
if t.upcase.include? "COMMENT" then
|
276
|
+
f.puts(t+"=0x"+randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>0.12, :max_cont=>0.22)+";0x"+@backgroundcolor+";"+"false;false")
|
277
|
+
else
|
278
|
+
f.puts(t+"=0x"+randcolor(:bg_rgb=>@backgroundcolor)+";0x"+@backgroundcolor+";false"+";false")
|
279
|
+
end
|
280
|
+
end
|
281
|
+
f.puts(@@geany_filetypes_post)
|
282
|
+
f.close
|
283
|
+
end
|
284
|
+
|
285
|
+
def make_theme_files
|
286
|
+
# @default_fg = @backgroundcolor
|
287
|
+
# puts "backgroundcolor = "+@backgroundcolor
|
288
|
+
@iterations.times do
|
289
|
+
@backgroundcolor= randcolor(:shade_of_grey=>@background_grey, :max_bright=>@background_max_brightness)# "0"
|
290
|
+
@schemename = randthemename
|
291
|
+
@xmlout = {:scheme=>
|
292
|
+
[{:name => @schemename,:version=>@schemeversion,:parent_scheme=>"Default",
|
293
|
+
:option =>[{:name=>"pencil length",:value=>"48 cm"},{:name => "Doowop level", :value=>"medium"}],
|
294
|
+
:colors => [{ :option => [{:name=>"foreground",:value => "yellow"},{:name=>"background",:value => "black"} ] }],
|
295
|
+
:attributes => [{:option=>[
|
296
|
+
{:name=>"2ABSTRACT_CLASS_NAME_ATTRIBUTES", :value=>[{:option=>{:name=>"foreground",:value=>"red"}}] },
|
297
|
+
{:name=>"4ABSTRACT_CLASS_NAME_ATTRIBUTES", :value=>[{:option=>{:name=>"foreground",:value=>"red"}}] }
|
298
|
+
]
|
299
|
+
}]
|
300
|
+
}]
|
301
|
+
}
|
302
|
+
@savefile = randfilename(@schemename)
|
303
|
+
@outf = File.new(@savefile, "w+")
|
304
|
+
|
305
|
+
set_doc_options
|
306
|
+
set_doc_colors
|
307
|
+
set_element_colors
|
308
|
+
# @outf.puts @@mybanner
|
309
|
+
XmlSimple.xml_out(@xmlout,{:keeproot=>true,:xmldeclaration=>true,:outputfile=> @outf, :rootname => "scheme"})
|
310
|
+
puts "outputting to file "+@savefile
|
311
|
+
@outf.close
|
312
|
+
# puts "making geany directory "+make_geany_files.to_s
|
313
|
+
end
|
314
|
+
end
|
315
|
+
|
316
|
+
|
317
|
+
end #class
|
318
|
+
end #module
|
319
|
+
|
320
|
+
l = RMThemeGen::ThemeGenerator.new
|
321
|
+
l.make_theme_files
|
data/lib/rmthemegen/version.rb
CHANGED
data/rmthemegen.gemspec
CHANGED
metadata
CHANGED
@@ -1,8 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rmthemegen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 19
|
4
5
|
prerelease:
|
5
|
-
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 6
|
10
|
+
version: 0.0.6
|
6
11
|
platform: ruby
|
7
12
|
authors:
|
8
13
|
- David Heitzman
|
@@ -10,7 +15,7 @@ autorequire:
|
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
17
|
|
13
|
-
date: 2011-05-
|
18
|
+
date: 2011-05-08 00:00:00 -05:00
|
14
19
|
default_executable:
|
15
20
|
dependencies: []
|
16
21
|
|
@@ -30,11 +35,15 @@ files:
|
|
30
35
|
- Rakefile
|
31
36
|
- lib/rmthemegen.rb
|
32
37
|
- lib/rmthemegen/geany_fix.rb
|
38
|
+
- lib/rmthemegen/index.html
|
33
39
|
- lib/rmthemegen/rgb_contrast_methods.rb
|
40
|
+
- lib/rmthemegen/rgb_contrast_test.rb
|
34
41
|
- lib/rmthemegen/rmthemegen.rb
|
42
|
+
- lib/rmthemegen/rmthemegen_187.rb
|
35
43
|
- lib/rmthemegen/token_list.rb
|
36
44
|
- lib/rmthemegen/version.rb
|
37
45
|
- rmthemegen.gemspec
|
46
|
+
- test/rmthemegen_spec.rb
|
38
47
|
has_rdoc: true
|
39
48
|
homepage: http://aptifuge.com
|
40
49
|
licenses: []
|
@@ -49,17 +58,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
49
58
|
requirements:
|
50
59
|
- - ">="
|
51
60
|
- !ruby/object:Gem::Version
|
61
|
+
hash: 3
|
62
|
+
segments:
|
63
|
+
- 0
|
52
64
|
version: "0"
|
53
65
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
54
66
|
none: false
|
55
67
|
requirements:
|
56
68
|
- - ">="
|
57
69
|
- !ruby/object:Gem::Version
|
70
|
+
hash: 3
|
71
|
+
segments:
|
72
|
+
- 0
|
58
73
|
version: "0"
|
59
74
|
requirements: []
|
60
75
|
|
61
76
|
rubyforge_project: rmthemegen
|
62
|
-
rubygems_version: 1.
|
77
|
+
rubygems_version: 1.6.2
|
63
78
|
signing_key:
|
64
79
|
specification_version: 3
|
65
80
|
summary: Generates RubyMine >= 3.0 editor color themes
|