Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
殷洪(管理员)
/
raphael
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Registry
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
e41b27fb
authored
Dec 18, 2008
by
Dmitry Baranovskiy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix packaging parameters for packed version
parent
6b5bc48c
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
2 additions
and
7 deletions
+2
-7
raphael-packed.js
+2
-7
No files found.
raphael-packed.js
View file @
e41b27fb
/*
* Raphael 0.5.10 - JavaScript Vector Library
*
* Copyright (c) 2008 Dmitry Baranovskiy (raphaeljs.com)
* Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
*/
var
Raphael
=
(
function
(
q
){
var
r
=
function
(){
return
r
.
_create
.
apply
(
r
,
arguments
)};
r
.
version
=
"0.5.10"
;
r
.
type
=
q
;
var
C
=
{};
function
Matrix
(
a
,
b
,
c
,
d
,
e
,
f
){
this
.
m
=
[[
a
||
1
,
b
||
0
,
0
],[
c
||
0
,
d
||
1
,
0
],[
e
||
0
,
f
||
0
,
1
]]}
C
.
_getX
=
C
.
_getY
=
C
.
_getW
=
C
.
_getH
=
function
(
x
){
return
x
};
if
(
q
==
"VML"
){
Matrix
.
prototype
.
toString
=
function
(){
return
"progid:DXImageTransform.Microsoft.Matrix(M11="
+
this
.
m
[
0
][
0
]
+
", M12="
+
this
.
m
[
1
][
0
]
+
", M21="
+
this
.
m
[
0
][
1
]
+
", M22="
+
this
.
m
[
1
][
1
]
+
", Dx="
+
this
.
m
[
2
][
0
]
+
", Dy="
+
this
.
m
[
2
][
1
]
+
", sizingmethod='auto expand', filtertype='bilinear')"
};
var
t
=
function
(
j
,
l
,
m
){
var
g
=
document
.
createElement
(
"rvml:group"
),
gl
=
g
.
style
;
gl
.
position
=
"absolute"
;
gl
.
left
=
0
;
gl
.
top
=
0
;
gl
.
width
=
m
.
width
+
"px"
;
gl
.
height
=
m
.
height
+
"px"
;
var
n
=
document
.
createElement
(
"rvml:shape"
),
ol
=
n
.
style
;
ol
.
width
=
m
.
width
+
"px"
;
ol
.
height
=
m
.
height
+
"px"
;
n
.
path
=
""
;
if
(
j
[
"class"
]){
n
.
className
=
j
[
"class"
]}
n
.
coordsize
=
this
.
coordsize
;
n
.
coordorigin
=
this
.
coordorigin
;
g
.
appendChild
(
n
);
m
.
canvas
.
appendChild
(
g
);
var
p
=
new
z
(
n
,
g
,
m
);
u
(
p
,
j
);
if
(
j
.
gradient
){
v
(
p
,
j
.
gradient
)}
p
.
isAbsolute
=
true
;
p
.
type
=
"path"
;
p
.
path
=
[];
p
.
last
=
{
x
:
0
,
y
:
0
,
bx
:
0
,
by
:
0
,
isAbsolute
:
true
};
p
.
Path
=
""
;
p
.
absolutely
=
function
(){
this
.
isAbsolute
=
true
;
return
this
};
p
.
relatively
=
function
(){
this
.
isAbsolute
=
false
;
return
this
};
p
.
redraw
=
function
(){
this
.
Path
=
""
;
var
a
=
this
.
path
;
this
.
path
=
[];
for
(
var
i
=
0
,
ii
=
a
.
length
;
i
<
ii
;
i
++
){
if
(
a
[
i
].
type
!=
"end"
){
this
[
a
[
i
].
type
+
"To"
].
apply
(
this
,
a
[
i
].
arg
)}
else
{
this
.
andClose
()}}
return
this
};
p
.
moveTo
=
function
(
x
,
y
){
var
d
=
this
.
isAbsolute
?
"m"
:
"t"
;
var
a
=
this
.
isAbsolute
?
m
.
_getX
:
m
.
_getW
;
var
b
=
this
.
isAbsolute
?
m
.
_getY
:
m
.
_getH
;
d
+=
Math
.
round
(
a
(
parseFloat
(
x
,
10
)))
+
" "
+
Math
.
round
(
b
(
parseFloat
(
y
,
10
)));
this
[
0
].
path
=
this
.
Path
+=
d
;
this
.
last
.
x
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
x
)
+
a
(
parseFloat
(
x
,
10
));
this
.
last
.
y
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
y
)
+
b
(
parseFloat
(
y
,
10
));
this
.
last
.
isAbsolute
=
this
.
isAbsolute
;
this
.
path
.
push
({
type
:
"move"
,
arg
:[].
slice
.
call
(
arguments
,
0
),
pos
:
this
.
isAbsolute
});
return
this
};
p
.
lineTo
=
function
(
x
,
y
){
var
d
=
this
.
isAbsolute
?
"l"
:
"r"
;
var
a
=
this
.
isAbsolute
?
m
.
_getX
:
m
.
_getW
;
var
b
=
this
.
isAbsolute
?
m
.
_getY
:
m
.
_getH
;
d
+=
Math
.
round
(
a
(
parseFloat
(
x
,
10
)))
+
" "
+
Math
.
round
(
b
(
parseFloat
(
y
,
10
)));
this
[
0
].
path
=
this
.
Path
+=
d
;
this
.
last
.
x
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
x
)
+
a
(
parseFloat
(
x
,
10
));
this
.
last
.
y
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
y
)
+
b
(
parseFloat
(
y
,
10
));
this
.
last
.
isAbsolute
=
this
.
isAbsolute
;
this
.
path
.
push
({
type
:
"line"
,
arg
:[].
slice
.
call
(
arguments
,
0
),
pos
:
this
.
isAbsolute
});
return
this
};
p
.
arcTo
=
function
(
a
,
b
,
c
,
e
,
f
,
g
){
f
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
x
)
+
f
;
g
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
y
)
+
g
;
var
h
=
this
.
last
.
x
,
y1
=
this
.
last
.
y
,
x
=
(
h
-
f
)
/
2
,
y
=
(
y1
-
g
)
/
2
,
k
=
(
c
==
e
?
-
1
:
1
)
*
Math
.
sqrt
((
a
*
a
*
b
*
b
-
a
*
a
*
y
*
y
-
b
*
b
*
x
*
x
)
/
(
a
*
a
*
y
*
y
+
b
*
b
*
x
*
x
)),
cx
=
k
*
a
*
y
/
b
+
(
h
+
f
)
/
2
,
cy
=
k
*-
b
*
x
/
a
+
(
y1
+
g
)
/
2
,
d
=
e
?(
this
.
isAbsolute
?
"wa"
:
"wr"
):(
this
.
isAbsolute
?
"at"
:
"ar"
),
_getX
=
this
.
isAbsolute
?
m
.
_getX
:
m
.
_getW
,
_getY
=
this
.
isAbsolute
?
m
.
_getY
:
m
.
_getH
,
left
=
Math
.
round
(
cx
-
a
),
top
=
Math
.
round
(
cy
-
b
);
d
+=
[
left
,
top
,
Math
.
round
(
left
+
a
*
2
),
Math
.
round
(
top
+
b
*
2
),
Math
.
round
(
h
),
Math
.
round
(
y1
),
Math
.
round
(
_getX
(
parseFloat
(
f
,
10
))),
Math
.
round
(
_getX
(
parseFloat
(
g
,
10
)))].
join
(
", "
);
this
[
0
].
path
=
this
.
Path
+=
d
;
this
.
last
.
x
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
x
)
+
_getX
(
parseFloat
(
f
,
10
));
this
.
last
.
y
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
y
)
+
_getY
(
parseFloat
(
g
,
10
));
this
.
last
.
isAbsolute
=
this
.
isAbsolute
;
this
.
path
.
push
({
type
:
"arc"
,
arg
:[].
slice
.
call
(
arguments
,
0
),
pos
:
this
.
isAbsolute
});
return
this
};
p
.
cplineTo
=
function
(
a
,
b
,
c
){
if
(
!
c
){
return
this
.
lineTo
(
a
,
b
)}
else
{
var
p
=
{};
p
.
_getX
=
this
.
isAbsolute
?
m
.
_getX
:
m
.
_getW
;
p
.
_getY
=
this
.
isAbsolute
?
m
.
_getY
:
m
.
_getH
;
var
x
=
Math
.
round
(
p
.
_getX
(
Math
.
round
(
parseFloat
(
a
,
10
)
*
100
)
/
100
));
var
y
=
Math
.
round
(
p
.
_getY
(
Math
.
round
(
parseFloat
(
b
,
10
)
*
100
)
/
100
));
var
w
=
Math
.
round
(
m
.
_getW
(
Math
.
round
(
parseFloat
(
c
,
10
)
*
100
)
/
100
));
var
d
=
this
.
isAbsolute
?
"c"
:
"v"
;
var
e
=
[
Math
.
round
(
this
.
last
.
x
)
+
w
,
Math
.
round
(
this
.
last
.
y
),
x
-
w
,
y
,
x
,
y
];
d
+=
e
.
join
(
" "
)
+
" "
;
this
.
last
.
x
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
x
)
+
e
[
4
];
this
.
last
.
y
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
y
)
+
e
[
5
];
this
.
last
.
bx
=
e
[
2
];
this
.
last
.
by
=
e
[
3
];
this
[
0
].
path
=
this
.
Path
+=
d
;
this
.
path
.
push
({
type
:
"cpline"
,
arg
:[].
slice
.
call
(
arguments
,
0
),
pos
:
this
.
isAbsolute
});
return
this
}};
p
.
curveTo
=
function
(){
var
d
=
this
.
isAbsolute
?
"c"
:
"v"
;
var
a
=
this
.
isAbsolute
?
m
.
_getX
:
m
.
_getW
;
var
b
=
this
.
isAbsolute
?
m
.
_getY
:
m
.
_getH
;
if
(
arguments
.
length
==
6
){
this
.
last
.
bx
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
x
)
+
a
(
parseFloat
(
arguments
[
2
],
10
));
this
.
last
.
by
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
y
)
+
b
(
parseFloat
(
arguments
[
3
],
10
));
this
.
last
.
x
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
x
)
+
a
(
parseFloat
(
arguments
[
4
],
10
));
this
.
last
.
y
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
y
)
+
b
(
parseFloat
(
arguments
[
5
],
10
));
d
+=
Math
.
round
(
a
(
parseFloat
(
arguments
[
0
],
10
)))
+
" "
+
Math
.
round
(
b
(
parseFloat
(
arguments
[
1
],
10
)))
+
" "
+
Math
.
round
(
a
(
parseFloat
(
arguments
[
2
],
10
)))
+
" "
+
Math
.
round
(
b
(
parseFloat
(
arguments
[
3
],
10
)))
+
" "
+
Math
.
round
(
a
(
parseFloat
(
arguments
[
4
],
10
)))
+
" "
+
Math
.
round
(
b
(
parseFloat
(
arguments
[
5
],
10
)))
+
" "
;
this
.
last
.
isAbsolute
=
this
.
isAbsolute
}
if
(
arguments
.
length
==
4
){
var
c
=
this
.
last
.
x
*
2
-
this
.
last
.
bx
;
var
e
=
this
.
last
.
y
*
2
-
this
.
last
.
by
;
this
.
last
.
bx
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
x
)
+
a
(
parseFloat
(
arguments
[
0
],
10
));
this
.
last
.
by
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
y
)
+
b
(
parseFloat
(
arguments
[
1
],
10
));
this
.
last
.
x
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
x
)
+
a
(
parseFloat
(
arguments
[
2
],
10
));
this
.
last
.
y
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
y
)
+
b
(
parseFloat
(
arguments
[
3
],
10
));
d
+=
[
Math
.
round
(
c
),
Math
.
round
(
e
),
Math
.
round
(
a
(
parseFloat
(
arguments
[
0
],
10
))),
Math
.
round
(
b
(
parseFloat
(
arguments
[
1
],
10
))),
Math
.
round
(
a
(
parseFloat
(
arguments
[
2
],
10
))),
Math
.
round
(
b
(
parseFloat
(
arguments
[
3
],
10
)))].
join
(
" "
)}
this
[
0
].
path
=
this
.
Path
+=
d
;
this
.
path
.
push
({
type
:
"curve"
,
arg
:[].
slice
.
call
(
arguments
,
0
),
pos
:
this
.
isAbsolute
});
return
this
};
p
.
addRoundedCorner
=
function
(
r
,
a
){
var
R
=
.
5522
*
r
,
rollback
=
this
.
isAbsolute
,
o
=
this
;
if
(
rollback
){
this
.
relatively
();
rollback
=
function
(){
o
.
absolutely
()}}
else
{
rollback
=
function
(){}}
var
b
=
{
l
:
function
(){
return
{
u
:
function
(){
o
.
curveTo
(
-
R
,
0
,
-
r
,
-
(
r
-
R
),
-
r
,
-
r
)},
d
:
function
(){
o
.
curveTo
(
-
R
,
0
,
-
r
,
r
-
R
,
-
r
,
r
)}}},
r
:
function
(){
return
{
u
:
function
(){
o
.
curveTo
(
R
,
0
,
r
,
-
(
r
-
R
),
r
,
-
r
)},
d
:
function
(){
o
.
curveTo
(
R
,
0
,
r
,
r
-
R
,
r
,
r
)}}},
u
:
function
(){
return
{
r
:
function
(){
o
.
curveTo
(
0
,
-
R
,
-
(
R
-
r
),
-
r
,
r
,
-
r
)},
l
:
function
(){
o
.
curveTo
(
0
,
-
R
,
R
-
r
,
-
r
,
-
r
,
-
r
)}}},
d
:
function
(){
return
{
r
:
function
(){
o
.
curveTo
(
0
,
R
,
-
(
R
-
r
),
r
,
r
,
r
)},
l
:
function
(){
o
.
curveTo
(
0
,
R
,
R
-
r
,
r
,
-
r
,
r
)}}}};
b
[
a
.
charAt
(
0
)]()[
a
.
charAt
(
1
)]();
rollback
();
return
o
};
p
.
andClose
=
function
(){
this
[
0
].
path
=
(
this
.
Path
+=
"x e"
);
return
this
};
if
(
typeof
l
==
"string"
){
p
.
absolutely
();
C
.
pathfinder
(
p
,
l
)}
return
p
};
var
u
=
function
(
o
,
a
){
var
s
=
o
[
0
].
style
;
o
.
attrs
=
o
.
attrs
||
{};
for
(
var
b
in
a
){
o
.
attrs
[
b
]
=
a
[
b
]}
a
[
"font-family"
]
&&
(
s
.
fontFamily
=
a
[
"font-family"
]);
a
[
"font-size"
]
&&
(
s
.
fontSize
=
a
[
"font-size"
]);
a
[
"font"
]
&&
(
s
.
font
=
a
[
"font"
]);
a
[
"font-weight"
]
&&
(
s
.
fontWeight
=
a
[
"font-weight"
]);
if
(
typeof
a
.
opacity
!=
"undefined"
||
typeof
a
[
"stroke-width"
]
!=
"undefined"
||
typeof
a
.
fill
!=
"undefined"
||
typeof
a
.
stroke
!=
"undefined"
){
o
=
o
.
shape
||
o
[
0
];
var
c
=
(
o
.
getElementsByTagName
(
"fill"
)
&&
o
.
getElementsByTagName
(
"fill"
)[
0
])
||
document
.
createElement
(
"rvml:fill"
);
if
(
"fill-opacity"
in
a
||
"opacity"
in
a
){
c
.
opacity
=
((
a
[
"fill-opacity"
]
+
1
||
2
)
-
1
)
*
((
a
.
opacity
+
1
||
2
)
-
1
)}
if
(
a
.
fill
){
c
.
on
=
true
}
if
(
c
.
on
==
undefined
||
a
.
fill
==
"none"
){
c
.
on
=
false
}
if
(
c
.
on
&&
a
.
fill
){
c
.
color
=
a
.
fill
}
o
.
appendChild
(
c
);
var
d
=
(
o
.
getElementsByTagName
(
"stroke"
)
&&
o
.
getElementsByTagName
(
"stroke"
)[
0
])
||
document
.
createElement
(
"rvml:stroke"
);
if
((
a
.
stroke
&&
a
.
stroke
!=
"none"
)
||
a
[
"stroke-width"
]
||
a
[
"stroke-opacity"
]
||
a
[
"stroke-dasharray"
]){
d
.
on
=
true
}
if
(
a
.
stroke
==
"none"
||
typeof
d
.
on
==
"undefined"
){
d
.
on
=
false
}
if
(
d
.
on
&&
a
.
stroke
){
d
.
color
=
a
.
stroke
}
d
.
opacity
=
((
a
[
"stroke-opacity"
]
+
1
||
2
)
-
1
)
*
((
a
.
opacity
+
1
||
2
)
-
1
);
a
[
"stroke-linejoin"
]
&&
(
d
.
joinstyle
=
a
[
"stroke-linejoin"
]
||
"miter"
);
d
.
miterlimit
=
a
[
"stroke-miterlimit"
]
||
8
;
a
[
"stroke-linecap"
]
&&
(
d
.
endcap
=
{
butt
:
"flat"
,
square
:
"square"
,
round
:
"round"
}[
a
[
"stroke-linecap"
]]
||
"miter"
);
a
[
"stroke-width"
]
&&
(
d
.
weight
=
(
parseFloat
(
a
[
"stroke-width"
],
10
)
||
1
)
*
12
/
16
);
if
(
a
[
"stroke-dasharray"
]){
var
e
=
a
[
"stroke-dasharray"
].
replace
(
" "
,
","
).
split
(
","
),
dashesn
=
[],
str
=
d
.
weight
;
for
(
var
i
=
0
,
ii
=
e
.
length
;
i
<
ii
;
i
++
){
var
f
=
e
[
i
]
/
str
;
if
(
!
isNaN
(
f
)){
dashesn
.
push
(
f
)}};
d
.
dashstyle
=
dashesn
.
join
(
" "
)}
o
.
appendChild
(
d
)}};
var
v
=
function
(
o
,
a
){
o
.
attrs
=
o
.
attrs
||
{};
o
.
attrs
.
gradient
=
a
;
o
=
o
.
shape
||
o
[
0
];
var
b
=
o
.
getElementsByTagName
(
"fill"
);
if
(
b
.
length
){
b
=
b
[
0
]}
else
{
b
=
document
.
createElement
(
"rvml:fill"
)}
if
(
a
.
dots
.
length
){
b
.
on
=
true
;
b
.
type
=
(
a
.
type
.
toLowerCase
()
==
"linear"
)?
"gradient"
:
"gradientradial"
;
if
(
typeof
a
.
dots
[
0
].
color
!=
"undefined"
){
b
.
color
=
a
.
dots
[
0
].
color
||
"#000"
}
if
(
typeof
a
.
dots
[
0
].
opacity
!=
"undefined"
){
b
.
opacity
=
a
.
dots
[
0
].
opacity
}
if
(
typeof
a
.
dots
[
a
.
dots
.
length
-
1
].
opacity
!=
"undefined"
){
b
.
opacity2
=
a
.
dots
[
a
.
dots
.
length
-
1
].
opacity
}
if
(
typeof
a
.
dots
[
a
.
dots
.
length
-
1
].
color
!=
"undefined"
){
b
.
color2
=
a
.
dots
[
a
.
dots
.
length
-
1
].
color
||
"#000"
}
var
c
=
""
;
for
(
var
i
=
1
,
ii
=
a
.
dots
.
length
-
1
;
i
<
ii
;
i
++
){
c
+=
a
.
dots
[
i
].
offset
+
" "
+
a
.
dots
[
i
].
color
;
if
(
i
!=
ii
-
1
){
c
+=
","
}};
if
(
c
){
b
.
colors
=
c
}
if
(
a
.
vector
){
var
d
=
Math
.
round
(
Math
.
atan
((
parseInt
(
a
.
vector
[
3
],
10
)
-
parseInt
(
a
.
vector
[
1
],
10
))
/
(
parseInt
(
a
.
vector
[
2
],
10
)
-
parseInt
(
a
.
vector
[
0
],
10
)))
*
57.29
)
+
180
;
b
.
angle
=
d
+
90
}
if
(
a
.
type
.
toLowerCase
()
==
"radial"
){
b
.
focusposition
=
"0.5, 0.5"
;
b
.
focussize
=
"0, 0"
;
b
.
method
=
"none"
}}};
var
z
=
function
(
b
,
c
,
d
){
var
e
=
0
,
RotX
=
0
,
RotY
=
0
,
Scale
=
1
;
this
[
0
]
=
b
;
this
.
node
=
b
;
this
.
X
=
0
;
this
.
Y
=
0
;
this
.
attrs
=
{};
this
.
Group
=
c
;
this
.
vml
=
d
;
this
.
rotate
=
function
(
a
){
if
(
a
==
undefined
){
return
e
}
e
+=
a
;
this
.
Group
.
style
.
rotation
=
e
;
return
this
}};
z
.
prototype
.
setBox
=
function
(
a
){
var
b
=
this
.
Group
.
style
,
os
=
this
[
0
].
style
;
for
(
var
i
in
a
){
this
.
attrs
[
i
]
=
a
[
i
]}
var
c
=
this
.
attrs
,
x
,
y
,
w
,
h
;
switch
(
this
.
type
){
case
"circle"
:
x
=
c
.
cx
-
c
.
r
;
y
=
c
.
cy
-
c
.
r
;
w
=
h
=
c
.
r
*
2
;
break
;
case
"ellipse"
:
x
=
c
.
cx
-
c
.
rx
;
y
=
c
.
cy
-
c
.
ry
;
w
=
c
.
rx
*
2
;
h
=
c
.
ry
*
2
;
break
;
case
"rect"
:
case
"image"
:
x
=
c
.
x
;
y
=
c
.
y
;
w
=
c
.
w
;
h
=
c
.
h
;
break
;
case
"text"
:
this
.
textpath
.
v
=
[
"m"
,
Math
.
round
(
c
.
x
),
", "
,
Math
.
round
(
c
.
y
-
2
),
"l"
,
Math
.
round
(
c
.
x
)
+
1
,
", "
,
Math
.
round
(
c
.
y
-
2
)].
join
(
""
);
return
;
default
:
return
}
var
d
=
this
.
vml
.
width
/
2
-
w
/
2
,
top
=
this
.
vml
.
height
/
2
-
h
/
2
;
b
.
position
=
"absolute"
;
b
.
left
=
x
-
d
+
"px"
;
b
.
top
=
y
-
top
+
"px"
;
this
.
X
=
x
-
d
;
this
.
Y
=
y
-
top
;
this
.
W
=
w
;
this
.
H
=
h
;
b
.
width
=
this
.
vml
.
width
+
"px"
;
b
.
height
=
this
.
vml
.
height
+
"px"
;
os
.
position
=
"absolute"
;
os
.
top
=
top
+
"px"
;
os
.
left
=
d
+
"px"
;
os
.
width
=
w
+
"px"
;
os
.
height
=
h
+
"px"
};
z
.
prototype
.
hide
=
function
(){
this
.
Group
.
style
.
display
=
"none"
;
return
this
};
z
.
prototype
.
show
=
function
(){
this
.
Group
.
style
.
display
=
"block"
;
return
this
};
z
.
prototype
.
translate
=
function
(
x
,
y
){
if
(
x
==
undefined
&&
y
==
undefined
){
return
{
x
:
this
.
X
,
y
:
this
.
Y
}}
this
.
X
+=
x
;
this
.
Y
+=
y
;
this
.
Group
.
style
.
left
=
this
.
X
+
"px"
;
this
.
Group
.
style
.
top
=
this
.
Y
+
"px"
;
return
this
};
z
.
prototype
.
matrix
=
function
(
a
,
b
,
c
,
d
,
e
,
f
){
tMatrix
=
new
Matrix
(
a
,
b
,
c
,
d
,
e
,
f
);
this
.
Group
.
style
.
filter
=
tMatrix
;
return
this
};
z
.
prototype
.
scale
=
function
(
x
,
y
){
if
(
x
==
undefined
&&
y
==
undefined
){
return
}
y
=
y
||
x
;
if
(
x
!=
0
&&!
(
x
==
1
&&
y
==
1
)){
var
a
=
Math
.
round
(
x
/
Math
.
abs
(
x
)),
diry
=
Math
.
round
(
y
/
Math
.
abs
(
y
)),
s
=
this
[
0
].
style
;
if
(
a
!=
1
||
diry
!=
1
){
s
.
filter
=
new
Matrix
(
a
,
0
,
0
,
diry
,
0
,
0
)}
var
b
=
parseInt
(
s
.
width
,
10
)
*
x
*
a
;
var
c
=
parseInt
(
s
.
height
,
10
)
*
y
*
diry
;
var
d
=
parseInt
(
s
.
left
,
10
);
var
e
=
parseInt
(
s
.
top
,
10
);
s
.
left
=
this
.
X
=
d
+
this
.
W
/
2
-
b
/
2
;
s
.
top
=
this
.
Y
=
e
+
this
.
H
/
2
-
c
/
2
;
s
.
width
=
this
.
W
=
b
;
s
.
height
=
this
.
H
=
c
}
return
this
};
z
.
prototype
.
getBBox
=
function
(){
return
{
x
:
this
.
Group
.
offsetLeft
,
y
:
this
.
Group
.
offsetTop
,
width
:
this
.
Group
.
offsetWidth
,
height
:
this
.
Group
.
offsetHeight
}};
z
.
prototype
.
remove
=
function
(){
this
[
0
].
parentNode
.
removeChild
(
this
[
0
]);
this
.
Group
.
parentNode
.
removeChild
(
this
.
Group
);
this
.
shape
&&
this
.
shape
.
parentNode
.
removeChild
(
this
.
shape
)};
z
.
prototype
.
attr
=
function
(){
if
(
arguments
.
length
==
1
&&
typeof
arguments
[
0
]
==
"string"
){
return
this
.
attrs
[
arguments
[
0
]]}
if
(
this
.
attrs
&&
arguments
.
length
==
1
&&
arguments
[
0
]
instanceof
Array
){
var
a
=
{};
for
(
var
i
=
0
,
ii
=
arguments
[
0
].
length
;
i
<
ii
;
i
++
){
a
[
arguments
[
0
][
i
]]
=
this
.
attrs
[
arguments
[
0
][
i
]]};
return
a
}
if
(
this
[
0
].
tagName
.
toLowerCase
()
==
"group"
){
var
b
=
this
[
0
].
childNodes
;
this
.
attrs
=
this
.
attrs
||
{};
if
(
arguments
.
length
==
2
){
this
.
attrs
[
arguments
[
0
]]
=
arguments
[
1
]}
else
if
(
arguments
.
length
==
1
||
typeof
arguments
[
0
]
==
"object"
){
for
(
var
j
in
arguments
[
0
]){
this
.
attrs
[
j
]
=
arguments
[
0
][
j
]}}
for
(
var
i
=
0
,
ii
=
b
.
length
;
i
<
ii
;
i
++
){
this
.
attr
.
apply
(
new
item
(
b
[
i
],
this
[
0
],
this
.
vml
),
arguments
)}}
else
{
var
c
;
if
(
arguments
.
length
==
2
){
c
=
{};
c
[
arguments
[
0
]]
=
arguments
[
1
]}
if
(
arguments
.
length
==
1
&&
typeof
arguments
[
0
]
==
"object"
){
c
=
arguments
[
0
]}
if
(
c
){
u
(
this
,
c
);
this
.
setBox
(
c
);
if
(
c
.
gradient
){
v
(
this
,
c
.
gradient
)}
if
(
c
.
text
&&
this
.
type
==
"text"
){
this
[
0
].
string
=
c
.
text
}
if
(
c
.
id
){
this
[
0
].
id
=
c
.
id
}}}
return
this
};
z
.
prototype
.
toFront
=
function
(){
this
.
Group
.
parentNode
.
appendChild
(
this
.
Group
);
return
this
};
z
.
prototype
.
toBack
=
function
(){
if
(
this
.
Group
.
parentNode
.
firstChild
!=
this
.
Group
){
this
.
Group
.
parentNode
.
insertBefore
(
this
.
Group
,
this
.
Group
.
parentNode
.
firstChild
)}
return
this
};
var
A
=
function
(
a
,
x
,
y
,
r
){
var
g
=
document
.
createElement
(
"rvml:group"
);
var
o
=
document
.
createElement
(
"rvml:oval"
);
g
.
appendChild
(
o
);
a
.
canvas
.
appendChild
(
g
);
var
b
=
new
z
(
o
,
g
,
a
);
u
(
b
,{
stroke
:
"#000"
,
fill
:
"none"
});
b
.
setBox
({
x
:
x
-
r
,
y
:
y
-
r
,
w
:
r
*
2
,
h
:
r
*
2
});
b
.
attrs
.
cx
=
x
;
b
.
attrs
.
cy
=
y
;
b
.
attrs
.
r
=
r
;
b
.
type
=
"circle"
;
return
b
};
var
B
=
function
(
a
,
x
,
y
,
w
,
h
,
r
){
var
g
=
document
.
createElement
(
"rvml:group"
);
var
o
=
document
.
createElement
(
r
?
"rvml:roundrect"
:
"rvml:rect"
);
if
(
r
){
o
.
arcsize
=
r
/
(
Math
.
min
(
w
,
h
))}
g
.
appendChild
(
o
);
a
.
canvas
.
appendChild
(
g
);
var
b
=
new
z
(
o
,
g
,
a
);
u
(
b
,{
stroke
:
"#000"
});
b
.
setBox
({
x
:
x
,
y
:
y
,
w
:
w
,
h
:
h
});
b
.
attrs
.
x
=
x
;
b
.
attrs
.
y
=
y
;
b
.
attrs
.
w
=
w
;
b
.
attrs
.
h
=
h
;
b
.
attrs
.
r
=
r
;
b
.
type
=
"rect"
;
return
b
};
var
D
=
function
(
a
,
x
,
y
,
b
,
c
){
var
g
=
document
.
createElement
(
"rvml:group"
);
var
o
=
document
.
createElement
(
"rvml:oval"
);
g
.
appendChild
(
o
);
a
.
canvas
.
appendChild
(
g
);
var
d
=
new
z
(
o
,
g
,
a
);
u
(
d
,{
stroke
:
"#000"
});
d
.
setBox
({
x
:
x
-
b
,
y
:
y
-
c
,
w
:
b
*
2
,
h
:
c
*
2
});
d
.
attrs
.
cx
=
x
;
d
.
attrs
.
cy
=
y
;
d
.
attrs
.
rx
=
b
;
d
.
attrs
.
ry
=
c
;
d
.
type
=
"ellipse"
;
return
d
};
var
E
=
function
(
a
,
b
,
x
,
y
,
w
,
h
){
var
g
=
document
.
createElement
(
"rvml:group"
);
var
o
=
document
.
createElement
(
"rvml:image"
);
o
.
src
=
b
;
g
.
appendChild
(
o
);
a
.
canvas
.
appendChild
(
g
);
var
c
=
new
z
(
o
,
g
,
a
);
c
.
type
=
"image"
;
c
.
setBox
({
x
:
x
,
y
:
y
,
w
:
w
,
h
:
h
});
c
.
attrs
.
x
=
x
;
c
.
attrs
.
y
=
y
;
c
.
attrs
.
w
=
w
;
c
.
attrs
.
h
=
h
;
return
c
};
var
F
=
function
(
a
,
x
,
y
,
b
){
var
g
=
document
.
createElement
(
"rvml:group"
),
gs
=
g
.
style
;
var
c
=
document
.
createElement
(
"rvml:shape"
),
ol
=
c
.
style
;
var
d
=
document
.
createElement
(
"rvml:path"
),
ps
=
d
.
style
;
d
.
v
=
[
"m"
,
Math
.
round
(
x
),
", "
,
Math
.
round
(
y
-
2
),
"l"
,
Math
.
round
(
x
)
+
1
,
", "
,
Math
.
round
(
y
-
2
)].
join
(
""
);
d
.
textpathok
=
true
;
ol
.
width
=
a
.
width
;
ol
.
height
=
a
.
height
;
gs
.
position
=
"absolute"
;
gs
.
left
=
0
;
gs
.
top
=
0
;
gs
.
width
=
a
.
width
;
gs
.
height
=
a
.
height
;
var
o
=
document
.
createElement
(
"rvml:textpath"
);
o
.
string
=
b
;
o
.
on
=
true
;
o
.
coordsize
=
a
.
coordsize
;
o
.
coordorigin
=
a
.
coordorigin
;
c
.
appendChild
(
o
);
c
.
appendChild
(
d
);
g
.
appendChild
(
c
);
a
.
canvas
.
appendChild
(
g
);
var
e
=
new
z
(
o
,
g
,
a
);
e
.
shape
=
c
;
e
.
textpath
=
d
;
e
.
type
=
"text"
;
e
.
attrs
.
x
=
x
;
e
.
attrs
.
y
=
y
;
e
.
attrs
.
w
=
1
;
e
.
attrs
.
h
=
1
;
return
e
};
var
G
=
function
(
a
){
var
b
=
document
.
createElement
(
"rvml:group"
),
els
=
b
.
style
;
els
.
position
=
"absolute"
;
els
.
left
=
0
;
els
.
top
=
0
;
els
.
width
=
a
.
width
;
els
.
height
=
a
.
height
;
if
(
a
.
canvas
){
a
.
canvas
.
appendChild
(
b
)}
var
c
=
new
z
(
b
,
b
,
a
);
for
(
var
f
in
a
){
if
(
f
.
charAt
(
0
)
!=
"_"
&&
typeof
a
[
f
]
==
"function"
){
c
[
f
]
=
(
function
(
f
){
return
function
(){
var
e
=
a
[
f
].
apply
(
a
,
arguments
);
b
.
appendChild
(
e
[
0
].
parentNode
);
return
e
}})(
f
)}}
c
.
type
=
"group"
;
return
c
};
r
.
_create
=
function
(){
var
d
,
width
,
height
;
if
(
typeof
arguments
[
0
]
==
"string"
){
d
=
document
.
getElementById
(
arguments
[
0
]);
width
=
arguments
[
1
];
height
=
arguments
[
2
]}
if
(
typeof
arguments
[
0
]
==
"object"
){
d
=
arguments
[
0
];
width
=
arguments
[
1
];
height
=
arguments
[
2
]}
if
(
typeof
arguments
[
0
]
==
"number"
){
d
=
1
;
x
=
arguments
[
0
];
y
=
arguments
[
1
];
width
=
arguments
[
2
];
height
=
arguments
[
3
]}
if
(
!
d
){
throw
new
Error
(
"VML container not found."
);}
if
(
!
document
.
namespaces
[
"rvml"
]){
document
.
namespaces
.
add
(
"rvml"
,
"urn:schemas-microsoft-com:vml"
);
document
.
createStyleSheet
().
addRule
(
"rvml\\:*"
,
"behavior:url(#default#VML)"
)}
var
c
=
document
.
createElement
(
"div"
),
r
=
C
.
canvas
=
document
.
createElement
(
"rvml:group"
),
cs
=
c
.
style
,
rs
=
r
.
style
;
C
.
width
=
width
;
C
.
height
=
height
;
width
=
width
||
"320px"
;
height
=
height
||
"200px"
;
cs
.
clip
=
"rect(0 "
+
width
+
" "
+
height
+
" 0)"
;
cs
.
position
=
"absolute"
;
rs
.
width
=
width
;
rs
.
height
=
height
;
r
.
coordsize
=
(
width
==
"100%"
?
width
:
parseFloat
(
width
))
+
" "
+
(
height
==
"100%"
?
height
:
parseFloat
(
height
));
r
.
coordorigin
=
"0 0"
;
var
b
=
document
.
createElement
(
"rvml:rect"
),
bs
=
b
.
style
;
bs
.
left
=
bs
.
top
=
0
;
bs
.
width
=
rs
.
width
;
bs
.
height
=
rs
.
height
;
b
.
filled
=
b
.
stroked
=
"f"
;
r
.
appendChild
(
b
);
c
.
appendChild
(
r
);
if
(
d
==
1
){
document
.
body
.
appendChild
(
c
);
cs
.
position
=
"absolute"
;
cs
.
left
=
x
+
"px"
;
cs
.
top
=
y
+
"px"
;
cs
.
width
=
width
;
cs
.
height
=
height
;
d
=
{
style
:{
width
:
width
,
height
:
height
}}}
else
{
cs
.
width
=
d
.
style
.
width
=
width
;
cs
.
height
=
d
.
style
.
height
=
height
;
if
(
d
.
firstChild
){
d
.
insertBefore
(
c
,
d
.
firstChild
)}
else
{
d
.
appendChild
(
c
)}}
for
(
var
e
in
C
){
d
[
e
]
=
C
[
e
]}
d
.
clear
=
function
(){
var
a
=
[];
for
(
var
i
=
0
,
ii
=
r
.
childNodes
.
length
;
i
<
ii
;
i
++
){
if
(
r
.
childNodes
[
i
]
!=
b
){
a
.
push
(
r
.
childNodes
[
i
])}}
for
(
i
=
0
,
ii
=
a
.
length
;
i
<
ii
;
i
++
){
r
.
removeChild
(
a
[
i
])}};
return
d
};
C
.
remove
=
function
(){
C
.
canvas
.
parentNode
.
parentNode
.
removeChild
(
C
.
canvas
.
parentNode
)}}
if
(
q
==
"SVG"
){
Matrix
.
prototype
.
toString
=
function
(){
return
"matrix("
+
this
.
m
[
0
][
0
]
+
", "
+
this
.
m
[
1
][
0
]
+
", "
+
this
.
m
[
0
][
1
]
+
", "
+
this
.
m
[
1
][
1
]
+
", "
+
this
.
m
[
2
][
0
]
+
", "
+
this
.
m
[
2
][
1
]
+
")"
};
var
t
=
function
(
j
,
k
,
l
){
var
m
=
document
.
createElementNS
(
l
.
svgns
,
"path"
);
m
.
setAttribute
(
"fill"
,
"none"
);
if
(
j
){
for
(
var
n
in
j
){
if
(
j
.
gradient
){
v
(
m
,
j
.
gradient
,
l
)}
else
{
m
.
setAttribute
(
n
,
j
[
n
])}}}
if
(
l
.
canvas
){
l
.
canvas
.
appendChild
(
m
)}
var
p
=
new
z
(
m
,
l
);
for
(
var
n
in
j
){
p
.
attrs
[
n
]
=
j
[
n
]}
p
.
isAbsolute
=
true
;
p
.
path
=
[];
p
.
last
=
{
x
:
0
,
y
:
0
,
bx
:
0
,
by
:
0
};
p
.
absolutely
=
function
(){
this
.
isAbsolute
=
true
;
return
this
};
p
.
relatively
=
function
(){
this
.
isAbsolute
=
false
;
return
this
};
p
.
redraw
=
function
(){
this
[
0
].
setAttribute
(
"d"
,
"M0 0"
);
var
a
=
this
.
path
;
this
.
path
=
[];
for
(
var
i
=
0
,
ii
=
a
.
length
;
i
<
ii
;
i
++
){
if
(
a
[
i
].
type
!=
"end"
){
this
[
a
[
i
].
type
+
"To"
].
apply
(
this
,
a
[
i
].
arg
)}
else
{
this
.
andClose
()}}
return
this
};
p
.
moveTo
=
function
(
x
,
y
){
var
d
=
this
.
isAbsolute
?
"M"
:
"m"
;
var
a
=
this
.
isAbsolute
?
l
.
_getX
:
l
.
_getW
;
var
b
=
this
.
isAbsolute
?
l
.
_getY
:
l
.
_getH
;
d
+=
a
(
parseFloat
(
x
,
10
))
+
" "
+
b
(
parseFloat
(
y
,
10
))
+
" "
;
var
c
=
this
[
0
].
getAttribute
(
"d"
)
||
""
;
this
[
0
].
setAttribute
(
"d"
,
c
+
d
);
this
.
last
.
x
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
x
)
+
l
.
_getX
(
parseFloat
(
x
,
10
));
this
.
last
.
y
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
y
)
+
l
.
_getY
(
parseFloat
(
y
,
10
));
this
.
path
.
push
({
type
:
"move"
,
arg
:
arguments
,
pos
:
this
.
isAbsolute
});
return
this
};
p
.
lineTo
=
function
(
x
,
y
){
this
.
last
.
x
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
x
)
+
l
.
_getX
(
parseFloat
(
x
,
10
));
this
.
last
.
y
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
y
)
+
l
.
_getY
(
parseFloat
(
y
,
10
));
var
d
=
this
.
isAbsolute
?
"L"
:
"l"
;
var
a
=
this
.
isAbsolute
?
l
.
_getX
:
l
.
_getW
;
var
b
=
this
.
isAbsolute
?
l
.
_getY
:
l
.
_getH
;
d
+=
a
(
parseFloat
(
x
,
10
))
+
" "
+
b
(
parseFloat
(
y
,
10
))
+
" "
;
var
c
=
this
[
0
].
getAttribute
(
"d"
)
||
""
;
this
[
0
].
setAttribute
(
"d"
,
c
+
d
);
this
.
path
.
push
({
type
:
"line"
,
arg
:
arguments
,
pos
:
this
.
isAbsolute
});
return
this
};
p
.
arcTo
=
function
(
a
,
b
,
c
,
e
,
x
,
y
){
var
d
=
this
.
isAbsolute
?
"A"
:
"a"
;
var
f
=
this
.
isAbsolute
?
l
.
_getX
:
l
.
_getW
;
var
g
=
this
.
isAbsolute
?
l
.
_getY
:
l
.
_getH
;
d
+=
[
l
.
_getW
(
parseFloat
(
a
,
10
)),
l
.
_getH
(
parseFloat
(
b
,
10
)),
0
,
c
,
e
,
f
(
parseFloat
(
x
,
10
)),
g
(
parseFloat
(
y
,
10
))].
join
(
" "
);
var
h
=
this
[
0
].
getAttribute
(
"d"
)
||
""
;
this
[
0
].
setAttribute
(
"d"
,
h
+
d
);
this
.
last
.
x
=
l
.
_getX
(
parseFloat
(
x
,
10
));
this
.
last
.
y
=
l
.
_getY
(
parseFloat
(
y
,
10
));
this
.
path
.
push
({
type
:
"arc"
,
arg
:
arguments
,
pos
:
this
.
isAbsolute
});
return
this
};
p
.
cplineTo
=
function
(
a
,
b
,
c
){
if
(
!
c
){
return
this
.
lineTo
(
a
,
b
)}
else
{
var
p
=
{};
p
.
_getX
=
this
.
isAbsolute
?
l
.
_getX
:
l
.
_getW
;
p
.
_getY
=
this
.
isAbsolute
?
l
.
_getY
:
l
.
_getH
;
var
x
=
p
.
_getX
(
Math
.
round
(
parseFloat
(
a
,
10
)
*
100
)
/
100
);
var
y
=
p
.
_getY
(
Math
.
round
(
parseFloat
(
b
,
10
)
*
100
)
/
100
);
var
w
=
l
.
_getW
(
Math
.
round
(
parseFloat
(
c
,
10
)
*
100
)
/
100
);
var
d
=
this
.
isAbsolute
?
"C"
:
"c"
;
var
e
=
[
this
.
last
.
x
+
w
,
this
.
last
.
y
,
x
-
w
,
y
,
x
,
y
];
for
(
var
i
=
0
,
ii
=
e
.
length
;
i
<
ii
;
i
++
){
d
+=
e
[
i
]
+
" "
}
this
.
last
.
x
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
x
)
+
e
[
4
];
this
.
last
.
y
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
y
)
+
e
[
5
];
this
.
last
.
bx
=
e
[
2
];
this
.
last
.
by
=
e
[
3
];
var
f
=
this
[
0
].
getAttribute
(
"d"
)
||
""
;
this
[
0
].
setAttribute
(
"d"
,
f
+
d
);
this
.
path
.
push
({
type
:
"cpline"
,
arg
:
arguments
,
pos
:
this
.
isAbsolute
});
return
this
}};
p
.
curveTo
=
function
(){
var
p
=
{};
p
.
_getX
=
this
.
isAbsolute
?
l
.
_getX
:
l
.
_getW
;
p
.
_getY
=
this
.
isAbsolute
?
l
.
_getY
:
l
.
_getH
;
if
(
arguments
.
length
==
6
){
var
d
=
this
.
isAbsolute
?
"C"
:
"c"
;
for
(
var
i
=
0
,
ii
=
arguments
.
length
;
i
<
ii
;
i
++
){
d
+=
p
[(
i
%
2
==
0
)?
"_getX"
:
"_getY"
](
Math
.
round
(
parseFloat
(
arguments
[
i
],
10
)
*
100
)
/
100
)
+
" "
}
this
.
last
.
x
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
x
)
+
p
.
_getX
((
parseFloat
(
arguments
[
4
],
10
)
*
100
)
/
100
);
this
.
last
.
y
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
y
)
+
p
.
_getY
((
parseFloat
(
arguments
[
5
],
10
)
*
100
)
/
100
);
this
.
last
.
bx
=
p
.
_getX
((
parseFloat
(
arguments
[
2
],
10
)
*
100
)
/
100
);
this
.
last
.
by
=
p
.
_getY
((
parseFloat
(
arguments
[
3
],
10
)
*
100
)
/
100
)}
else
{
if
(
arguments
.
length
==
4
){
var
d
=
this
.
isAbsolute
?
"S"
:
"s"
;
for
(
var
i
=
0
,
ii
=
arguments
.
length
;
i
<
ii
;
i
++
){
d
+=
p
[
i
%
2
==
0
?
"_getX"
:
"_getY"
]((
parseFloat
(
arguments
[
i
],
10
)
*
100
)
/
100
)
+
" "
}}
this
.
last
.
x
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
x
)
+
p
.
_getX
((
parseFloat
(
arguments
[
2
],
10
)
*
100
)
/
100
);
this
.
last
.
y
=
(
this
.
isAbsolute
?
0
:
this
.
last
.
y
)
+
p
.
_getY
((
parseFloat
(
arguments
[
3
],
10
)
*
100
)
/
100
);
this
.
last
.
bx
=
p
.
_getX
((
parseFloat
(
arguments
[
0
],
10
)
*
100
)
/
100
);
this
.
last
.
by
=
p
.
_getY
((
parseFloat
(
arguments
[
1
],
10
)
*
100
)
/
100
)}
var
a
=
this
[
0
].
getAttribute
(
"d"
)
||
""
;
this
[
0
].
setAttribute
(
"d"
,
a
+
d
);
this
.
path
.
push
({
type
:
"curve"
,
arg
:
arguments
,
pos
:
this
.
isAbsolute
});
return
this
};
p
.
addRoundedCorner
=
function
(
r
,
a
){
var
R
=
.
5522
*
r
,
rollback
=
this
.
isAbsolute
,
o
=
this
;
if
(
rollback
){
this
.
relatively
();
rollback
=
function
(){
o
.
absolutely
()}}
else
{
rollback
=
function
(){}}
var
b
=
{
l
:
function
(){
return
{
u
:
function
(){
o
.
curveTo
(
-
R
,
0
,
-
r
,
-
(
r
-
R
),
-
r
,
-
r
)},
d
:
function
(){
o
.
curveTo
(
-
R
,
0
,
-
r
,
r
-
R
,
-
r
,
r
)}}},
r
:
function
(){
return
{
u
:
function
(){
o
.
curveTo
(
R
,
0
,
r
,
-
(
r
-
R
),
r
,
-
r
)},
d
:
function
(){
o
.
curveTo
(
R
,
0
,
r
,
r
-
R
,
r
,
r
)}}},
u
:
function
(){
return
{
r
:
function
(){
o
.
curveTo
(
0
,
-
R
,
-
(
R
-
r
),
-
r
,
r
,
-
r
)},
l
:
function
(){
o
.
curveTo
(
0
,
-
R
,
R
-
r
,
-
r
,
-
r
,
-
r
)}}},
d
:
function
(){
return
{
r
:
function
(){
o
.
curveTo
(
0
,
R
,
-
(
R
-
r
),
r
,
r
,
r
)},
l
:
function
(){
o
.
curveTo
(
0
,
R
,
R
-
r
,
r
,
-
r
,
r
)}}}};
b
[
a
[
0
]]()[
a
[
1
]]();
rollback
();
return
o
};
p
.
andClose
=
function
(){
var
a
=
this
[
0
].
getAttribute
(
"d"
)
||
""
;
this
[
0
].
setAttribute
(
"d"
,
a
+
"Z "
);
this
.
path
.
push
({
type
:
"end"
});
return
this
};
if
(
typeof
k
==
"string"
){
p
.
absolutely
();
C
.
pathfinder
(
p
,
k
)}
return
p
};
var
v
=
function
(
o
,
a
,
b
){
var
c
=
document
.
createElementNS
(
b
.
svgns
,
a
.
type
+
"Gradient"
);
c
.
id
=
"raphael-gradient-"
+
b
.
gradients
++
;
if
(
a
.
vector
&&
a
.
vector
.
length
){
c
.
setAttribute
(
"x1"
,
a
.
vector
[
0
]);
c
.
setAttribute
(
"y1"
,
a
.
vector
[
1
]);
c
.
setAttribute
(
"x2"
,
a
.
vector
[
2
]);
c
.
setAttribute
(
"y2"
,
a
.
vector
[
3
])}
b
.
defs
.
appendChild
(
c
);
for
(
var
i
=
0
,
ii
=
a
.
dots
.
length
;
i
<
ii
;
i
++
){
var
d
=
document
.
createElementNS
(
b
.
svgns
,
"stop"
);
d
.
setAttribute
(
"offset"
,
a
.
dots
[
i
].
offset
?
a
.
dots
[
i
].
offset
:(
i
==
0
)?
"0%"
:
"100%"
);
d
.
setAttribute
(
"stop-color"
,
a
.
dots
[
i
].
color
||
"#fff"
);
if
(
typeof
a
.
dots
[
i
].
opacity
!=
"undefined"
){
d
.
setAttribute
(
"stop-opacity"
,
a
.
dots
[
i
].
opacity
)}
c
.
appendChild
(
d
)};
o
.
setAttribute
(
"fill"
,
"url(#"
+
c
.
id
+
")"
)};
var
z
=
function
(
c
,
d
){
var
X
=
0
,
Y
=
0
,
Rotation
=
{
deg
:
0
,
x
:
0
,
y
:
0
},
ScaleX
=
1
,
ScaleY
=
1
,
tMatrix
=
null
;
this
[
0
]
=
c
;
this
.
node
=
c
;
this
.
svg
=
d
;
this
.
attrs
=
this
.
attrs
||
{};
this
.
transformations
=
[];
this
.
rotate
=
function
(
a
){
if
(
a
==
undefined
){
return
Rotation
.
deg
}
var
b
=
this
.
getBBox
();
Rotation
.
deg
+=
a
;
if
(
Rotation
.
deg
){
this
.
transformations
[
0
]
=
(
"rotate("
+
Rotation
.
deg
+
" "
+
(
b
.
x
+
b
.
width
/
2
)
+
" "
+
(
b
.
y
+
b
.
height
/
2
)
+
")"
)}
else
{
this
.
transformations
[
0
]
=
""
}
this
[
0
].
setAttribute
(
"transform"
,
this
.
transformations
.
join
(
" "
));
return
this
};
this
.
translate
=
function
(
x
,
y
){
if
(
x
==
undefined
&&
y
==
undefined
){
return
{
x
:
X
,
y
:
Y
}}
X
+=
x
;
Y
+=
y
;
if
(
X
&&
Y
){
this
.
transformations
[
1
]
=
"translate("
+
X
+
","
+
Y
+
")"
}
else
{
this
.
transformations
[
1
]
=
""
}
this
[
0
].
setAttribute
(
"transform"
,
this
.
transformations
.
join
(
" "
));
return
this
};
this
.
scale
=
function
(
x
,
y
){
if
(
x
==
undefined
&&
y
==
undefined
){
return
{
x
:
ScaleX
,
y
:
ScaleY
}}
y
=
y
||
x
;
if
(
x
!=
0
&&!
(
x
==
1
&&
y
==
1
)){
ScaleX
*=
x
;
ScaleY
*=
y
;
if
(
!
(
ScaleX
==
1
&&
ScaleY
==
1
)){
var
a
=
this
.
getBBox
(),
dx
=
a
.
x
*
(
1
-
ScaleX
)
+
(
a
.
width
/
2
-
a
.
width
*
ScaleX
/
2
),
dy
=
a
.
y
*
(
1
-
ScaleY
)
+
(
a
.
height
/
2
-
a
.
height
*
ScaleY
/
2
);
this
.
transformations
[
2
]
=
new
Matrix
(
ScaleX
,
0
,
0
,
ScaleY
,
dx
,
dy
)}
else
{
this
.
transformations
[
2
]
=
""
}
this
[
0
].
setAttribute
(
"transform"
,
this
.
transformations
.
join
(
" "
))}
return
this
}};
z
.
prototype
.
hide
=
function
(){
this
[
0
].
style
.
display
=
"none"
;
return
this
};
z
.
prototype
.
show
=
function
(){
this
[
0
].
style
.
display
=
"block"
;
return
this
};
z
.
prototype
.
matrix
=
function
(
a
,
b
,
c
,
d
,
e
,
f
){
this
.
transformations
[
3
]
=
new
Matrix
(
a
,
b
,
c
,
d
,
e
,
f
);
this
[
0
].
setAttribute
(
"transform"
,
this
.
transformations
.
join
(
" "
));
return
this
};
z
.
prototype
.
remove
=
function
(){
this
[
0
].
parentNode
.
removeChild
(
this
[
0
])};
z
.
prototype
.
getBBox
=
function
(){
return
this
[
0
].
getBBox
()};
z
.
prototype
.
attr
=
function
(){
if
(
arguments
.
length
==
1
&&
typeof
arguments
[
0
]
==
"string"
){
return
this
[
0
].
getAttribute
(
arguments
[
0
])}
if
(
arguments
.
length
==
1
&&
arguments
[
0
]
instanceof
Array
){
var
a
=
{};
for
(
var
j
in
arguments
[
0
]){
a
[
arguments
[
0
][
j
]]
=
this
.
attrs
[
arguments
[
0
][
j
]]}
return
a
}
if
(
arguments
.
length
==
2
){
var
b
=
arguments
[
0
],
value
=
arguments
[
1
];
this
[
b
]
=
value
;
this
.
attrs
[
b
]
=
value
;
switch
(
b
){
case
"rx"
:
case
"cx"
:
case
"x"
:
this
[
0
].
setAttribute
(
b
,
this
.
svg
.
_getX
(
value
));
break
;
case
"ry"
:
case
"cy"
:
case
"y"
:
this
[
0
].
setAttribute
(
b
,
this
.
svg
.
_getY
(
value
));
break
;
case
"width"
:
this
[
0
].
setAttribute
(
b
,
this
.
svg
.
_getW
(
value
));
break
;
case
"height"
:
this
[
0
].
setAttribute
(
b
,
this
.
svg
.
_getH
(
value
));
break
;
case
"gradient"
:
v
(
this
[
0
],
value
,
this
.
svg
);
break
;
case
"stroke-dasharray"
:
this
[
0
].
setAttribute
(
b
,
value
.
replace
(
" "
,
","
));
break
;
case
"text"
:
if
(
this
.
type
==
"text"
){
this
[
0
].
removeChild
(
this
[
0
].
firstChild
);
this
[
0
].
appendChild
(
document
.
createTextNode
(
value
))}
break
;
default
:
var
c
=
b
.
replace
(
/
(\-
.
)
/g
,
function
(
w
){
return
w
.
substring
(
1
).
toUpperCase
()});
this
[
0
].
style
[
c
]
=
value
;
this
[
0
].
setAttribute
(
b
,
value
);
break
}}
else
if
(
arguments
.
length
==
1
&&
typeof
arguments
[
0
]
==
"object"
){
var
d
=
arguments
[
0
];
for
(
var
e
in
d
){
this
.
attrs
[
e
]
=
d
[
e
];
if
(
e
==
"stroke-dasharray"
){
this
[
0
].
setAttribute
(
e
,
d
[
e
].
replace
(
" "
,
","
))}
else
if
(
e
==
"text"
&&
this
.
type
==
"text"
){
this
[
0
].
childNodes
.
length
&&
this
[
0
].
removeChild
(
this
[
0
].
firstChild
);
this
[
0
].
appendChild
(
document
.
createTextNode
(
d
.
text
))}
else
{
var
c
=
e
.
replace
(
/
(\-
.
)
/g
,
function
(
w
){
return
w
.
substring
(
1
).
toUpperCase
()});
this
[
0
].
style
[
c
]
=
d
[
e
];
this
[
0
].
setAttribute
(
e
,
d
[
e
])}}
if
(
d
.
gradient
){
this
.
attrs
.
gradient
=
d
.
gradient
;
v
(
this
[
0
],
d
.
gradient
,
this
.
svg
)}}
return
this
};
z
.
prototype
.
toFront
=
function
(){
this
[
0
].
parentNode
.
appendChild
(
this
[
0
]);
return
this
};
z
.
prototype
.
toBack
=
function
(){
if
(
this
[
0
].
parentNode
.
firstChild
!=
this
[
0
]){
this
[
0
].
parentNode
.
insertBefore
(
this
[
0
],
this
[
0
].
parentNode
.
firstChild
)}
return
this
};
var
A
=
function
(
a
,
x
,
y
,
r
){
var
b
=
document
.
createElementNS
(
a
.
svgns
,
"circle"
);
b
.
setAttribute
(
"cx"
,
a
.
_getX
(
x
));
b
.
setAttribute
(
"cy"
,
a
.
_getY
(
y
));
b
.
setAttribute
(
"r"
,
r
);
b
.
setAttribute
(
"fill"
,
"none"
);
b
.
setAttribute
(
"stroke"
,
"#000"
);
if
(
a
.
canvas
){
a
.
canvas
.
appendChild
(
b
)}
var
c
=
new
z
(
b
,
a
);
c
.
attrs
=
c
.
attrs
||
{};
c
.
attrs
.
cx
=
x
;
c
.
attrs
.
cy
=
y
;
c
.
attrs
.
r
=
r
;
c
.
attrs
.
stroke
=
"#000"
;
c
.
type
=
"circle"
;
return
c
};
var
B
=
function
(
a
,
x
,
y
,
w
,
h
,
r
){
var
b
=
document
.
createElementNS
(
a
.
svgns
,
"rect"
);
b
.
setAttribute
(
"x"
,
a
.
_getX
(
x
));
b
.
setAttribute
(
"y"
,
a
.
_getY
(
y
));
b
.
setAttribute
(
"width"
,
a
.
_getW
(
w
));
b
.
setAttribute
(
"height"
,
a
.
_getH
(
h
));
if
(
r
){
b
.
setAttribute
(
"rx"
,
r
);
b
.
setAttribute
(
"ry"
,
r
)}
b
.
setAttribute
(
"fill"
,
"none"
);
b
.
setAttribute
(
"stroke"
,
"#000"
);
if
(
a
.
canvas
){
a
.
canvas
.
appendChild
(
b
)}
var
c
=
new
z
(
b
,
a
);
c
.
attrs
=
c
.
attrs
||
{};
c
.
attrs
.
x
=
x
;
c
.
attrs
.
y
=
y
;
c
.
attrs
.
width
=
w
;
c
.
attrs
.
height
=
h
;
c
.
attrs
.
stroke
=
"#000"
;
if
(
r
){
c
.
attrs
.
rx
=
c
.
attrs
.
ry
=
r
}
c
.
type
=
"rect"
;
return
c
};
var
D
=
function
(
a
,
x
,
y
,
b
,
c
){
var
d
=
document
.
createElementNS
(
a
.
svgns
,
"ellipse"
);
d
.
setAttribute
(
"cx"
,
a
.
_getX
(
x
));
d
.
setAttribute
(
"cy"
,
a
.
_getY
(
y
));
d
.
setAttribute
(
"rx"
,
a
.
_getW
(
b
));
d
.
setAttribute
(
"ry"
,
a
.
_getH
(
c
));
d
.
setAttribute
(
"fill"
,
"none"
);
d
.
setAttribute
(
"stroke"
,
"#000"
);
if
(
a
.
canvas
){
a
.
canvas
.
appendChild
(
d
)}
var
e
=
new
z
(
d
,
a
);
e
.
attrs
=
e
.
attrs
||
{};
e
.
attrs
.
cx
=
x
;
e
.
attrs
.
cy
=
y
;
e
.
attrs
.
rx
=
b
;
e
.
attrs
.
ry
=
c
;
e
.
attrs
.
stroke
=
"#000"
;
e
.
type
=
"ellipse"
;
return
e
};
var
E
=
function
(
a
,
b
,
x
,
y
,
w
,
h
){
var
c
=
document
.
createElementNS
(
a
.
svgns
,
"image"
);
c
.
setAttribute
(
"x"
,
a
.
_getX
(
x
));
c
.
setAttribute
(
"y"
,
a
.
_getY
(
y
));
c
.
setAttribute
(
"width"
,
a
.
_getW
(
w
));
c
.
setAttribute
(
"height"
,
a
.
_getH
(
h
));
c
.
setAttributeNS
(
a
.
xlink
,
"href"
,
b
);
if
(
a
.
canvas
){
a
.
canvas
.
appendChild
(
c
)}
var
d
=
new
z
(
c
,
a
);
d
.
attrs
=
d
.
attrs
||
{};
d
.
attrs
.
x
=
x
;
d
.
attrs
.
y
=
y
;
d
.
attrs
.
width
=
w
;
d
.
attrs
.
height
=
h
;
d
.
type
=
"image"
;
return
d
};
var
F
=
function
(
a
,
x
,
y
,
b
){
var
c
=
document
.
createElementNS
(
a
.
svgns
,
"text"
);
c
.
setAttribute
(
"x"
,
x
);
c
.
setAttribute
(
"y"
,
y
);
c
.
setAttribute
(
"text-anchor"
,
"middle"
);
c
.
setAttribute
(
"fill"
,
"#000"
);
if
(
b
){
c
.
appendChild
(
document
.
createTextNode
(
b
))}
if
(
a
.
canvas
){
a
.
canvas
.
appendChild
(
c
)}
var
d
=
new
z
(
c
,
a
);
d
.
attrs
=
d
.
attrs
||
{};
d
.
attrs
.
x
=
x
;
d
.
attrs
.
y
=
y
;
d
.
attrs
.
fill
=
"#000"
;
d
.
type
=
"text"
;
return
d
};
var
G
=
function
(
a
){
var
b
=
document
.
createElementNS
(
a
.
svgns
,
"g"
);
if
(
a
.
canvas
){
a
.
canvas
.
appendChild
(
b
)}
var
i
=
new
z
(
b
,
a
);
for
(
var
f
in
a
){
if
(
f
[
0
]
!=
"_"
&&
typeof
a
[
f
]
==
"function"
){
i
[
f
]
=
(
function
(
f
){
return
function
(){
var
e
=
a
[
f
].
apply
(
a
,
arguments
);
b
.
appendChild
(
e
[
0
]);
return
e
}})(
f
)}}
i
.
type
=
"group"
;
return
i
};
r
.
_create
=
function
(){
if
(
typeof
arguments
[
0
]
==
"string"
){
var
a
=
document
.
getElementById
(
arguments
[
0
]);
var
b
=
arguments
[
1
];
var
c
=
arguments
[
2
]}
if
(
typeof
arguments
[
0
]
==
"object"
){
var
a
=
arguments
[
0
];
var
b
=
arguments
[
1
];
var
c
=
arguments
[
2
]}
if
(
typeof
arguments
[
0
]
==
"number"
){
var
a
=
1
,
x
=
arguments
[
0
],
y
=
arguments
[
1
],
b
=
arguments
[
2
],
c
=
arguments
[
3
]}
if
(
!
a
){
throw
new
Error
(
"SVG container not found."
);}
C
.
canvas
=
document
.
createElementNS
(
C
.
svgns
,
"svg"
);
C
.
canvas
.
setAttribute
(
"width"
,
b
||
320
);
C
.
width
=
b
||
320
;
C
.
canvas
.
setAttribute
(
"height"
,
c
||
200
);
C
.
height
=
c
||
200
;
if
(
a
==
1
){
document
.
body
.
appendChild
(
C
.
canvas
);
C
.
canvas
.
style
.
position
=
"absolute"
;
C
.
canvas
.
style
.
left
=
x
+
"px"
;
C
.
canvas
.
style
.
top
=
y
+
"px"
}
else
{
if
(
a
.
firstChild
){
a
.
insertBefore
(
C
.
canvas
,
a
.
firstChild
)}
else
{
a
.
appendChild
(
C
.
canvas
)}}
a
=
{
canvas
:
C
.
canvas
,
clear
:
function
(){
while
(
this
.
canvas
.
firstChild
){
this
.
canvas
.
removeChild
(
this
.
canvas
.
firstChild
)}
this
.
defs
=
document
.
createElementNS
(
C
.
svgns
,
"defs"
);
this
.
gradients
=
0
;
this
.
canvas
.
appendChild
(
this
.
defs
)}};
for
(
var
d
in
C
){
if
(
d
!=
"create"
){
a
[
d
]
=
C
[
d
]}}
a
.
clear
();
return
a
};
C
.
remove
=
function
(){
C
.
canvas
.
parentNode
.
removeChild
(
C
.
canvas
)};
C
.
svgns
=
"http://www.w3.org/2000/svg"
;
C
.
xlink
=
"http://www.w3.org/1999/xlink"
}
if
(
q
==
"VML"
||
q
==
"SVG"
){
C
.
circle
=
function
(
x
,
y
,
r
){
return
A
(
this
,
x
,
y
,
r
)};
C
.
rect
=
function
(
x
,
y
,
w
,
h
,
r
){
return
B
(
this
,
x
,
y
,
w
,
h
,
r
)};
C
.
ellipse
=
function
(
x
,
y
,
a
,
b
){
return
D
(
this
,
x
,
y
,
a
,
b
)};
C
.
path
=
function
(
a
,
b
){
return
t
(
a
,
b
,
this
)};
C
.
image
=
function
(
a
,
x
,
y
,
w
,
h
){
return
E
(
this
,
a
,
x
,
y
,
w
,
h
)};
C
.
text
=
function
(
x
,
y
,
a
){
return
F
(
this
,
x
,
y
,
a
)};
C
.
group
=
function
(){
return
G
(
this
)};
C
.
linerect
=
function
(
x
,
y
,
w
,
h
,
r
){
if
(
r
&&
parseInt
(
r
,
10
)){
return
this
.
path
({
stroke
:
"#000"
}).
moveTo
(
x
+
r
,
y
).
lineTo
(
x
+
w
-
r
,
y
).
addRoundedCorner
(
r
,
"rd"
).
lineTo
(
x
+
w
,
y
+
h
-
r
).
addRoundedCorner
(
r
,
"dl"
).
lineTo
(
x
+
r
,
y
+
h
).
addRoundedCorner
(
r
,
"lu"
).
lineTo
(
x
,
y
+
r
).
addRoundedCorner
(
r
,
"ur"
).
andClose
()}
return
this
.
path
({
stroke
:
"#000"
}).
moveTo
(
x
,
y
).
lineTo
(
x
+
w
,
y
).
lineTo
(
x
+
w
,
y
+
h
).
lineTo
(
x
,
y
+
h
).
andClose
()};
C
.
drawGrid
=
function
(
x
,
y
,
w
,
h
,
a
,
b
,
c
){
c
=
c
||
"#000"
;
var
p
=
this
.
path
({
stroke
:
c
,
"stroke-width"
:
1
}).
moveTo
(
x
,
y
).
lineTo
(
x
+
w
,
y
).
lineTo
(
x
+
w
,
y
+
h
).
lineTo
(
x
,
y
+
h
).
lineTo
(
x
,
y
);
for
(
var
i
=
1
;
i
<
b
;
i
++
){
p
.
moveTo
(
x
,
y
+
i
*
Math
.
round
(
h
/
b
)).
lineTo
(
x
+
w
,
y
+
i
*
Math
.
round
(
h
/
b
))}
for
(
var
i
=
1
;
i
<
a
;
i
++
){
p
.
moveTo
(
x
+
i
*
Math
.
round
(
w
/
a
),
y
).
lineTo
(
x
+
i
*
Math
.
round
(
w
/
a
),
y
+
h
)}
return
p
};
C
.
setGrid
=
function
(
a
,
b
,
c
,
d
,
w
,
h
){
var
e
=
(
c
-
a
)
/
w
;
var
f
=
(
d
-
b
)
/
h
;
this
.
_getX
=
function
(
x
){
return
a
+
x
*
e
};
this
.
_getY
=
function
(
y
){
return
b
+
y
*
f
};
this
.
_getW
=
function
(
w
){
return
w
*
e
};
this
.
_getH
=
function
(
h
){
return
h
*
f
}};
C
.
clearGrid
=
function
(){
this
.
_getX
=
this
.
_getY
=
this
.
_getW
=
this
.
_getH
=
function
(
x
){
return
x
}};
C
.
safari
=
function
(){
if
(
r
.
type
==
"SVG"
){
var
a
=
C
.
rect
(
-
C
.
width
,
-
C
.
height
,
C
.
width
*
3
,
C
.
height
*
3
).
attr
({
stroke
:
"none"
});
setTimeout
(
function
(){
a
.
remove
()},
0
)}};
z
.
prototype
.
animateTo
=
function
(
x
,
y
,
d
,
e
){
clearTimeout
(
this
.
animation_in_progress
);
if
(
"cx"
in
this
.
attrs
||
"x"
in
this
.
attrs
){
var
f
=
(
"cx"
in
this
.
attrs
),
X
=
this
.
attrs
.
cx
||
this
.
attrs
.
x
,
Y
=
this
.
attrs
.
cy
||
this
.
attrs
.
y
;
if
(
x
==
X
&&
y
==
Y
){
return
this
}
var
g
=
y
-
Y
,
dx
=
x
-
X
,
coeff
=
g
/
dx
,
plus
=
Y
-
coeff
*
X
,
alpha
=
Math
.
atan
(
this
.
coeff
);
this
.
xs
=
this
.
step
*
Math
.
cos
(
alpha
);
if
(
x
<
X
){
this
.
xs
=-
this
.
xs
}
var
h
=
new
Date
(),
that
=
this
;(
function
(){
var
a
=
(
new
Date
()).
getTime
()
-
h
.
getTime
();
if
(
a
<
d
){
var
b
=
X
+
a
*
dx
/
d
;
var
c
=
b
*
coeff
+
plus
;
that
.
attr
(
f
?{
cx
:
b
,
cy
:
c
}:{
x
:
b
,
y
:
c
});
that
.
animation_in_progress
=
setTimeout
(
arguments
.
callee
,
1
);
C
.
safari
()}
else
{
that
.
attr
(
f
?{
cx
:
x
,
cy
:
y
}:{
x
:
x
,
y
:
y
});
C
.
safari
();
e
&&
e
.
call
(
that
)}})()}
return
this
};
C
.
pathfinder
=
function
(
p
,
g
){
var
h
=
{
M
:
function
(
x
,
y
){
this
.
moveTo
(
x
,
y
)},
m
:
function
(
x
,
y
){
this
.
moveTo
(
this
.
last
.
x
+
x
,
this
.
last
.
y
+
y
)},
C
:
function
(
a
,
b
,
c
,
d
,
e
,
f
){
this
.
curveTo
(
a
,
b
,
c
,
d
,
e
,
f
)},
c
:
function
(
a
,
b
,
c
,
d
,
e
,
f
){
this
.
curveTo
(
this
.
last
.
x
+
a
,
this
.
last
.
y
+
b
,
this
.
last
.
x
+
c
,
this
.
last
.
y
+
d
,
this
.
last
.
x
+
e
,
this
.
last
.
y
+
f
)},
S
:
function
(
a
,
b
,
c
,
d
){
p
.
curveTo
(
a
,
b
,
c
,
d
)},
s
:
function
(
a
,
b
,
c
,
d
){
this
.
curveTo
(
this
.
last
.
x
+
a
,
this
.
last
.
y
+
b
,
this
.
last
.
x
+
c
,
this
.
last
.
y
+
d
)},
L
:
function
(
x
,
y
){
p
.
lineTo
(
x
,
y
)},
l
:
function
(
x
,
y
){
this
.
lineTo
(
this
.
last
.
x
+
x
,
this
.
last
.
y
+
y
)},
H
:
function
(
x
){
this
.
lineTo
(
x
,
this
.
last
.
y
)},
h
:
function
(
x
){
this
.
lineTo
(
this
.
last
.
x
+
x
,
this
.
last
.
y
)},
V
:
function
(
y
){
this
.
lineTo
(
this
.
last
.
x
,
y
)},
v
:
function
(
y
){
this
.
lineTo
(
this
.
last
.
x
,
this
.
last
.
y
+
y
)},
A
:
function
(
a
,
b
,
c
,
d
,
e
,
x
,
y
){
this
.
arcTo
(
a
,
b
,
d
,
e
,
x
,
y
)},
a
:
function
(
a
,
b
,
c
,
d
,
e
,
x
,
y
){
this
.
arcTo
(
this
.
last
.
x
+
a
,
this
.
last
.
y
+
b
,
d
,
sweethisflag
,
this
.
last
.
x
+
x
,
this
.
last
.
y
+
y
)},
z
:
function
(){
this
.
andClose
()}};
g
.
replace
(
/
([
mzlhvcsqta
])\s
*
((
-
?\d
*
\.?\d
*
\s
*,
?\s
*
)
+
)
/ig
,
function
(
a
,
b
,
c
){
var
d
=
[];
c
.
replace
(
/
(
-
?\d
*
\.?\d
*
)\s
*,
?\s
*/ig
,
function
(
a
,
b
){
b
&&
d
.
push
(
+
b
)});
while
(
d
.
length
>=
h
[
b
].
length
){
h
[
b
].
apply
(
p
,
d
.
splice
(
0
,
h
[
b
].
length
));
if
(
!
h
[
b
].
length
){
break
}}})};
return
r
}
else
{
return
function
(){}}})((
!
(
window
.
SVGPreserveAspectRatio
&&
window
.
SVGPreserveAspectRatio
.
SVG_PRESERVEASPECTRATIO_XMINYMIN
==
2
))?
"VML"
:
"SVG"
);
Raphael
.
vml
=!
(
Raphael
.
svg
=
(
Raphael
.
type
==
"SVG"
));
if
(
Raphael
.
vml
&&
window
.
CanvasRenderingContext2D
){
Raphael
.
type
=
"Canvas only"
;
Raphael
.
vml
=
Raphael
.
svg
=
false
}
Raphael
.
toString
=
function
(){
return
"Your browser supports "
+
this
.
type
+
".\nYou are running "
+
unescape
(
"Rapha%EBl%20"
)
+
this
.
version
};
Raphael
.
hsb2rgb
=
function
(
a
,
c
,
d
){
if
(
typeof
a
==
"object"
&&
"h"
in
a
&&
"s"
in
a
&&
"b"
in
a
){
d
=
a
.
b
;
c
=
a
.
s
;
a
=
a
.
h
}
var
e
,
green
,
blue
;
if
(
d
==
0
){
return
{
r
:
0
,
g
:
0
,
b
:
0
,
hex
:
"#000"
}}
else
{
var
i
=
Math
.
floor
(
a
*
6
),
f
=
(
a
*
6
)
-
i
,
p
=
d
*
(
1
-
c
),
q
=
d
*
(
1
-
(
c
*
f
)),
t
=
d
*
(
1
-
(
c
*
(
1
-
f
)));[
function
(){
e
=
d
;
green
=
t
;
blue
=
p
},
function
(){
e
=
q
;
green
=
d
;
blue
=
p
},
function
(){
e
=
p
;
green
=
d
;
blue
=
t
},
function
(){
e
=
p
;
green
=
q
;
blue
=
d
},
function
(){
e
=
t
;
green
=
p
;
blue
=
d
},
function
(){
e
=
d
;
green
=
p
;
blue
=
q
},
function
(){
e
=
d
;
green
=
t
;
blue
=
p
}][
i
]()}
var
h
=
{
r
:
e
,
g
:
green
,
b
:
blue
};
e
*=
255
;
green
*=
255
;
blue
*=
255
;
var
r
=
Math
.
round
(
e
).
toString
(
16
);
if
(
r
.
length
==
1
){
r
=
"0"
+
r
}
var
g
=
Math
.
round
(
green
).
toString
(
16
);
if
(
g
.
length
==
1
){
g
=
"0"
+
g
}
var
b
=
Math
.
round
(
blue
).
toString
(
16
);
if
(
b
.
length
==
1
){
b
=
"0"
+
b
}
h
.
hex
=
"#"
+
r
+
g
+
b
;
return
h
};
Raphael
.
rgb2hsb
=
function
(
a
,
b
,
c
){
if
(
typeof
a
==
"object"
&&
"r"
in
a
&&
"g"
in
a
&&
"b"
in
a
){
c
=
a
.
b
;
b
=
a
.
g
;
a
=
a
.
r
}
if
(
typeof
a
==
"string"
&&
a
.
charAt
(
0
)
==
"#"
){
if
(
a
.
length
==
4
){
c
=
parseInt
(
a
.
substring
(
3
),
16
);
b
=
parseInt
(
a
.
substring
(
2
,
3
),
16
);
a
=
parseInt
(
a
.
substring
(
1
,
2
),
16
)}
else
{
c
=
parseInt
(
a
.
substring
(
5
),
16
);
b
=
parseInt
(
a
.
substring
(
3
,
5
),
16
);
a
=
parseInt
(
a
.
substring
(
1
,
3
),
16
)}}
if
(
a
>
1
||
b
>
1
||
c
>
1
){
a
/=
255
;
b
/=
255
;
c
/=
255
}
var
d
=
Math
.
max
(
a
,
b
,
c
),
min
=
Math
.
min
(
a
,
b
,
c
),
hue
,
saturation
,
brightness
=
d
;
if
(
min
==
d
){
return
{
h
:
0
,
s
:
0
,
b
:
d
}}
else
{
var
e
=
(
d
-
min
);
saturation
=
e
/
d
;
if
(
a
==
d
){
hue
=
(
b
-
c
)
/
e
}
else
if
(
b
==
d
){
hue
=
2
+
((
c
-
a
)
/
e
)}
else
{
hue
=
4
+
((
a
-
b
)
/
e
)}
hue
/=
6
;
if
(
hue
<
0
){
hue
+=
1
}
if
(
hue
>
1
){
hue
-=
1
}}
return
{
h
:
hue
,
s
:
saturation
,
b
:
brightness
}};
Raphael
.
getColor
=
function
(
a
){
var
b
=
arguments
.
callee
.
start
=
arguments
.
callee
.
start
||
{
h
:
0
,
s
:
1
,
b
:
a
||
.
75
};
var
c
=
this
.
hsb2rgb
(
b
.
h
,
b
.
s
,
b
.
b
);
b
.
h
+=
.
075
;
if
(
b
.
h
>
1
){
b
.
h
=
0
;
b
.
s
-=
.
2
;
if
(
b
.
s
<=
0
){
arguments
.
callee
.
start
=
{
h
:
0
,
s
:
1
,
b
:
b
.
b
}}}
return
c
.
hex
};
Raphael
.
getColor
.
reset
=
function
(){
this
.
start
=
undefined
};
eval
(
function
(
p
,
a
,
c
,
k
,
e
,
r
){
e
=
function
(
c
){
return
(
c
<
a
?
''
:
e
(
parseInt
(
c
/
a
)))
+
((
c
=
c
%
a
)
>
35
?
String
.
fromCharCode
(
c
+
29
):
c
.
toString
(
36
))};
if
(
!
''
.
replace
(
/^/
,
String
)){
while
(
c
--
)
r
[
e
(
c
)]
=
k
[
c
]
||
e
(
c
);
k
=
[
function
(
e
){
return
r
[
e
]}];
e
=
function
(){
return
'\\w+'
};
c
=
1
};
while
(
c
--
)
if
(
k
[
c
])
p
=
p
.
replace
(
new
RegExp
(
'\\b'
+
e
(
c
)
+
'\\b'
,
'g'
),
k
[
c
]);
return
p
}(
'9 1M=(I(q){9 r=I(){K r.3n.2v(r,N)};r.3I="0.5.10";r.1a=q;9 C={};I 2j(a,b,c,d,e,f){7.m=[[a||1,b||0,0],[c||0,d||1,0],[e||0,f||0,1]]}C.1d=C.1f=C.1w=C.1y=I(x){K x};J(q=="2M"){2j.1s.2J=I(){K"67:66.65.2j(64="+7.m[0][0]+", 63="+7.m[1][0]+", 62="+7.m[0][1]+", 61="+7.m[1][1]+", 60="+7.m[2][0]+", 5Y="+7.m[2][1]+", 5X=\'5W 5V\', 5U=\'5T\')"};9 t=I(j,l,m){9 g=18.1u("1m:1R"),2I=g.1h;2I.2m="2i";2I.1L=0;2I.1z=0;2I.13=m.13+"1A";2I.15=m.15+"1A";9 n=18.1u("1m:2p"),2E=n.1h;2E.13=m.13+"1A";2E.15=m.15+"1A";n.1g="";J(j["3X"]){n.5w=j["3X"]}n.33=7.33;n.34=7.34;g.1b(n);m.19.1b(g);9 p=1n z(n,g,m);u(p,j);J(j.1K){v(p,j.1K)}p.P=24;p.1a="1g";p.1g=[];p.O={x:0,y:0,2g:0,2d:0,P:24};p.2k="";p.2K=I(){7.P=24;K 7};p.36=I(){7.P=31;K 7};p.48=I(){7.2k="";9 a=7.1g;7.1g=[];1l(9 i=0,1k=a.17;i<1k;i++){J(a[i].1a!="3k"){7[a[i].1a+"4h"].2v(7,a[i].1U)}1j{7.2s()}}K 7};p.2e=I(x,y){9 d=7.P?"m":"t";9 a=7.P?m.1d:m.1w;9 b=7.P?m.1f:m.1y;d+=T.14(a(U(x,10)))+" "+T.14(b(U(y,10)));7[0].1g=7.2k+=d;7.O.x=(7.P?0:7.O.x)+a(U(x,10));7.O.y=(7.P?0:7.O.y)+b(U(y,10));7.O.P=7.P;7.1g.1J({1a:"4l",1U:[].2Z.2z(N,0),25:7.P});K 7};p.1o=I(x,y){9 d=7.P?"l":"r";9 a=7.P?m.1d:m.1w;9 b=7.P?m.1f:m.1y;d+=T.14(a(U(x,10)))+" "+T.14(b(U(y,10)));7[0].1g=7.2k+=d;7.O.x=(7.P?0:7.O.x)+a(U(x,10));7.O.y=(7.P?0:7.O.y)+b(U(y,10));7.O.P=7.P;7.1g.1J({1a:"4m",1U:[].2Z.2z(N,0),25:7.P});K 7};p.3h=I(a,b,c,e,f,g){f=(7.P?0:7.O.x)+f;g=(7.P?0:7.O.y)+g;9 h=7.O.x,2O=7.O.y,x=(h-f)/2,y=(2O-g)/2,k=(c==e?-1:1)*T.4P((a*a*b*b-a*a*y*y-b*b*x*x)/(a*a*y*y+b*b*x*x)),1E=k*a*y/b+(h+f)/2,1H=k*-b*x/a+(2O+g)/2,d=e?(7.P?"4M":"4L"):(7.P?"4K":"4J"),1d=7.P?m.1d:m.1w,1f=7.P?m.1f:m.1y,1L=T.14(1E-a),1z=T.14(1H-b);d+=[1L,1z,T.14(1L+a*2),T.14(1z+b*2),T.14(h),T.14(2O),T.14(1d(U(f,10))),T.14(1d(U(g,10)))].1W(", ");7[0].1g=7.2k+=d;7.O.x=(7.P?0:7.O.x)+1d(U(f,10));7.O.y=(7.P?0:7.O.y)+1f(U(g,10));7.O.P=7.P;7.1g.1J({1a:"4C",1U:[].2Z.2z(N,0),25:7.P});K 7};p.4D=I(a,b,c){J(!c){K 7.1o(a,b)}1j{9 p={};p.1d=7.P?m.1d:m.1w;p.1f=7.P?m.1f:m.1y;9 x=T.14(p.1d(T.14(U(a,10)*1e)/1e));9 y=T.14(p.1f(T.14(U(b,10)*1e)/1e));9 w=T.14(m.1w(T.14(U(c,10)*1e)/1e));9 d=7.P?"c":"v";9 e=[T.14(7.O.x)+w,T.14(7.O.y),x-w,y,x,y];d+=e.1W(" ")+" ";7.O.x=(7.P?0:7.O.x)+e[4];7.O.y=(7.P?0:7.O.y)+e[5];7.O.2g=e[2];7.O.2d=e[3];7[0].1g=7.2k+=d;7.1g.1J({1a:"4B",1U:[].2Z.2z(N,0),25:7.P});K 7}};p.1t=I(){9 d=7.P?"c":"v";9 a=7.P?m.1d:m.1w;9 b=7.P?m.1f:m.1y;J(N.17==6){7.O.2g=(7.P?0:7.O.x)+a(U(N[2],10));7.O.2d=(7.P?0:7.O.y)+b(U(N[3],10));7.O.x=(7.P?0:7.O.x)+a(U(N[4],10));7.O.y=(7.P?0:7.O.y)+b(U(N[5],10));d+=T.14(a(U(N[0],10)))+" "+T.14(b(U(N[1],10)))+" "+T.14(a(U(N[2],10)))+" "+T.14(b(U(N[3],10)))+" "+T.14(a(U(N[4],10)))+" "+T.14(b(U(N[5],10)))+" ";7.O.P=7.P}J(N.17==4){9 c=7.O.x*2-7.O.2g;9 e=7.O.y*2-7.O.2d;7.O.2g=(7.P?0:7.O.x)+a(U(N[0],10));7.O.2d=(7.P?0:7.O.y)+b(U(N[1],10));7.O.x=(7.P?0:7.O.x)+a(U(N[2],10));7.O.y=(7.P?0:7.O.y)+b(U(N[3],10));d+=[T.14(c),T.14(e),T.14(a(U(N[0],10))),T.14(b(U(N[1],10))),T.14(a(U(N[2],10))),T.14(b(U(N[3],10)))].1W(" ")}7[0].1g=7.2k+=d;7.1g.1J({1a:"4y",1U:[].2Z.2z(N,0),25:7.P});K 7};p.2H=I(r,a){9 R=.4v*r,27=7.P,o=7;J(27){7.36();27=I(){o.2K()}}1j{27=I(){}}9 b={l:I(){K{u:I(){o.1t(-R,0,-r,-(r-R),-r,-r)},d:I(){o.1t(-R,0,-r,r-R,-r,r)}}},r:I(){K{u:I(){o.1t(R,0,r,-(r-R),r,-r)},d:I(){o.1t(R,0,r,r-R,r,r)}}},u:I(){K{r:I(){o.1t(0,-R,-(R-r),-r,r,-r)},l:I(){o.1t(0,-R,R-r,-r,-r,-r)}}},d:I(){K{r:I(){o.1t(0,R,-(R-r),r,r,r)},l:I(){o.1t(0,R,R-r,r,-r,r)}}}};b[a.3g(0)]()[a.3g(1)]();27();K o};p.2s=I(){7[0].1g=(7.2k+="x e");K 7};J(1i l=="2c"){p.2K();C.3B(p,l)}K p};9 u=I(o,a){9 s=o[0].1h;o.Q=o.Q||{};1l(9 b 1p a){o.Q[b]=a[b]}a["2h-4k"]&&(s.54=a["2h-4k"]);a["2h-4i"]&&(s.59=a["2h-4i"]);a["2h"]&&(s.2h=a["2h"]);a["2h-38"]&&(s.5d=a["2h-38"]);J(1i a.1B!="1r"||1i a["1c-13"]!="1r"||1i a.1x!="1r"||1i a.1c!="1r"){o=o.2p||o[0];9 c=(o.2X("1x")&&o.2X("1x")[0])||18.1u("1m:1x");J("1x-1B"1p a||"1B"1p a){c.1B=((a["1x-1B"]+1||2)-1)*((a.1B+1||2)-1)}J(a.1x){c.28=24}J(c.28==1r||a.1x=="1P"){c.28=31}J(c.28&&a.1x){c.22=a.1x}o.1b(c);9 d=(o.2X("1c")&&o.2X("1c")[0])||18.1u("1m:1c");J((a.1c&&a.1c!="1P")||a["1c-13"]||a["1c-1B"]||a["1c-30"]){d.28=24}J(a.1c=="1P"||1i d.28=="1r"){d.28=31}J(d.28&&a.1c){d.22=a.1c}d.1B=((a["1c-1B"]+1||2)-1)*((a.1B+1||2)-1);a["1c-47"]&&(d.5h=a["1c-47"]||"46");d.45=a["1c-45"]||8;a["1c-43"]&&(d.5p={5q:"5v",3Z:"3Z",14:"14"}[a["1c-43"]]||"46");a["1c-13"]&&(d.38=(U(a["1c-13"],10)||1)*12/16);J(a["1c-30"]){9 e=a["1c-30"].2w(" ",",").5A(","),3y=[],3T=d.38;1l(9 i=0,1k=e.17;i<1k;i++){9 f=e[i]/3T;J(!5C(f)){3y.1J(f)}};d.5D=3y.1W(" ")}o.1b(d)}};9 v=I(o,a){o.Q=o.Q||{};o.Q.1K=a;o=o.2p||o[0];9 b=o.2X("1x");J(b.17){b=b[0]}1j{b=18.1u("1m:1x")}J(a.1q.17){b.28=24;b.1a=(a.1a.3z()=="5S")?"1K":"5Z";J(1i a.1q[0].22!="1r"){b.22=a.1q[0].22||"#1D"}J(1i a.1q[0].1B!="1r"){b.1B=a.1q[0].1B}J(1i a.1q[a.1q.17-1].1B!="1r"){b.6b=a.1q[a.1q.17-1].1B}J(1i a.1q[a.1q.17-1].22!="1r"){b.6e=a.1q[a.1q.17-1].22||"#1D"}9 c="";1l(9 i=1,1k=a.1q.17-1;i<1k;i++){c+=a.1q[i].3d+" "+a.1q[i].22;J(i!=1k-1){c+=","}};J(c){b.6u=c}J(a.1X){9 d=T.14(T.3G((1G(a.1X[3],10)-1G(a.1X[1],10))/(1G(a.1X[2],10)-1G(a.1X[0],10)))*57.29)+6z;b.6v=d+6g}J(a.1a.3z()=="6a"){b.5R="0.5, 0.5";b.5O="0, 0";b.5B="1P"}}};9 z=I(b,c,d){9 e=0,5y=0,5x=0,5g=1;7[0]=b;7.3D=b;7.X=0;7.Y=0;7.Q={};7.1v=c;7.23=d;7.3s=I(a){J(a==1r){K e}e+=a;7.1v.1h.5f=e;K 7}};z.1s.2B=I(a){9 b=7.1v.1h,2C=7[0].1h;1l(9 i 1p a){7.Q[i]=a[i]}9 c=7.Q,x,y,w,h;49(7.1a){1F"32":x=c.1E-c.r;y=c.1H-c.r;w=h=c.r*2;1Q;1F"2S":x=c.1E-c.2l;y=c.1H-c.2n;w=c.2l*2;h=c.2n*2;1Q;1F"2f":1F"2A":x=c.x;y=c.y;w=c.w;h=c.h;1Q;1F"1I":7.3j.v=["m",T.14(c.x),", ",T.14(c.y-2),"l",T.14(c.x)+1,", ",T.14(c.y-2)].1W("");K;3l:K}9 d=7.23.13/2-w/2,1z=7.23.15/2-h/2;b.2m="2i";b.1L=x-d+"1A";b.1z=y-1z+"1A";7.X=x-d;7.Y=y-1z;7.W=w;7.H=h;b.13=7.23.13+"1A";b.15=7.23.15+"1A";2C.2m="2i";2C.1z=1z+"1A";2C.1L=d+"1A";2C.13=w+"1A";2C.15=h+"1A"};z.1s.4a=I(){7.1v.1h.3i="1P";K 7};z.1s.4b=I(){7.1v.1h.3i="4c";K 7};z.1s.3o=I(x,y){J(x==1r&&y==1r){K{x:7.X,y:7.Y}}7.X+=x;7.Y+=y;7.1v.1h.1L=7.X+"1A";7.1v.1h.1z=7.Y+"1A";K 7};z.1s.3p=I(a,b,c,d,e,f){3t=1n 2j(a,b,c,d,e,f);7.1v.1h.4d=3t;K 7};z.1s.4e=I(x,y){J(x==1r&&y==1r){K}y=y||x;J(x!=0&&!(x==1&&y==1)){9 a=T.14(x/T.4g(x)),3a=T.14(y/T.4g(y)),s=7[0].1h;J(a!=1||3a!=1){s.4d=1n 2j(a,0,0,3a,0,0)}9 b=1G(s.13,10)*x*a;9 c=1G(s.15,10)*y*3a;9 d=1G(s.1L,10);9 e=1G(s.1z,10);s.1L=7.X=d+7.W/2-b/2;s.1z=7.Y=e+7.H/2-c/2;s.13=7.W=b;s.15=7.H=c}K 7};z.1s.35=I(){K{x:7.1v.4Z,y:7.1v.4U,13:7.1v.4G,15:7.1v.4S}};z.1s.2W=I(){7[0].1C.26(7[0]);7.1v.1C.26(7.1v);7.2p&&7.2p.1C.26(7.2p)};z.1s.2G=I(){J(N.17==1&&1i N[0]=="2c"){K 7.Q[N[0]]}J(7.Q&&N.17==1&&N[0]4p 4q){9 a={};1l(9 i=0,1k=N[0].17;i<1k;i++){a[N[0][i]]=7.Q[N[0][i]]};K a}J(7[0].4R.3z()=="1R"){9 b=7[0].2Q;7.Q=7.Q||{};J(N.17==2){7.Q[N[0]]=N[1]}1j J(N.17==1||1i N[0]=="2t"){1l(9 j 1p N[0]){7.Q[j]=N[0][j]}}1l(9 i=0,1k=b.17;i<1k;i++){7.2G.2v(1n 4Q(b[i],7[0],7.23),N)}}1j{9 c;J(N.17==2){c={};c[N[0]]=N[1]}J(N.17==1&&1i N[0]=="2t"){c=N[0]}J(c){u(7,c);7.2B(c);J(c.1K){v(7,c.1K)}J(c.1I&&7.1a=="1I"){7[0].2c=c.1I}J(c.2N){7[0].2N=c.2N}}}K 7};z.1s.4t=I(){7.1v.1C.1b(7.1v);K 7};z.1s.4u=I(){J(7.1v.1C.1T!=7.1v){7.1v.1C.3b(7.1v,7.1v.1C.1T)}K 7};9 A=I(a,x,y,r){9 g=18.1u("1m:1R");9 o=18.1u("1m:4w");g.1b(o);a.19.1b(g);9 b=1n z(o,g,a);u(b,{1c:"#1D",1x:"1P"});b.2B({x:x-r,y:y-r,w:r*2,h:r*2});b.Q.1E=x;b.Q.1H=y;b.Q.r=r;b.1a="32";K b};9 B=I(a,x,y,w,h,r){9 g=18.1u("1m:1R");9 o=18.1u(r?"1m:4O":"1m:2f");J(r){o.4N=r/(T.2U(w,h))}g.1b(o);a.19.1b(g);9 b=1n z(o,g,a);u(b,{1c:"#1D"});b.2B({x:x,y:y,w:w,h:h});b.Q.x=x;b.Q.y=y;b.Q.w=w;b.Q.h=h;b.Q.r=r;b.1a="2f";K b};9 D=I(a,x,y,b,c){9 g=18.1u("1m:1R");9 o=18.1u("1m:4w");g.1b(o);a.19.1b(g);9 d=1n z(o,g,a);u(d,{1c:"#1D"});d.2B({x:x-b,y:y-c,w:b*2,h:c*2});d.Q.1E=x;d.Q.1H=y;d.Q.2l=b;d.Q.2n=c;d.1a="2S";K d};9 E=I(a,b,x,y,w,h){9 g=18.1u("1m:1R");9 o=18.1u("1m:2A");o.4I=b;g.1b(o);a.19.1b(g);9 c=1n z(o,g,a);c.1a="2A";c.2B({x:x,y:y,w:w,h:h});c.Q.x=x;c.Q.y=y;c.Q.w=w;c.Q.h=h;K c};9 F=I(a,x,y,b){9 g=18.1u("1m:1R"),2x=g.1h;9 c=18.1u("1m:2p"),2E=c.1h;9 d=18.1u("1m:1g"),4H=d.1h;d.v=["m",T.14(x),", ",T.14(y-2),"l",T.14(x)+1,", ",T.14(y-2)].1W("");d.4T=24;2E.13=a.13;2E.15=a.15;2x.2m="2i";2x.1L=0;2x.1z=0;2x.13=a.13;2x.15=a.15;9 o=18.1u("1m:3j");o.2c=b;o.28=24;o.33=a.33;o.34=a.34;c.1b(o);c.1b(d);g.1b(c);a.19.1b(g);9 e=1n z(o,g,a);e.2p=c;e.3j=d;e.1a="1I";e.Q.x=x;e.Q.y=y;e.Q.w=1;e.Q.h=1;K e};9 G=I(a){9 b=18.1u("1m:1R"),2D=b.1h;2D.2m="2i";2D.1L=0;2D.1z=0;2D.13=a.13;2D.15=a.15;J(a.19){a.19.1b(b)}9 c=1n z(b,b,a);1l(9 f 1p a){J(f.3g(0)!="4E"&&1i a[f]=="I"){c[f]=(I(f){K I(){9 e=a[f].2v(a,N);b.1b(e[0].1C);K e}})(f)}}c.1a="1R";K c};r.3n=I(){9 d,13,15;J(1i N[0]=="2c"){d=18.4F(N[0]);13=N[1];15=N[2]}J(1i N[0]=="2t"){d=N[0];13=N[1];15=N[2]}J(1i N[0]=="4A"){d=1;x=N[0];y=N[1];13=N[2];15=N[3]}J(!d){4z 1n 4x("2M 4s 4r 4o.");}J(!18.4n["1m"]){18.4n.4V("1m","4W:4X-4Y-50:23");18.51().52("1m\\\\:*","53:4j(#3l#2M)")}9 c=18.1u("55"),r=C.19=18.1u("1m:1R"),2b=c.1h,2P=r.1h;C.13=13;C.15=15;13=13||"56";15=15||"58";2b.5a="2f(0 "+13+" "+15+" 0)";2b.2m="2i";2P.13=13;2P.15=15;r.33=(13=="1e%"?13:U(13))+" "+(15=="1e%"?15:U(15));r.34="0 0";9 b=18.1u("1m:2f"),2T=b.1h;2T.1L=2T.1z=0;2T.13=2P.13;2T.15=2P.15;b.5b=b.5c="f";r.1b(b);c.1b(r);J(d==1){18.4f.1b(c);2b.2m="2i";2b.1L=x+"1A";2b.1z=y+"1A";2b.13=13;2b.15=15;d={1h:{13:13,15:15}}}1j{2b.13=d.1h.13=13;2b.15=d.1h.15=15;J(d.1T){d.3b(c,d.1T)}1j{d.1b(c)}}1l(9 e 1p C){d[e]=C[e]}d.3q=I(){9 a=[];1l(9 i=0,1k=r.2Q.17;i<1k;i++){J(r.2Q[i]!=b){a.1J(r.2Q[i])}}1l(i=0,1k=a.17;i<1k;i++){r.26(a[i])}};K d};C.2W=I(){C.19.1C.1C.26(C.19.1C)}}J(q=="2y"){2j.1s.2J=I(){K"3p("+7.m[0][0]+", "+7.m[1][0]+", "+7.m[0][1]+", "+7.m[1][1]+", "+7.m[2][0]+", "+7.m[2][1]+")"};9 t=I(j,k,l){9 m=18.1Z(l.1O,"1g");m.11("1x","1P");J(j){1l(9 n 1p j){J(j.1K){v(m,j.1K,l)}1j{m.11(n,j[n])}}}J(l.19){l.19.1b(m)}9 p=1n z(m,l);1l(9 n 1p j){p.Q[n]=j[n]}p.P=24;p.1g=[];p.O={x:0,y:0,2g:0,2d:0};p.2K=I(){7.P=24;K 7};p.36=I(){7.P=31;K 7};p.48=I(){7[0].11("d","5e 0");9 a=7.1g;7.1g=[];1l(9 i=0,1k=a.17;i<1k;i++){J(a[i].1a!="3k"){7[a[i].1a+"4h"].2v(7,a[i].1U)}1j{7.2s()}}K 7};p.2e=I(x,y){9 d=7.P?"M":"m";9 a=7.P?l.1d:l.1w;9 b=7.P?l.1f:l.1y;d+=a(U(x,10))+" "+b(U(y,10))+" ";9 c=7[0].2r("d")||"";7[0].11("d",c+d);7.O.x=(7.P?0:7.O.x)+l.1d(U(x,10));7.O.y=(7.P?0:7.O.y)+l.1f(U(y,10));7.1g.1J({1a:"4l",1U:N,25:7.P});K 7};p.1o=I(x,y){7.O.x=(7.P?0:7.O.x)+l.1d(U(x,10));7.O.y=(7.P?0:7.O.y)+l.1f(U(y,10));9 d=7.P?"L":"l";9 a=7.P?l.1d:l.1w;9 b=7.P?l.1f:l.1y;d+=a(U(x,10))+" "+b(U(y,10))+" ";9 c=7[0].2r("d")||"";7[0].11("d",c+d);7.1g.1J({1a:"4m",1U:N,25:7.P});K 7};p.3h=I(a,b,c,e,x,y){9 d=7.P?"A":"a";9 f=7.P?l.1d:l.1w;9 g=7.P?l.1f:l.1y;d+=[l.1w(U(a,10)),l.1y(U(b,10)),0,c,e,f(U(x,10)),g(U(y,10))].1W(" ");9 h=7[0].2r("d")||"";7[0].11("d",h+d);7.O.x=l.1d(U(x,10));7.O.y=l.1f(U(y,10));7.1g.1J({1a:"4C",1U:N,25:7.P});K 7};p.4D=I(a,b,c){J(!c){K 7.1o(a,b)}1j{9 p={};p.1d=7.P?l.1d:l.1w;p.1f=7.P?l.1f:l.1y;9 x=p.1d(T.14(U(a,10)*1e)/1e);9 y=p.1f(T.14(U(b,10)*1e)/1e);9 w=l.1w(T.14(U(c,10)*1e)/1e);9 d=7.P?"C":"c";9 e=[7.O.x+w,7.O.y,x-w,y,x,y];1l(9 i=0,1k=e.17;i<1k;i++){d+=e[i]+" "}7.O.x=(7.P?0:7.O.x)+e[4];7.O.y=(7.P?0:7.O.y)+e[5];7.O.2g=e[2];7.O.2d=e[3];9 f=7[0].2r("d")||"";7[0].11("d",f+d);7.1g.1J({1a:"4B",1U:N,25:7.P});K 7}};p.1t=I(){9 p={};p.1d=7.P?l.1d:l.1w;p.1f=7.P?l.1f:l.1y;J(N.17==6){9 d=7.P?"C":"c";1l(9 i=0,1k=N.17;i<1k;i++){d+=p[(i%2==0)?"1d":"1f"](T.14(U(N[i],10)*1e)/1e)+" "}7.O.x=(7.P?0:7.O.x)+p.1d((U(N[4],10)*1e)/1e);7.O.y=(7.P?0:7.O.y)+p.1f((U(N[5],10)*1e)/1e);7.O.2g=p.1d((U(N[2],10)*1e)/1e);7.O.2d=p.1f((U(N[3],10)*1e)/1e)}1j{J(N.17==4){9 d=7.P?"S":"s";1l(9 i=0,1k=N.17;i<1k;i++){d+=p[i%2==0?"1d":"1f"]((U(N[i],10)*1e)/1e)+" "}}7.O.x=(7.P?0:7.O.x)+p.1d((U(N[2],10)*1e)/1e);7.O.y=(7.P?0:7.O.y)+p.1f((U(N[3],10)*1e)/1e);7.O.2g=p.1d((U(N[0],10)*1e)/1e);7.O.2d=p.1f((U(N[1],10)*1e)/1e)}9 a=7[0].2r("d")||"";7[0].11("d",a+d);7.1g.1J({1a:"4y",1U:N,25:7.P});K 7};p.2H=I(r,a){9 R=.4v*r,27=7.P,o=7;J(27){7.36();27=I(){o.2K()}}1j{27=I(){}}9 b={l:I(){K{u:I(){o.1t(-R,0,-r,-(r-R),-r,-r)},d:I(){o.1t(-R,0,-r,r-R,-r,r)}}},r:I(){K{u:I(){o.1t(R,0,r,-(r-R),r,-r)},d:I(){o.1t(R,0,r,r-R,r,r)}}},u:I(){K{r:I(){o.1t(0,-R,-(R-r),-r,r,-r)},l:I(){o.1t(0,-R,R-r,-r,-r,-r)}}},d:I(){K{r:I(){o.1t(0,R,-(R-r),r,r,r)},l:I(){o.1t(0,R,R-r,r,-r,r)}}}};b[a[0]]()[a[1]]();27();K o};p.2s=I(){9 a=7[0].2r("d")||"";7[0].11("d",a+"Z ");7.1g.1J({1a:"3k"});K 7};J(1i k=="2c"){p.2K();C.3B(p,k)}K p};9 v=I(o,a,b){9 c=18.1Z(b.1O,a.1a+"5i");c.2N="5j-1K-"+b.44++;J(a.1X&&a.1X.17){c.11("5k",a.1X[0]);c.11("2O",a.1X[1]);c.11("5l",a.1X[2]);c.11("5m",a.1X[3])}b.37.1b(c);1l(9 i=0,1k=a.1q.17;i<1k;i++){9 d=18.1Z(b.1O,"3x");d.11("3d",a.1q[i].3d?a.1q[i].3d:(i==0)?"0%":"1e%");d.11("3x-22",a.1q[i].22||"#5n");J(1i a.1q[i].1B!="1r"){d.11("3x-1B",a.1q[i].1B)}c.1b(d)};o.11("1x","4j(#"+c.2N+")")};9 z=I(c,d){9 X=0,Y=0,2Y={2V:0,x:0,y:0},2u=1,2q=1,3t=5o;7[0]=c;7.3D=c;7.1Y=d;7.Q=7.Q||{};7.1N=[];7.3s=I(a){J(a==1r){K 2Y.2V}9 b=7.35();2Y.2V+=a;J(2Y.2V){7.1N[0]=("3s("+2Y.2V+" "+(b.x+b.13/2)+" "+(b.y+b.15/2)+")")}1j{7.1N[0]=""}7[0].11("3f",7.1N.1W(" "));K 7};7.3o=I(x,y){J(x==1r&&y==1r){K{x:X,y:Y}}X+=x;Y+=y;J(X&&Y){7.1N[1]="3o("+X+","+Y+")"}1j{7.1N[1]=""}7[0].11("3f",7.1N.1W(" "));K 7};7.4e=I(x,y){J(x==1r&&y==1r){K{x:2u,y:2q}}y=y||x;J(x!=0&&!(x==1&&y==1)){2u*=x;2q*=y;J(!(2u==1&&2q==1)){9 a=7.35(),2L=a.x*(1-2u)+(a.13/2-a.13*2u/2),42=a.y*(1-2q)+(a.15/2-a.15*2q/2);7.1N[2]=1n 2j(2u,0,0,2q,2L,42)}1j{7.1N[2]=""}7[0].11("3f",7.1N.1W(" "))}K 7}};z.1s.4a=I(){7[0].1h.3i="1P";K 7};z.1s.4b=I(){7[0].1h.3i="4c";K 7};z.1s.3p=I(a,b,c,d,e,f){7.1N[3]=1n 2j(a,b,c,d,e,f);7[0].11("3f",7.1N.1W(" "));K 7};z.1s.2W=I(){7[0].1C.26(7[0])};z.1s.35=I(){K 7[0].35()};z.1s.2G=I(){J(N.17==1&&1i N[0]=="2c"){K 7[0].2r(N[0])}J(N.17==1&&N[0]4p 4q){9 a={};1l(9 j 1p N[0]){a[N[0][j]]=7.Q[N[0][j]]}K a}J(N.17==2){9 b=N[0],1S=N[1];7[b]=1S;7.Q[b]=1S;49(b){1F"2l":1F"1E":1F"x":7[0].11(b,7.1Y.1d(1S));1Q;1F"2n":1F"1H":1F"y":7[0].11(b,7.1Y.1f(1S));1Q;1F"13":7[0].11(b,7.1Y.1w(1S));1Q;1F"15":7[0].11(b,7.1Y.1y(1S));1Q;1F"1K":v(7[0],1S,7.1Y);1Q;1F"1c-30":7[0].11(b,1S.2w(" ",","));1Q;1F"1I":J(7.1a=="1I"){7[0].26(7[0].1T);7[0].1b(18.3w(1S))}1Q;3l:9 c=b.2w(/(\\-.)/g,I(w){K w.2o(1).41()});7[0].1h[c]=1S;7[0].11(b,1S);1Q}}1j J(N.17==1&&1i N[0]=="2t"){9 d=N[0];1l(9 e 1p d){7.Q[e]=d[e];J(e=="1c-30"){7[0].11(e,d[e].2w(" ",","))}1j J(e=="1I"&&7.1a=="1I"){7[0].2Q.17&&7[0].26(7[0].1T);7[0].1b(18.3w(d.1I))}1j{9 c=e.2w(/(\\-.)/g,I(w){K w.2o(1).41()});7[0].1h[c]=d[e];7[0].11(e,d[e])}}J(d.1K){7.Q.1K=d.1K;v(7[0],d.1K,7.1Y)}}K 7};z.1s.4t=I(){7[0].1C.1b(7[0]);K 7};z.1s.4u=I(){J(7[0].1C.1T!=7[0]){7[0].1C.3b(7[0],7[0].1C.1T)}K 7};9 A=I(a,x,y,r){9 b=18.1Z(a.1O,"32");b.11("1E",a.1d(x));b.11("1H",a.1f(y));b.11("r",r);b.11("1x","1P");b.11("1c","#1D");J(a.19){a.19.1b(b)}9 c=1n z(b,a);c.Q=c.Q||{};c.Q.1E=x;c.Q.1H=y;c.Q.r=r;c.Q.1c="#1D";c.1a="32";K c};9 B=I(a,x,y,w,h,r){9 b=18.1Z(a.1O,"2f");b.11("x",a.1d(x));b.11("y",a.1f(y));b.11("13",a.1w(w));b.11("15",a.1y(h));J(r){b.11("2l",r);b.11("2n",r)}b.11("1x","1P");b.11("1c","#1D");J(a.19){a.19.1b(b)}9 c=1n z(b,a);c.Q=c.Q||{};c.Q.x=x;c.Q.y=y;c.Q.13=w;c.Q.15=h;c.Q.1c="#1D";J(r){c.Q.2l=c.Q.2n=r}c.1a="2f";K c};9 D=I(a,x,y,b,c){9 d=18.1Z(a.1O,"2S");d.11("1E",a.1d(x));d.11("1H",a.1f(y));d.11("2l",a.1w(b));d.11("2n",a.1y(c));d.11("1x","1P");d.11("1c","#1D");J(a.19){a.19.1b(d)}9 e=1n z(d,a);e.Q=e.Q||{};e.Q.1E=x;e.Q.1H=y;e.Q.2l=b;e.Q.2n=c;e.Q.1c="#1D";e.1a="2S";K e};9 E=I(a,b,x,y,w,h){9 c=18.1Z(a.1O,"2A");c.11("x",a.1d(x));c.11("y",a.1f(y));c.11("13",a.1w(w));c.11("15",a.1y(h));c.5r(a.3r,"5s",b);J(a.19){a.19.1b(c)}9 d=1n z(c,a);d.Q=d.Q||{};d.Q.x=x;d.Q.y=y;d.Q.13=w;d.Q.15=h;d.1a="2A";K d};9 F=I(a,x,y,b){9 c=18.1Z(a.1O,"1I");c.11("x",x);c.11("y",y);c.11("1I-5t","5u");c.11("1x","#1D");J(b){c.1b(18.3w(b))}J(a.19){a.19.1b(c)}9 d=1n z(c,a);d.Q=d.Q||{};d.Q.x=x;d.Q.y=y;d.Q.1x="#1D";d.1a="1I";K d};9 G=I(a){9 b=18.1Z(a.1O,"g");J(a.19){a.19.1b(b)}9 i=1n z(b,a);1l(9 f 1p a){J(f[0]!="4E"&&1i a[f]=="I"){i[f]=(I(f){K I(){9 e=a[f].2v(a,N);b.1b(e[0]);K e}})(f)}}i.1a="1R";K i};r.3n=I(){J(1i N[0]=="2c"){9 a=18.4F(N[0]);9 b=N[1];9 c=N[2]}J(1i N[0]=="2t"){9 a=N[0];9 b=N[1];9 c=N[2]}J(1i N[0]=="4A"){9 a=1,x=N[0],y=N[1],b=N[2],c=N[3]}J(!a){4z 1n 4x("2y 4s 4r 4o.");}C.19=18.1Z(C.1O,"1Y");C.19.11("13",b||40);C.13=b||40;C.19.11("15",c||3Y);C.15=c||3Y;J(a==1){18.4f.1b(C.19);C.19.1h.2m="2i";C.19.1h.1L=x+"1A";C.19.1h.1z=y+"1A"}1j{J(a.1T){a.3b(C.19,a.1T)}1j{a.1b(C.19)}}a={19:C.19,3q:I(){3W(7.19.1T){7.19.26(7.19.1T)}7.37=18.1Z(C.1O,"37");7.44=0;7.19.1b(7.37)}};1l(9 d 1p C){J(d!="5z"){a[d]=C[d]}}a.3q();K a};C.2W=I(){C.19.1C.26(C.19)};C.1O="3V://3U.3S.3R/5E/1Y";C.3r="3V://3U.3S.3R/5F/3r"}J(q=="2M"||q=="2y"){C.32=I(x,y,r){K A(7,x,y,r)};C.2f=I(x,y,w,h,r){K B(7,x,y,w,h,r)};C.2S=I(x,y,a,b){K D(7,x,y,a,b)};C.1g=I(a,b){K t(a,b,7)};C.2A=I(a,x,y,w,h){K E(7,a,x,y,w,h)};C.1I=I(x,y,a){K F(7,x,y,a)};C.1R=I(){K G(7)};C.5G=I(x,y,w,h,r){J(r&&1G(r,10)){K 7.1g({1c:"#1D"}).2e(x+r,y).1o(x+w-r,y).2H(r,"5H").1o(x+w,y+h-r).2H(r,"5I").1o(x+r,y+h).2H(r,"5J").1o(x,y+r).2H(r,"5K").2s()}K 7.1g({1c:"#1D"}).2e(x,y).1o(x+w,y).1o(x+w,y+h).1o(x,y+h).2s()};C.5L=I(x,y,w,h,a,b,c){c=c||"#1D";9 p=7.1g({1c:c,"1c-13":1}).2e(x,y).1o(x+w,y).1o(x+w,y+h).1o(x,y+h).1o(x,y);1l(9 i=1;i<b;i++){p.2e(x,y+i*T.14(h/b)).1o(x+w,y+i*T.14(h/b))}1l(9 i=1;i<a;i++){p.2e(x+i*T.14(w/a),y).1o(x+i*T.14(w/a),y+h)}K p};C.5M=I(a,b,c,d,w,h){9 e=(c-a)/w;9 f=(d-b)/h;7.1d=I(x){K a+x*e};7.1f=I(y){K b+y*f};7.1w=I(w){K w*e};7.1y=I(h){K h*f}};C.5N=I(){7.1d=7.1f=7.1w=7.1y=I(x){K x}};C.3m=I(){J(r.1a=="2y"){9 a=C.2f(-C.13,-C.15,C.13*3,C.15*3).2G({1c:"1P"});3Q(I(){a.2W()},0)}};z.1s.5P=I(x,y,d,e){5Q(7.3P);J("1E"1p 7.Q||"x"1p 7.Q){9 f=("1E"1p 7.Q),X=7.Q.1E||7.Q.x,Y=7.Q.1H||7.Q.y;J(x==X&&y==Y){K 7}9 g=y-Y,2L=x-X,39=g/2L,3O=Y-39*X,3N=T.3G(7.39);7.3C=7.68*T.69(3N);J(x<X){7.3C=-7.3C}9 h=1n 3M(),2R=7;(I(){9 a=(1n 3M()).3L()-h.3L();J(a<d){9 b=X+a*2L/d;9 c=b*39+3O;2R.2G(f?{1E:b,1H:c}:{x:b,y:c});2R.3P=3Q(N.3e,1);C.3m()}1j{2R.2G(f?{1E:x,1H:y}:{x:x,y:y});C.3m();e&&e.2z(2R)}})()}K 7};C.3B=I(p,g){9 h={M:I(x,y){7.2e(x,y)},m:I(x,y){7.2e(7.O.x+x,7.O.y+y)},C:I(a,b,c,d,e,f){7.1t(a,b,c,d,e,f)},c:I(a,b,c,d,e,f){7.1t(7.O.x+a,7.O.y+b,7.O.x+c,7.O.y+d,7.O.x+e,7.O.y+f)},S:I(a,b,c,d){p.1t(a,b,c,d)},s:I(a,b,c,d){7.1t(7.O.x+a,7.O.y+b,7.O.x+c,7.O.y+d)},L:I(x,y){p.1o(x,y)},l:I(x,y){7.1o(7.O.x+x,7.O.y+y)},H:I(x){7.1o(x,7.O.y)},h:I(x){7.1o(7.O.x+x,7.O.y)},V:I(y){7.1o(7.O.x,y)},v:I(y){7.1o(7.O.x,7.O.y+y)},A:I(a,b,c,d,e,x,y){7.3h(a,b,d,e,x,y)},a:I(a,b,c,d,e,x,y){7.3h(7.O.x+a,7.O.y+b,d,6c,7.O.x+x,7.O.y+y)},z:I(){7.2s()}};g.2w(/([6d])\\s*((-?\\d*\\.?\\d*\\s*,?\\s*)+)/3K,I(a,b,c){9 d=[];c.2w(/(-?\\d*\\.?\\d*)\\s*,?\\s*/3K,I(a,b){b&&d.1J(+b)});3W(d.17>=h[b].17){h[b].2v(p,d.6f(0,h[b].17));J(!h[b].17){1Q}}})};K r}1j{K I(){}}})((!(3A.3J&&3A.3J.6h==2))?"2M":"2y");1M.23=!(1M.1Y=(1M.1a=="2y"));J(1M.23&&3A.6i){1M.1a="6j 6k";1M.23=1M.1Y=31}1M.2J=I(){K"6l 6m 6n "+7.1a+".\\6o 6p 6q "+6r("6s%6t%20")+7.3I};1M.3H=I(a,c,d){J(1i a=="2t"&&"h"1p a&&"s"1p a&&"b"1p a){d=a.b;c=a.s;a=a.h}9 e,1V,21;J(d==0){K{r:0,g:0,b:0,3u:"#1D"}}1j{9 i=T.6w(a*6),f=(a*6)-i,p=d*(1-c),q=d*(1-(c*f)),t=d*(1-(c*(1-f)));[I(){e=d;1V=t;21=p},I(){e=q;1V=d;21=p},I(){e=p;1V=d;21=t},I(){e=p;1V=q;21=d},I(){e=t;1V=p;21=d},I(){e=d;1V=p;21=q},I(){e=d;1V=t;21=p}][i]()}9 h={r:e,g:1V,b:21};e*=2F;1V*=2F;21*=2F;9 r=T.14(e).2J(16);J(r.17==1){r="0"+r}9 g=T.14(1V).2J(16);J(g.17==1){g="0"+g}9 b=T.14(21).2J(16);J(b.17==1){b="0"+b}h.3u="#"+r+g+b;K h};1M.6x=I(a,b,c){J(1i a=="2t"&&"r"1p a&&"g"1p a&&"b"1p a){c=a.b;b=a.g;a=a.r}J(1i a=="2c"&&a.3g(0)=="#"){J(a.17==4){c=1G(a.2o(3),16);b=1G(a.2o(2,3),16);a=1G(a.2o(1,2),16)}1j{c=1G(a.2o(5),16);b=1G(a.2o(3,5),16);a=1G(a.2o(1,3),16)}}J(a>1||b>1||c>1){a/=2F;b/=2F;c/=2F}9 d=T.6y(a,b,c),2U=T.2U(a,b,c),2a,3v,3F=d;J(2U==d){K{h:0,s:0,b:d}}1j{9 e=(d-2U);3v=e/d;J(a==d){2a=(b-c)/e}1j J(b==d){2a=2+((c-a)/e)}1j{2a=4+((a-b)/e)}2a/=6;J(2a<0){2a+=1}J(2a>1){2a-=1}}K{h:2a,s:3v,b:3F}};1M.3E=I(a){9 b=N.3e.3c=N.3e.3c||{h:0,s:1,b:a||.6A};9 c=7.3H(b.h,b.s,b.b);b.h+=.6B;J(b.h>1){b.h=0;b.s-=.2;J(b.s<=0){N.3e.3c={h:0,s:1,b:b.b}}}K c.3u};1M.3E.6C=I(){7.3c=1r};'
,
62
,
411
,
'|||||||this||var|||||||||||||||||||||||||||||||||||function|if|return|||arguments|last|isAbsolute|attrs|||Math|parseFloat|||||||setAttribute||width|round|height||length|document|canvas|type|appendChild|stroke|_getX|100|_getY|path|style|typeof|else|ii|for|rvml|new|lineTo|in|dots|undefined|prototype|curveTo|createElement|Group|_getW|fill|_getH|top|px|opacity|parentNode|000|cx|case|parseInt|cy|text|push|gradient|left|Raphael|transformations|svgns|none|break|group|value|firstChild|arg|green|join|vector|svg|createElementNS||blue|color|vml|true|pos|removeChild|rollback|on||hue|cs|string|by|moveTo|rect|bx|font|absolute|Matrix|Path|rx|position|ry|substring|shape|ScaleY|getAttribute|andClose|object|ScaleX|apply|replace|gs|SVG|call|image|setBox|os|els|ol|255|attr|addRoundedCorner|gl|toString|absolutely|dx|VML|id|y1|rs|childNodes|that|ellipse|bs|min|deg|remove|getElementsByTagName|Rotation|slice|dasharray|false|circle|coordsize|coordorigin|getBBox|relatively|defs|weight|coeff|diry|insertBefore|start|offset|callee|transform|charAt|arcTo|display|textpath|end|default|safari|_create|translate|matrix|clear|xlink|rotate|tMatrix|hex|saturation|createTextNode|stop|dashesn|toLowerCase|window|pathfinder|xs|node|getColor|brightness|atan|hsb2rgb|version|SVGPreserveAspectRatio|ig|getTime|Date|alpha|plus|animation_in_progress|setTimeout|org|w3|str|www|http|while|class|200|square|320|toUpperCase|dy|linecap|gradients|miterlimit|miter|linejoin|redraw|switch|hide|show|block|filter|scale|body|abs|To|size|url|family|move|line|namespaces|found|instanceof|Array|not|container|toFront|toBack|5522|oval|Error|curve|throw|number|cpline|arc|cplineTo|_|getElementById|offsetWidth|ps|src|ar|at|wr|wa|arcsize|roundrect|sqrt|item|tagName|offsetHeight|textpathok|offsetTop|add|urn|schemas|microsoft|offsetLeft|com|createStyleSheet|addRule|behavior|fontFamily|div|320px||200px|fontSize|clip|filled|stroked|fontWeight|M0|rotation|Scale|joinstyle|Gradient|raphael|x1|x2|y2|fff|null|endcap|butt|setAttributeNS|href|anchor|middle|flat|className|RotY|RotX|create|split|method|isNaN|dashstyle|2000|1999|linerect|rd|dl|lu|ur|drawGrid|setGrid|clearGrid|focussize|animateTo|clearTimeout|focusposition|linear|bilinear|filtertype|expand|auto|sizingmethod|Dy|gradientradial|Dx|M22|M21|M12|M11|Microsoft|DXImageTransform|progid|step|cos|radial|opacity2|sweethisflag|mzlhvcsqta|color2|splice|90|SVG_PRESERVEASPECTRATIO_XMINYMIN|CanvasRenderingContext2D|Canvas|only|Your|browser|supports|nYou|are|running|unescape|Rapha|EBl|colors|angle|floor|rgb2hsb|max|180|75|075|reset'
.
split
(
'|'
),
0
,{}))
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment