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
c4bf67d1
authored
Dec 30, 2009
by
Dmitry Baranovskiy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
animateAlong method added
some bug fixes along the way
parent
7524b9fe
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
69 additions
and
30 deletions
+69
-30
raphael-min.js
+2
-3
raphael.js
+67
-27
No files found.
raphael-min.js
View file @
c4bf67d1
/*
/*
!
* Raphael 1.3.0dev - JavaScript Vector Library
* Raphael 1.3.0dev - JavaScript Vector Library
*
*
* Copyright (c) 2008 - 2009 Dmitry Baranovskiy (http://raphaeljs.com)
* Copyright (c) 2008 - 2009 Dmitry Baranovskiy (http://raphaeljs.com)
* Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
* Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
*/
*/
window
.
Raphael
=
(
function
(){
var
a
=
/
[
,
]
+/
,
aK
=
/^
(
circle|rect|path|ellipse|text|image
)
$/
,
J
=
document
,
aq
=
window
,
l
=
{
was
:
"Raphael"
in
aq
,
is
:
aq
.
Raphael
},
al
=
function
(){
if
(
al
.
is
(
arguments
[
0
],
"array"
)){
var
d
=
arguments
[
0
],
e
=
w
[
aS
](
al
,
d
.
splice
(
0
,
3
+
al
.
is
(
d
[
0
],
aj
))),
S
=
e
.
set
();
for
(
var
R
=
0
,
aW
=
d
[
m
];
R
<
aW
;
R
++
){
var
E
=
d
[
R
]
||
{};
aK
.
test
(
E
.
type
)
&&
S
[
f
](
e
[
E
.
type
]().
attr
(
E
));}
return
S
;}
return
w
[
aS
](
al
,
arguments
);},
aP
=
function
(){},
aH
=
"appendChild"
,
aS
=
"apply"
,
aO
=
"concat"
,
ap
=
""
,
ak
=
" "
,
z
=
"split"
,
D
=
"click dblclick mousedown mousemove mouseout mouseover mouseup"
[
z
](
ak
),
O
=
"hasOwnProperty"
,
av
=
"join"
,
m
=
"length"
,
aU
=
"prototype"
,
aV
=
String
[
aU
].
toLowerCase
,
Z
=
Math
,
g
=
Z
.
max
,
aE
=
Z
.
min
,
aj
=
"number"
,
aw
=
"toString"
,
at
=
Object
[
aU
][
aw
],
aM
=
{},
aI
=
Z
.
pow
,
f
=
"push"
,
aQ
=
/^
(?=[\d
a-f
]
$
)
/
,
c
=
/^url
\([
'"
]?([^\)]
+
)[
'"
]?\)
$/i
,
x
=
/^
\s
*
((
#
[
a-f
\d]{6})
|
(
#
[
a-f
\d]{3})
|rgb
\(\s
*
([\d\.]
+
\s
*,
\s
*
[\d\.]
+
\s
*,
\s
*
[\d\.]
+
)\s
*
\)
|rgb
\(\s
*
([\d\.]
+%
\s
*,
\s
*
[\d\.]
+%
\s
*,
\s
*
[\d\.]
+%
)\s
*
\)
|hs
[
bl
]\(\s
*
([\d\.]
+
\s
*,
\s
*
[\d\.]
+
\s
*,
\s
*
[\d\.]
+
)\s
*
\)
|hs
[
bl
]\(\s
*
([\d\.]
+%
\s
*,
\s
*
[\d\.]
+%
\s
*,
\s
*
[\d\.]
+%
)\s
*
\))\s
*$/i
,
M
=
Z
.
round
,
v
=
"setAttribute"
,
U
=
parseFloat
,
F
=
parseInt
,
aJ
=
String
[
aU
].
toUpperCase
,
j
=
{
"clip-rect"
:
"0 0 10e9 10e9"
,
cursor
:
"default"
,
cx
:
0
,
cy
:
0
,
fill
:
"#fff"
,
"fill-opacity"
:
1
,
font
:
'10px "Arial"'
,
"font-family"
:
'"Arial"'
,
"font-size"
:
"10"
,
"font-style"
:
"normal"
,
"font-weight"
:
400
,
gradient
:
0
,
height
:
0
,
href
:
"http://raphaeljs.com/"
,
opacity
:
1
,
path
:
"M0,0"
,
r
:
0
,
rotation
:
0
,
rx
:
0
,
ry
:
0
,
scale
:
"1 1"
,
src
:
""
,
stroke
:
"#000"
,
"stroke-dasharray"
:
""
,
"stroke-linecap"
:
"butt"
,
"stroke-linejoin"
:
"butt"
,
"stroke-miterlimit"
:
0
,
"stroke-opacity"
:
1
,
"stroke-width"
:
1
,
target
:
"_blank"
,
"text-anchor"
:
"middle"
,
title
:
"Raphael"
,
translation
:
"0 0"
,
width
:
0
,
x
:
0
,
y
:
0
},
X
=
{
"clip-rect"
:
"csv"
,
cx
:
aj
,
cy
:
aj
,
fill
:
"colour"
,
"fill-opacity"
:
aj
,
"font-size"
:
aj
,
height
:
aj
,
opacity
:
aj
,
path
:
"path"
,
r
:
aj
,
rotation
:
"csv"
,
rx
:
aj
,
ry
:
aj
,
scale
:
"csv"
,
stroke
:
"colour"
,
"stroke-opacity"
:
aj
,
"stroke-width"
:
aj
,
translation
:
"csv"
,
width
:
aj
,
x
:
aj
,
y
:
aj
},
aL
=
"replace"
;
al
.
version
=
"1.3.0dev"
;
al
.
type
=
(
aq
.
SVGAngle
||
J
.
implementation
.
hasFeature
(
"http://www.w3.org/TR/SVG11/feature#BasicStructure"
,
"1.1"
)?
"SVG"
:
"VML"
);
if
(
al
.
type
==
"VML"
){
var
ae
=
document
.
createElement
(
"div"
);
ae
.
innerHTML
=
"<!--[if vml]><br><br><![endif]-->"
;
if
(
ae
.
childNodes
[
m
]
!=
2
){
return
null
;}}
al
.
svg
=!
(
al
.
vml
=
al
.
type
==
"VML"
);
aP
[
aU
]
=
al
[
aU
];
al
.
_id
=
0
;
al
.
_oid
=
0
;
al
.
fn
=
{};
al
.
is
=
function
(
e
,
d
){
d
=
aV
.
call
(
d
);
return
((
d
==
"object"
||
d
==
"undefined"
)
&&
typeof
e
==
d
)
||
(
e
==
null
&&
d
==
"null"
)
||
aV
.
call
(
at
.
call
(
e
).
slice
(
8
,
-
1
))
==
d
;};
al
.
setWindow
=
function
(
d
){
aq
=
d
;
J
=
aq
.
document
;};
var
az
=
function
(
e
){
if
(
al
.
vml
){
var
d
=
/^
\s
+|
\s
+$/g
;
az
=
ah
(
function
(
R
){
var
S
;
R
=
(
R
+
ap
)[
aL
](
d
,
ap
);
try
{
var
aW
=
new
ActiveXObject
(
"htmlfile"
);
aW
.
write
(
"<body>"
);
aW
.
close
();
S
=
aW
.
body
;}
catch
(
aY
){
S
=
createPopup
().
document
.
body
;}
var
i
=
S
.
createTextRange
();
try
{
S
.
style
.
color
=
R
;
var
aX
=
i
.
queryCommandValue
(
"ForeColor"
);
aX
=
((
aX
&
255
)
<<
16
)
|
(
aX
&
65280
)
|
((
aX
&
16711680
)
>>>
16
);
return
"#"
+
(
"000000"
+
aX
[
aw
](
16
)).
slice
(
-
6
);}
catch
(
aY
){
return
"none"
;}});}
else
{
var
E
=
J
.
createElement
(
"i"
);
E
.
title
=
"Rapha\xebl Colour Picker"
;
E
.
style
.
display
=
"none"
;
J
.
body
[
aH
](
E
);
az
=
ah
(
function
(
i
){
E
.
style
.
color
=
i
;
return
J
.
defaultView
.
getComputedStyle
(
E
,
ap
).
getPropertyValue
(
"color"
);});}
return
az
(
e
);};
al
.
hsb2rgb
=
ah
(
function
(
aZ
,
aX
,
a3
){
if
(
al
.
is
(
aZ
,
"object"
)
&&
"h"
in
aZ
&&
"s"
in
aZ
&&
"b"
in
aZ
){
a3
=
aZ
.
b
;
aX
=
aZ
.
s
;
aZ
=
aZ
.
h
;}
var
R
,
S
,
a4
;
if
(
a3
==
0
){
return
{
r
:
0
,
g
:
0
,
b
:
0
,
hex
:
"#000"
};}
if
(
aZ
>
1
||
aX
>
1
||
a3
>
1
){
aZ
/=
255
;
aX
/=
255
;
a3
/=
255
;}
var
aW
=~~
(
aZ
*
6
),
a0
=
(
aZ
*
6
)
-
aW
,
E
=
a3
*
(
1
-
aX
),
e
=
a3
*
(
1
-
(
aX
*
a0
)),
a5
=
a3
*
(
1
-
(
aX
*
(
1
-
a0
)));
R
=
[
a3
,
e
,
E
,
E
,
a5
,
a3
,
a3
][
aW
];
S
=
[
a5
,
a3
,
a3
,
e
,
E
,
E
,
a5
][
aW
];
a4
=
[
E
,
E
,
a5
,
a3
,
a3
,
e
,
E
][
aW
];
R
*=
255
;
S
*=
255
;
a4
*=
255
;
var
a1
=
{
r
:
R
,
g
:
S
,
b
:
a4
},
d
=
(
~~
R
)[
aw
](
16
),
aY
=
(
~~
S
)[
aw
](
16
),
a2
=
(
~~
a4
)[
aw
](
16
);
d
=
d
[
aL
](
aQ
,
"0"
);
aY
=
aY
[
aL
](
aQ
,
"0"
);
a2
=
a2
[
aL
](
aQ
,
"0"
);
a1
.
hex
=
"#"
+
d
+
aY
+
a2
;
return
a1
;},
al
);
al
.
rgb2hsb
=
ah
(
function
(
d
,
e
,
aX
){
if
(
al
.
is
(
d
,
"object"
)
&&
"r"
in
d
&&
"g"
in
d
&&
"b"
in
d
){
aX
=
d
.
b
;
e
=
d
.
g
;
d
=
d
.
r
;}
if
(
al
.
is
(
d
,
"string"
)){
var
aZ
=
al
.
getRGB
(
d
);
d
=
aZ
.
r
;
e
=
aZ
.
g
;
aX
=
aZ
.
b
;}
if
(
d
>
1
||
e
>
1
||
aX
>
1
){
d
/=
255
;
e
/=
255
;
aX
/=
255
;}
var
aW
=
g
(
d
,
e
,
aX
),
i
=
aE
(
d
,
e
,
aX
),
R
,
E
,
S
=
aW
;
if
(
i
==
aW
){
return
{
h
:
0
,
s
:
0
,
b
:
aW
};}
else
{
var
aY
=
(
aW
-
i
);
E
=
aY
/
aW
;
if
(
d
==
aW
){
R
=
(
e
-
aX
)
/
aY
;}
else
{
if
(
e
==
aW
){
R
=
2
+
((
aX
-
d
)
/
aY
);}
else
{
R
=
4
+
((
d
-
e
)
/
aY
);}}
R
/=
6
;
R
<
0
&&
R
++
;
R
>
1
&&
R
--
;}
return
{
h
:
R
,
s
:
E
,
b
:
S
};},
al
);
var
aA
=
/,
?([
achlmqrstvxz
])
,
?
/gi
;
al
.
_path2string
=
function
(){
return
this
.
join
(
","
)[
aL
](
aA
,
"$1"
);};
function
ah
(
E
,
e
,
d
){
function
i
(){
var
R
=
Array
[
aU
].
slice
.
call
(
arguments
,
0
),
aW
=
R
[
av
](
"\u25ba"
),
S
=
i
.
cache
=
i
.
cache
||
{},
aX
=
i
.
count
=
i
.
count
||
[];
if
(
S
[
O
](
aW
)){
return
d
?
d
(
S
[
aW
]):
S
[
aW
];}
aX
[
m
]
>=
1000
&&
delete
S
[
aX
.
shift
()];
aX
[
f
](
aW
);
S
[
aW
]
=
E
[
aS
](
e
,
R
);
return
d
?
d
(
S
[
aW
]):
S
[
aW
];}
return
i
;}
al
.
getRGB
=
ah
(
function
(
d
){
if
(
!
d
||!!
((
d
=
d
+
ap
).
indexOf
(
"-"
)
+
1
)){
return
{
r
:
-
1
,
g
:
-
1
,
b
:
-
1
,
hex
:
"none"
,
error
:
1
};}
if
(
d
==
"none"
){
return
{
r
:
-
1
,
g
:
-
1
,
b
:
-
1
,
hex
:
"none"
};}
!
(({
hs
:
1
,
rg
:
1
})[
O
](
d
.
substring
(
0
,
2
))
||
d
.
charAt
()
==
"#"
)
&&
(
d
=
az
(
d
));
var
S
,
i
,
E
,
aY
,
aZ
,
aW
=
d
.
match
(
x
);
if
(
aW
){
if
(
aW
[
2
]){
aY
=
F
(
aW
[
2
].
substring
(
5
),
16
);
E
=
F
(
aW
[
2
].
substring
(
3
,
5
),
16
);
i
=
F
(
aW
[
2
].
substring
(
1
,
3
),
16
);}
if
(
aW
[
3
]){
aY
=
F
((
aZ
=
aW
[
3
].
charAt
(
3
))
+
aZ
,
16
);
E
=
F
((
aZ
=
aW
[
3
].
charAt
(
2
))
+
aZ
,
16
);
i
=
F
((
aZ
=
aW
[
3
].
charAt
(
1
))
+
aZ
,
16
);}
if
(
aW
[
4
]){
aW
=
aW
[
4
][
z
](
/
\s
*,
\s
*/
);
i
=
U
(
aW
[
0
]);
E
=
U
(
aW
[
1
]);
aY
=
U
(
aW
[
2
]);}
if
(
aW
[
5
]){
aW
=
aW
[
5
][
z
](
/
\s
*,
\s
*/
);
i
=
U
(
aW
[
0
])
*
2.55
;
E
=
U
(
aW
[
1
])
*
2.55
;
aY
=
U
(
aW
[
2
])
*
2.55
;}
if
(
aW
[
6
]){
aW
=
aW
[
6
][
z
](
/
\s
*,
\s
*/
);
i
=
U
(
aW
[
0
]);
E
=
U
(
aW
[
1
]);
aY
=
U
(
aW
[
2
]);
return
al
.
hsb2rgb
(
i
,
E
,
aY
);}
if
(
aW
[
7
]){
aW
=
aW
[
7
][
z
](
/
\s
*,
\s
*/
);
i
=
U
(
aW
[
0
])
*
2.55
;
E
=
U
(
aW
[
1
])
*
2.55
;
aY
=
U
(
aW
[
2
])
*
2.55
;
return
al
.
hsb2rgb
(
i
,
E
,
aY
);}
aW
=
{
r
:
i
,
g
:
E
,
b
:
aY
};
var
e
=
(
~~
i
)[
aw
](
16
),
R
=
(
~~
E
)[
aw
](
16
),
aX
=
(
~~
aY
)[
aw
](
16
);
e
=
e
[
aL
](
aQ
,
"0"
);
R
=
R
[
aL
](
aQ
,
"0"
);
aX
=
aX
[
aL
](
aQ
,
"0"
);
aW
.
hex
=
"#"
+
e
+
R
+
aX
;
return
aW
;}
return
{
r
:
-
1
,
g
:
-
1
,
b
:
-
1
,
hex
:
"none"
,
error
:
1
};},
al
);
al
.
getColor
=
function
(
e
){
var
i
=
this
.
getColor
.
start
=
this
.
getColor
.
start
||
{
h
:
0
,
s
:
1
,
b
:
e
||
0.75
},
d
=
this
.
hsb2rgb
(
i
.
h
,
i
.
s
,
i
.
b
);
i
.
h
+=
0.075
;
if
(
i
.
h
>
1
){
i
.
h
=
0
;
i
.
s
-=
0.2
;
i
.
s
<=
0
&&
(
this
.
getColor
.
start
=
{
h
:
0
,
s
:
1
,
b
:
i
.
b
});}
return
d
.
hex
;};
al
.
getColor
.
reset
=
function
(){
delete
this
.
start
;};
al
.
parsePathString
=
ah
(
function
(
d
){
if
(
!
d
){
return
null
;}
var
i
=
{
a
:
7
,
c
:
6
,
h
:
1
,
l
:
2
,
m
:
2
,
q
:
4
,
s
:
4
,
t
:
2
,
v
:
1
,
z
:
0
},
e
=
[];
if
(
al
.
is
(
d
,
"array"
)
&&
al
.
is
(
d
[
0
],
"array"
)){
e
=
ar
(
d
);}
if
(
!
e
[
m
]){(
d
+
ap
)[
aL
](
/
([
achlmqstvz
])[\s
,
]
*
((
-
?\d
*
\.?\d
*
(?:
e
[
-+
]?\d
+
)?\s
*,
?\s
*
)
+
)
/ig
,
function
(
R
,
E
,
aX
){
var
aW
=
[],
S
=
aV
.
call
(
E
);
aX
[
aL
](
/
(
-
?\d
*
\.?\d
*
(?:
e
[
-+
]?\d
+
)?)\s
*,
?\s
*/ig
,
function
(
aZ
,
aY
){
aY
&&
aW
[
f
](
+
aY
);});
while
(
aW
[
m
]
>=
i
[
S
]){
e
[
f
]([
E
][
aO
](
aW
.
splice
(
0
,
i
[
S
])));
if
(
!
i
[
S
]){
break
;}}});}
e
[
aw
]
=
al
.
_path2string
;
return
e
;});
al
.
findDotsAtSegment
=
function
(
e
,
d
,
ba
,
a8
,
aW
,
R
,
aY
,
aX
,
a4
){
var
a2
=
1
-
a4
,
a1
=
aI
(
a2
,
3
)
*
e
+
aI
(
a2
,
2
)
*
3
*
a4
*
ba
+
a2
*
3
*
a4
*
a4
*
aW
+
aI
(
a4
,
3
)
*
aY
,
aZ
=
aI
(
a2
,
3
)
*
d
+
aI
(
a2
,
2
)
*
3
*
a4
*
a8
+
a2
*
3
*
a4
*
a4
*
R
+
aI
(
a4
,
3
)
*
aX
,
a6
=
e
+
2
*
a4
*
(
ba
-
e
)
+
a4
*
a4
*
(
aW
-
2
*
ba
+
e
),
a5
=
d
+
2
*
a4
*
(
a8
-
d
)
+
a4
*
a4
*
(
R
-
2
*
a8
+
d
),
a9
=
ba
+
2
*
a4
*
(
aW
-
ba
)
+
a4
*
a4
*
(
aY
-
2
*
aW
+
ba
),
a7
=
a8
+
2
*
a4
*
(
R
-
a8
)
+
a4
*
a4
*
(
aX
-
2
*
R
+
a8
),
a3
=
(
1
-
a4
)
*
e
+
a4
*
ba
,
a0
=
(
1
-
a4
)
*
d
+
a4
*
a8
,
E
=
(
1
-
a4
)
*
aW
+
a4
*
aY
,
i
=
(
1
-
a4
)
*
R
+
a4
*
aX
,
S
=
(
90
-
Z
.
atan
((
a6
-
a9
)
/
(
a5
-
a7
))
*
180
/
Z
.
PI
)
%
360
;
return
{
x
:
a1
,
y
:
aZ
,
m
:{
x
:
a6
,
y
:
a5
},
n
:{
x
:
a9
,
y
:
a7
},
start
:{
x
:
a3
,
y
:
a0
},
end
:{
x
:
E
,
y
:
i
},
alpha
:
S
};};
var
Q
=
ah
(
function
(
a1
){
if
(
!
a1
){
return
{
x
:
0
,
y
:
0
,
width
:
0
,
height
:
0
};}
a1
=
G
(
a1
);
var
aY
=
0
,
aX
=
0
,
R
=
[],
e
=
[],
E
;
for
(
var
S
=
0
,
a0
=
a1
[
m
];
S
<
a0
;
S
++
){
E
=
a1
[
S
];
if
(
E
[
0
]
==
"M"
){
aY
=
E
[
1
];
aX
=
E
[
2
];
R
[
f
](
aY
);
e
[
f
](
aX
);}
else
{
var
aW
=
ay
(
aY
,
aX
,
E
[
1
],
E
[
2
],
E
[
3
],
E
[
4
],
E
[
5
],
E
[
6
]);
R
=
R
[
aO
](
aW
.
min
.
x
,
aW
.
max
.
x
);
e
=
e
[
aO
](
aW
.
min
.
y
,
aW
.
max
.
y
);
aY
=
E
[
5
];
aX
=
E
[
6
];}}
var
d
=
aE
[
aS
](
0
,
R
),
aZ
=
aE
[
aS
](
0
,
e
);
return
{
x
:
d
,
y
:
aZ
,
width
:
g
[
aS
](
0
,
R
)
-
d
,
height
:
g
[
aS
](
0
,
e
)
-
aZ
};}),
ar
=
function
(
aW
){
var
E
=
[];
if
(
!
al
.
is
(
aW
,
"array"
)
||!
al
.
is
(
aW
&&
aW
[
0
],
"array"
)){
aW
=
al
.
parsePathString
(
aW
);}
for
(
var
e
=
0
,
R
=
aW
[
m
];
e
<
R
;
e
++
){
E
[
e
]
=
[];
for
(
var
d
=
0
,
S
=
aW
[
e
][
m
];
d
<
S
;
d
++
){
E
[
e
][
d
]
=
aW
[
e
][
d
];}}
E
[
aw
]
=
al
.
_path2string
;
return
E
;},
ab
=
ah
(
function
(
R
){
if
(
!
al
.
is
(
R
,
"array"
)
||!
al
.
is
(
R
&&
R
[
0
],
"array"
)){
R
=
al
.
parsePathString
(
R
);}
var
a0
=
[],
a2
=
0
,
a1
=
0
,
a5
=
0
,
a4
=
0
,
E
=
0
;
if
(
R
[
0
][
0
]
==
"M"
){
a2
=
R
[
0
][
1
];
a1
=
R
[
0
][
2
];
a5
=
a2
;
a4
=
a1
;
E
++
;
a0
[
f
]([
"M"
,
a2
,
a1
]);}
for
(
var
aX
=
E
,
a6
=
R
[
m
];
aX
<
a6
;
aX
++
){
var
d
=
a0
[
aX
]
=
[],
a3
=
R
[
aX
];
if
(
a3
[
0
]
!=
aV
.
call
(
a3
[
0
])){
d
[
0
]
=
aV
.
call
(
a3
[
0
]);
switch
(
d
[
0
]){
case
"a"
:
d
[
1
]
=
a3
[
1
];
d
[
2
]
=
a3
[
2
];
d
[
3
]
=
a3
[
3
];
d
[
4
]
=
a3
[
4
];
d
[
5
]
=
a3
[
5
];
d
[
6
]
=+
(
a3
[
6
]
-
a2
).
toFixed
(
3
);
d
[
7
]
=+
(
a3
[
7
]
-
a1
).
toFixed
(
3
);
break
;
case
"v"
:
d
[
1
]
=+
(
a3
[
1
]
-
a1
).
toFixed
(
3
);
break
;
case
"m"
:
a5
=
a3
[
1
];
a4
=
a3
[
2
];
default
:
for
(
var
aW
=
1
,
aY
=
a3
[
m
];
aW
<
aY
;
aW
++
){
d
[
aW
]
=+
(
a3
[
aW
]
-
((
aW
%
2
)?
a2
:
a1
)).
toFixed
(
3
);}}}
else
{
d
=
a0
[
aX
]
=
[];
if
(
a3
[
0
]
==
"m"
){
a5
=
a3
[
1
]
+
a2
;
a4
=
a3
[
2
]
+
a1
;}
for
(
var
S
=
0
,
e
=
a3
[
m
];
S
<
e
;
S
++
){
a0
[
aX
][
S
]
=
a3
[
S
];}}
var
aZ
=
a0
[
aX
][
m
];
switch
(
a0
[
aX
][
0
]){
case
"z"
:
a2
=
a5
;
a1
=
a4
;
break
;
case
"h"
:
a2
+=+
a0
[
aX
][
aZ
-
1
];
break
;
case
"v"
:
a1
+=+
a0
[
aX
][
aZ
-
1
];
break
;
default
:
a2
+=+
a0
[
aX
][
aZ
-
2
];
a1
+=+
a0
[
aX
][
aZ
-
1
];}}
a0
[
aw
]
=
al
.
_path2string
;
return
a0
;},
0
,
ar
),
r
=
ah
(
function
(
R
){
if
(
!
al
.
is
(
R
,
"array"
)
||!
al
.
is
(
R
&&
R
[
0
],
"array"
)){
R
=
al
.
parsePathString
(
R
);}
var
aZ
=
[],
a1
=
0
,
a0
=
0
,
a4
=
0
,
a3
=
0
,
E
=
0
;
if
(
R
[
0
][
0
]
==
"M"
){
a1
=+
R
[
0
][
1
];
a0
=+
R
[
0
][
2
];
a4
=
a1
;
a3
=
a0
;
E
++
;
aZ
[
0
]
=
[
"M"
,
a1
,
a0
];}
for
(
var
aX
=
E
,
a5
=
R
[
m
];
aX
<
a5
;
aX
++
){
var
d
=
aZ
[
aX
]
=
[],
a2
=
R
[
aX
];
if
(
a2
[
0
]
!=
aJ
.
call
(
a2
[
0
])){
d
[
0
]
=
aJ
.
call
(
a2
[
0
]);
switch
(
d
[
0
]){
case
"A"
:
d
[
1
]
=
a2
[
1
];
d
[
2
]
=
a2
[
2
];
d
[
3
]
=
a2
[
3
];
d
[
4
]
=
a2
[
4
];
d
[
5
]
=
a2
[
5
];
d
[
6
]
=+
(
a2
[
6
]
+
a1
);
d
[
7
]
=+
(
a2
[
7
]
+
a0
);
break
;
case
"V"
:
d
[
1
]
=+
a2
[
1
]
+
a0
;
break
;
case
"H"
:
d
[
1
]
=+
a2
[
1
]
+
a1
;
break
;
case
"M"
:
a4
=+
a2
[
1
]
+
a1
;
a3
=+
a2
[
2
]
+
a0
;
default
:
for
(
var
aW
=
1
,
aY
=
a2
[
m
];
aW
<
aY
;
aW
++
){
d
[
aW
]
=+
a2
[
aW
]
+
((
aW
%
2
)?
a1
:
a0
);}}}
else
{
for
(
var
S
=
0
,
e
=
a2
[
m
];
S
<
e
;
S
++
){
aZ
[
aX
][
S
]
=
a2
[
S
];}}
switch
(
d
[
0
]){
case
"Z"
:
a1
=
a4
;
a0
=
a3
;
break
;
case
"H"
:
a1
=
d
[
1
];
break
;
case
"V"
:
a0
=
d
[
1
];
break
;
default
:
a1
=
aZ
[
aX
][
aZ
[
aX
][
m
]
-
2
];
a0
=
aZ
[
aX
][
aZ
[
aX
][
m
]
-
1
];}}
aZ
[
aw
]
=
al
.
_path2string
;
return
aZ
;},
null
,
ar
),
aT
=
function
(
e
,
E
,
d
,
i
){
return
[
e
,
E
,
d
,
i
,
d
,
i
];},
aG
=
function
(
e
,
E
,
aW
,
R
,
d
,
i
){
var
S
=
1
/
3
,
aX
=
2
/
3
;
return
[
S
*
e
+
aX
*
aW
,
S
*
E
+
aX
*
R
,
S
*
d
+
aX
*
aW
,
S
*
i
+
aX
*
R
,
d
,
i
];},
I
=
function
(
a5
,
bz
,
be
,
bc
,
a6
,
a0
,
S
,
a4
,
by
,
a7
){
var
R
=
Z
.
PI
,
bb
=
R
*
120
/
180
,
d
=
R
/
180
*
(
+
a6
||
0
),
bi
=
[],
bf
,
bv
=
ah
(
function
(
bA
,
bD
,
i
){
var
bC
=
bA
*
Z
.
cos
(
i
)
-
bD
*
Z
.
sin
(
i
),
bB
=
bA
*
Z
.
sin
(
i
)
+
bD
*
Z
.
cos
(
i
);
return
{
x
:
bC
,
y
:
bB
};});
if
(
!
a7
){
bf
=
bv
(
a5
,
bz
,
-
d
);
a5
=
bf
.
x
;
bz
=
bf
.
y
;
bf
=
bv
(
a4
,
by
,
-
d
);
a4
=
bf
.
x
;
by
=
bf
.
y
;
var
e
=
Z
.
cos
(
R
/
180
*
a6
),
a2
=
Z
.
sin
(
R
/
180
*
a6
),
bk
=
(
a5
-
a4
)
/
2
,
bj
=
(
bz
-
by
)
/
2
;
be
=
g
(
be
,
Z
.
abs
(
bk
));
bc
=
g
(
bc
,
Z
.
abs
(
bj
));
var
E
=
be
*
be
,
bn
=
bc
*
bc
,
bp
=
(
a0
==
S
?
-
1
:
1
)
*
Z
.
sqrt
(
Z
.
abs
((
E
*
bn
-
E
*
bj
*
bj
-
bn
*
bk
*
bk
)
/
(
E
*
bj
*
bj
+
bn
*
bk
*
bk
))),
a9
=
bp
*
be
*
bj
/
bc
+
(
a5
+
a4
)
/
2
,
a8
=
bp
*-
bc
*
bk
/
be
+
(
bz
+
by
)
/
2
,
aZ
=
Z
.
asin
(((
bz
-
a8
)
/
bc
).
toFixed
(
7
)),
aY
=
Z
.
asin
(((
by
-
a8
)
/
bc
).
toFixed
(
7
));
aZ
=
a5
<
a9
?
R
-
aZ
:
aZ
;
aY
=
a4
<
a9
?
R
-
aY
:
aY
;
aZ
<
0
&&
(
aZ
=
R
*
2
+
aZ
);
aY
<
0
&&
(
aY
=
R
*
2
+
aY
);
if
(
S
&&
aZ
>
aY
){
aZ
=
aZ
-
R
*
2
;}
if
(
!
S
&&
aY
>
aZ
){
aY
=
aY
-
R
*
2
;}}
else
{
aZ
=
a7
[
0
];
aY
=
a7
[
1
];
a9
=
a7
[
2
];
a8
=
a7
[
3
];}
var
a3
=
aY
-
aZ
;
if
(
Z
.
abs
(
a3
)
>
bb
){
var
ba
=
aY
,
bd
=
a4
,
a1
=
by
;
aY
=
aZ
+
bb
*
(
S
&&
aY
>
aZ
?
1
:
-
1
);
a4
=
a9
+
be
*
Z
.
cos
(
aY
);
by
=
a8
+
bc
*
Z
.
sin
(
aY
);
bi
=
I
(
a4
,
by
,
be
,
bc
,
a6
,
0
,
S
,
bd
,
a1
,[
aY
,
ba
,
a9
,
a8
]);}
a3
=
aY
-
aZ
;
var
aX
=
Z
.
cos
(
aZ
),
bx
=
Z
.
sin
(
aZ
),
aW
=
Z
.
cos
(
aY
),
bw
=
Z
.
sin
(
aY
),
bl
=
Z
.
tan
(
a3
/
4
),
bo
=
4
/
3
*
be
*
bl
,
bm
=
4
/
3
*
bc
*
bl
,
bu
=
[
a5
,
bz
],
bt
=
[
a5
+
bo
*
bx
,
bz
-
bm
*
aX
],
bs
=
[
a4
+
bo
*
bw
,
by
-
bm
*
aW
],
bq
=
[
a4
,
by
];
bt
[
0
]
=
2
*
bu
[
0
]
-
bt
[
0
];
bt
[
1
]
=
2
*
bu
[
1
]
-
bt
[
1
];
if
(
a7
){
return
[
bt
,
bs
,
bq
][
aO
](
bi
);}
else
{
bi
=
[
bt
,
bs
,
bq
][
aO
](
bi
)[
av
]()[
z
](
","
);
var
bg
=
[];
for
(
var
br
=
0
,
bh
=
bi
[
m
];
br
<
bh
;
br
++
){
bg
[
br
]
=
br
%
2
?
bv
(
bi
[
br
-
1
],
bi
[
br
],
d
).
y
:
bv
(
bi
[
br
],
bi
[
br
+
1
],
d
).
x
;}
return
bg
;}},
K
=
function
(
e
,
d
,
E
,
i
,
aY
,
aX
,
aW
,
S
,
aZ
){
var
R
=
1
-
aZ
;
return
{
x
:
aI
(
R
,
3
)
*
e
+
aI
(
R
,
2
)
*
3
*
aZ
*
E
+
R
*
3
*
aZ
*
aZ
*
aY
+
aI
(
aZ
,
3
)
*
aW
,
y
:
aI
(
R
,
3
)
*
d
+
aI
(
R
,
2
)
*
3
*
aZ
*
i
+
R
*
3
*
aZ
*
aZ
*
aX
+
aI
(
aZ
,
3
)
*
S
};},
ay
=
ah
(
function
(
i
,
d
,
R
,
E
,
a5
,
a4
,
a1
,
aY
){
var
a3
=
(
a5
-
2
*
R
+
i
)
-
(
a1
-
2
*
a5
+
R
),
a0
=
2
*
(
R
-
i
)
-
2
*
(
a5
-
R
),
aX
=
i
-
R
,
aW
=
(
-
a0
+
Z
.
sqrt
(
a0
*
a0
-
4
*
a3
*
aX
))
/
2
/
a3
,
S
=
(
-
a0
-
Z
.
sqrt
(
a0
*
a0
-
4
*
a3
*
aX
))
/
2
/
a3
,
aZ
=
[
d
,
aY
],
a2
=
[
i
,
a1
],
e
;
Z
.
abs
(
aW
)
>
1000000000000
&&
(
aW
=
0.5
);
Z
.
abs
(
S
)
>
1000000000000
&&
(
S
=
0.5
);
if
(
aW
>
0
&&
aW
<
1
){
e
=
K
(
i
,
d
,
R
,
E
,
a5
,
a4
,
a1
,
aY
,
aW
);
a2
[
f
](
e
.
x
);
aZ
[
f
](
e
.
y
);}
if
(
S
>
0
&&
S
<
1
){
e
=
K
(
i
,
d
,
R
,
E
,
a5
,
a4
,
a1
,
aY
,
S
);
a2
[
f
](
e
.
x
);
aZ
[
f
](
e
.
y
);}
a3
=
(
a4
-
2
*
E
+
d
)
-
(
aY
-
2
*
a4
+
E
);
a0
=
2
*
(
E
-
d
)
-
2
*
(
a4
-
E
);
aX
=
d
-
E
;
aW
=
(
-
a0
+
Z
.
sqrt
(
a0
*
a0
-
4
*
a3
*
aX
))
/
2
/
a3
;
S
=
(
-
a0
-
Z
.
sqrt
(
a0
*
a0
-
4
*
a3
*
aX
))
/
2
/
a3
;
Z
.
abs
(
aW
)
>
1000000000000
&&
(
aW
=
0.5
);
Z
.
abs
(
S
)
>
1000000000000
&&
(
S
=
0.5
);
if
(
aW
>
0
&&
aW
<
1
){
e
=
K
(
i
,
d
,
R
,
E
,
a5
,
a4
,
a1
,
aY
,
aW
);
a2
[
f
](
e
.
x
);
aZ
[
f
](
e
.
y
);}
if
(
S
>
0
&&
S
<
1
){
e
=
K
(
i
,
d
,
R
,
E
,
a5
,
a4
,
a1
,
aY
,
S
);
a2
[
f
](
e
.
x
);
aZ
[
f
](
e
.
y
);}
return
{
min
:{
x
:
aE
[
aS
](
0
,
a2
),
y
:
aE
[
aS
](
0
,
aZ
)},
max
:{
x
:
g
[
aS
](
0
,
a2
),
y
:
g
[
aS
](
0
,
aZ
)}};}),
G
=
ah
(
function
(
a5
,
a0
){
var
R
=
r
(
a5
),
a1
=
a0
&&
r
(
a0
),
a2
=
{
x
:
0
,
y
:
0
,
bx
:
0
,
by
:
0
,
X
:
0
,
Y
:
0
,
qx
:
null
,
qy
:
null
},
d
=
{
x
:
0
,
y
:
0
,
bx
:
0
,
by
:
0
,
X
:
0
,
Y
:
0
,
qx
:
null
,
qy
:
null
},
aW
=
function
(
a6
,
a7
){
var
i
,
a8
;
if
(
!
a6
){
return
[
"C"
,
a7
.
x
,
a7
.
y
,
a7
.
x
,
a7
.
y
,
a7
.
x
,
a7
.
y
];}
!
(
a6
[
0
]
in
{
T
:
1
,
Q
:
1
})
&&
(
a7
.
qx
=
a7
.
qy
=
null
);
switch
(
a6
[
0
]){
case
"M"
:
a7
.
X
=
a6
[
1
];
a7
.
Y
=
a6
[
2
];
break
;
case
"A"
:
a6
=
[
"C"
][
aO
](
I
[
aS
](
0
,[
a7
.
x
,
a7
.
y
][
aO
](
a6
.
slice
(
1
))));
break
;
case
"S"
:
i
=
a7
.
x
+
(
a7
.
x
-
(
a7
.
bx
||
a7
.
x
));
a8
=
a7
.
y
+
(
a7
.
y
-
(
a7
.
by
||
a7
.
y
));
a6
=
[
"C"
,
i
,
a8
][
aO
](
a6
.
slice
(
1
));
break
;
case
"T"
:
a7
.
qx
=
a7
.
x
+
(
a7
.
x
-
(
a7
.
qx
||
a7
.
x
));
a7
.
qy
=
a7
.
y
+
(
a7
.
y
-
(
a7
.
qy
||
a7
.
y
));
a6
=
[
"C"
][
aO
](
aG
(
a7
.
x
,
a7
.
y
,
a7
.
qx
,
a7
.
qy
,
a6
[
1
],
a6
[
2
]));
break
;
case
"Q"
:
a7
.
qx
=
a6
[
1
];
a7
.
qy
=
a6
[
2
];
a6
=
[
"C"
][
aO
](
aG
(
a7
.
x
,
a7
.
y
,
a6
[
1
],
a6
[
2
],
a6
[
3
],
a6
[
4
]));
break
;
case
"L"
:
a6
=
[
"C"
][
aO
](
aT
(
a7
.
x
,
a7
.
y
,
a6
[
1
],
a6
[
2
]));
break
;
case
"H"
:
a6
=
[
"C"
][
aO
](
aT
(
a7
.
x
,
a7
.
y
,
a6
[
1
],
a7
.
y
));
break
;
case
"V"
:
a6
=
[
"C"
][
aO
](
aT
(
a7
.
x
,
a7
.
y
,
a7
.
x
,
a6
[
1
]));
break
;
case
"Z"
:
a6
=
[
"C"
][
aO
](
aT
(
a7
.
x
,
a7
.
y
,
a7
.
X
,
a7
.
Y
));
break
;}
return
a6
;},
e
=
function
(
a6
,
a7
){
if
(
a6
[
a7
][
m
]
>
7
){
a6
[
a7
].
shift
();
var
a8
=
a6
[
a7
];
while
(
a8
[
m
]){
a6
.
splice
(
a7
++
,
0
,[
"C"
][
aO
](
a8
.
splice
(
0
,
6
)));}
a6
.
splice
(
a7
,
1
);
a3
=
g
(
R
[
m
],
a1
&&
a1
[
m
]
||
0
);}},
E
=
function
(
ba
,
a9
,
a7
,
a6
,
a8
){
if
(
ba
&&
a9
&&
ba
[
a8
][
0
]
==
"M"
&&
a9
[
a8
][
0
]
!=
"M"
){
a9
.
splice
(
a8
,
0
,[
"M"
,
a6
.
x
,
a6
.
y
]);
a7
.
bx
=
0
;
a7
.
by
=
0
;
a7
.
x
=
ba
[
a8
][
1
];
a7
.
y
=
ba
[
a8
][
2
];
a3
=
g
(
R
[
m
],
a1
&&
a1
[
m
]
||
0
);}};
for
(
var
aY
=
0
,
a3
=
g
(
R
[
m
],
a1
&&
a1
[
m
]
||
0
);
aY
<
a3
;
aY
++
){
R
[
aY
]
=
aW
(
R
[
aY
],
a2
);
e
(
R
,
aY
);
a1
&&
(
a1
[
aY
]
=
aW
(
a1
[
aY
],
d
));
a1
&&
e
(
a1
,
aY
);
E
(
R
,
a1
,
a2
,
d
,
aY
);
E
(
a1
,
R
,
d
,
a2
,
aY
);
var
aX
=
R
[
aY
],
a4
=
a1
&&
a1
[
aY
],
S
=
aX
[
m
],
aZ
=
a1
&&
a4
[
m
];
a2
.
x
=
aX
[
S
-
2
];
a2
.
y
=
aX
[
S
-
1
];
a2
.
bx
=
U
(
aX
[
S
-
4
])
||
a2
.
x
;
a2
.
by
=
U
(
aX
[
S
-
3
])
||
a2
.
y
;
d
.
bx
=
a1
&&
(
U
(
a4
[
aZ
-
4
])
||
d
.
x
);
d
.
by
=
a1
&&
(
U
(
a4
[
aZ
-
3
])
||
d
.
y
);
d
.
x
=
a1
&&
a4
[
aZ
-
2
];
d
.
y
=
a1
&&
a4
[
aZ
-
1
];}
return
a1
?[
R
,
a1
]:
R
;},
null
,
ar
),
p
=
ah
(
function
(
a0
){
var
aZ
=
[];
for
(
var
aW
=
0
,
a1
=
a0
[
m
];
aW
<
a1
;
aW
++
){
var
e
=
{},
aY
=
a0
[
aW
].
match
(
/^
([^
:
]
*
)
:
?([\d\.]
*
)
/
);
e
.
color
=
al
.
getRGB
(
aY
[
1
]);
if
(
e
.
color
.
error
){
return
null
;}
e
.
color
=
e
.
color
.
hex
;
aY
[
2
]
&&
(
e
.
offset
=
aY
[
2
]
+
"%"
);
aZ
[
f
](
e
);}
for
(
var
aW
=
1
,
a1
=
aZ
[
m
]
-
1
;
aW
<
a1
;
aW
++
){
if
(
!
aZ
[
aW
].
offset
){
var
E
=
U
(
aZ
[
aW
-
1
].
offset
||
0
),
R
=
0
;
for
(
var
S
=
aW
+
1
;
S
<
a1
;
S
++
){
if
(
aZ
[
S
].
offset
){
R
=
aZ
[
S
].
offset
;
break
;}}
if
(
!
R
){
R
=
100
;
S
=
a1
;}
R
=
U
(
R
);
var
aX
=
(
R
-
E
)
/
(
S
-
aW
+
1
);
for
(;
aW
<
S
;
aW
++
){
E
+=
aX
;
aZ
[
aW
].
offset
=
E
+
"%"
;}}}
return
aZ
;}),
am
=
function
(){
var
i
,
e
,
R
,
E
,
d
;
if
(
al
.
is
(
arguments
[
0
],
"string"
)
||
al
.
is
(
arguments
[
0
],
"object"
)){
if
(
al
.
is
(
arguments
[
0
],
"string"
)){
i
=
J
.
getElementById
(
arguments
[
0
]);}
else
{
i
=
arguments
[
0
];}
if
(
i
.
tagName
){
if
(
arguments
[
1
]
==
null
){
return
{
container
:
i
,
width
:
i
.
style
.
pixelWidth
||
i
.
offsetWidth
,
height
:
i
.
style
.
pixelHeight
||
i
.
offsetHeight
};}
else
{
return
{
container
:
i
,
width
:
arguments
[
1
],
height
:
arguments
[
2
]};}}}
else
{
if
(
al
.
is
(
arguments
[
0
],
aj
)
&&
arguments
[
m
]
>
3
){
return
{
container
:
1
,
x
:
arguments
[
0
],
y
:
arguments
[
1
],
width
:
arguments
[
2
],
height
:
arguments
[
3
]};}}},
aC
=
function
(
d
,
i
){
var
e
=
this
;
for
(
var
E
in
i
){
if
(
i
[
O
](
E
)
&&!
(
E
in
d
)){
switch
(
typeof
i
[
E
]){
case
"function"
:(
function
(
R
){
d
[
E
]
=
d
===
e
?
R
:
function
(){
return
R
[
aS
](
e
,
arguments
);};})(
i
[
E
]);
break
;
case
"object"
:
d
[
E
]
=
d
[
E
]
||
{};
aC
.
call
(
this
,
d
[
E
],
i
[
E
]);
break
;
default
:
d
[
E
]
=
i
[
E
];
break
;}}}},
ai
=
function
(
d
,
e
){
d
==
e
.
top
&&
(
e
.
top
=
d
.
prev
);
d
==
e
.
bottom
&&
(
e
.
bottom
=
d
.
next
);
d
.
next
&&
(
d
.
next
.
prev
=
d
.
prev
);
d
.
prev
&&
(
d
.
prev
.
next
=
d
.
next
);},
W
=
function
(
d
,
e
){
if
(
e
.
top
===
d
){
return
;}
ai
(
d
,
e
);
d
.
next
=
null
;
d
.
prev
=
e
.
top
;
e
.
top
.
next
=
d
;
e
.
top
=
d
;},
k
=
function
(
d
,
e
){
if
(
e
.
bottom
===
d
){
return
;}
ai
(
d
,
e
);
d
.
next
=
e
.
bottom
;
d
.
prev
=
null
;
e
.
bottom
.
prev
=
d
;
e
.
bottom
=
d
;},
A
=
function
(
e
,
d
,
i
){
ai
(
e
,
i
);
d
==
i
.
top
&&
(
i
.
top
=
e
);
d
.
next
&&
(
d
.
next
.
prev
=
e
);
e
.
next
=
d
.
next
;
e
.
prev
=
d
;
d
.
next
=
e
;},
an
=
function
(
e
,
d
,
i
){
ai
(
e
,
i
);
d
==
i
.
bottom
&&
(
i
.
bottom
=
e
);
d
.
prev
&&
(
d
.
prev
.
next
=
e
);
e
.
prev
=
d
.
prev
;
d
.
prev
=
e
;
e
.
next
=
d
;},
s
=
function
(
d
){
return
function
(){
throw
new
Error
(
"Rapha\xebl: you are calling to method \u201c"
+
d
+
"\u201d of removed object"
);};},
ao
=
/^r
(?:\(([^
,
]
+
?)\s
*,
\s
*
([^\)]
+
?)\))?
/
;
if
(
al
.
svg
){
aP
[
aU
].
svgns
=
"http://www.w3.org/2000/svg"
;
aP
[
aU
].
xlink
=
"http://www.w3.org/1999/xlink"
;
var
M
=
function
(
d
){
return
+
d
+
(
~~
d
===
d
)
*
0.5
;},
T
=
function
(
S
){
for
(
var
e
=
0
,
E
=
S
[
m
];
e
<
E
;
e
++
){
if
(
aV
.
call
(
S
[
e
][
0
])
!=
"a"
){
for
(
var
d
=
1
,
R
=
S
[
e
][
m
];
d
<
R
;
d
++
){
S
[
e
][
d
]
=
M
(
S
[
e
][
d
]);}}
else
{
S
[
e
][
6
]
=
M
(
S
[
e
][
6
]);
S
[
e
][
7
]
=
M
(
S
[
e
][
7
]);}}
return
S
;},
aF
=
function
(
i
,
d
){
if
(
d
){
for
(
var
e
in
d
){
if
(
d
[
O
](
e
)){
i
[
v
](
e
,
d
[
e
]);}}}
else
{
return
J
.
createElementNS
(
aP
[
aU
].
svgns
,
i
);}};
al
[
aw
]
=
function
(){
return
"Your browser supports SVG.\nYou are running Rapha\xebl "
+
this
.
version
;};
var
q
=
function
(
d
,
E
){
var
e
=
aF
(
"path"
);
E
.
canvas
&&
E
.
canvas
[
aH
](
e
);
var
i
=
new
au
(
e
,
E
);
i
.
type
=
"path"
;
Y
(
i
,{
fill
:
"none"
,
stroke
:
"#000"
,
path
:
d
});
return
i
;};
var
b
=
function
(
E
,
a3
,
d
){
var
a0
=
"linear"
,
aX
=
0.5
,
S
=
0.5
,
a5
=
E
.
style
;
a3
=
(
a3
+
ap
)[
aL
](
ao
,
function
(
a7
,
i
,
a8
){
a0
=
"radial"
;
if
(
i
&&
a8
){
aX
=
U
(
i
);
S
=
U
(
a8
);
var
a6
=
((
S
>
0.5
)
*
2
-
1
);
aI
(
aX
-
0.5
,
2
)
+
aI
(
S
-
0.5
,
2
)
>
0.25
&&
(
S
=
Z
.
sqrt
(
0.25
-
aI
(
aX
-
0.5
,
2
))
*
a6
+
0.5
)
&&
S
!=
0.5
&&
(
S
=
S
.
toFixed
(
5
)
-
0.00001
*
a6
);}
return
ap
;});
a3
=
a3
[
z
](
/
\s
*
\-\s
*/
);
if
(
a0
==
"linear"
){
var
aW
=
a3
.
shift
();
aW
=-
U
(
aW
);
if
(
isNaN
(
aW
)){
return
null
;}
var
R
=
[
0
,
0
,
Z
.
cos
(
aW
*
Z
.
PI
/
180
),
Z
.
sin
(
aW
*
Z
.
PI
/
180
)],
a2
=
1
/
(
g
(
Z
.
abs
(
R
[
2
]),
Z
.
abs
(
R
[
3
]))
||
1
);
R
[
2
]
*=
a2
;
R
[
3
]
*=
a2
;
if
(
R
[
2
]
<
0
){
R
[
0
]
=-
R
[
2
];
R
[
2
]
=
0
;}
if
(
R
[
3
]
<
0
){
R
[
1
]
=-
R
[
3
];
R
[
3
]
=
0
;}}
var
aZ
=
p
(
a3
);
if
(
!
aZ
){
return
null
;}
var
e
=
aF
(
a0
+
"Gradient"
);
e
.
id
=
"r"
+
(
al
.
_id
++
)[
aw
](
36
);
aF
(
e
,
a0
==
"radial"
?{
fx
:
aX
,
fy
:
S
}:{
x1
:
R
[
0
],
y1
:
R
[
1
],
x2
:
R
[
2
],
y2
:
R
[
3
]});
d
.
defs
[
aH
](
e
);
for
(
var
aY
=
0
,
a4
=
aZ
[
m
];
aY
<
a4
;
aY
++
){
var
a1
=
aF
(
"stop"
);
aF
(
a1
,{
offset
:
aZ
[
aY
].
offset
?
aZ
[
aY
].
offset
:
!
aY
?
"0%"
:
"100%"
,
"stop-color"
:
aZ
[
aY
].
color
||
"#fff"
});
e
[
aH
](
a1
);}
aF
(
E
,{
fill
:
"url(#"
+
e
.
id
+
")"
,
opacity
:
1
,
"fill-opacity"
:
1
});
a5
.
fill
=
ap
;
a5
.
opacity
=
1
;
a5
.
fillOpacity
=
1
;
return
1
;};
var
L
=
function
(
e
){
var
d
=
e
.
getBBox
();
aF
(
e
.
pattern
,{
patternTransform
:
al
.
format
(
"translate({0},{1})"
,
d
.
x
,
d
.
y
)});};
var
Y
=
function
(
a2
,
bb
){
var
a5
=
{
""
:[
0
],
none
:[
0
],
"-"
:[
3
,
1
],
"."
:[
1
,
1
],
"-."
:[
3
,
1
,
1
,
1
],
"-.."
:[
3
,
1
,
1
,
1
,
1
,
1
],
". "
:[
1
,
3
],
"- "
:[
4
,
3
],
"--"
:[
8
,
3
],
"- ."
:[
4
,
3
,
1
,
3
],
"--."
:[
8
,
3
,
1
,
3
],
"--.."
:[
8
,
3
,
1
,
3
,
1
,
3
]},
a7
=
a2
.
node
,
a3
=
a2
.
attrs
,
aZ
=
a2
.
rotate
(),
S
=
function
(
bi
,
bh
){
bh
=
a5
[
aV
.
call
(
bh
)];
if
(
bh
){
var
bf
=
bi
.
attrs
[
"stroke-width"
]
||
"1"
,
bd
=
{
round
:
bf
,
square
:
bf
,
butt
:
0
}[
bi
.
attrs
[
"stroke-linecap"
]
||
bb
[
"stroke-linecap"
]]
||
0
,
bg
=
[];
var
be
=
bh
[
m
];
while
(
be
--
){
bg
[
be
]
=
bh
[
be
]
*
bf
+
((
be
%
2
)?
1
:
-
1
)
*
bd
;}
aF
(
a7
,{
"stroke-dasharray"
:
bg
[
av
](
","
)});}};
bb
[
O
](
"rotation"
)
&&
(
aZ
=
bb
.
rotation
);
var
aY
=
(
aZ
+
ap
)[
z
](
a
);
if
(
!
(
aY
.
length
-
1
)){
aY
=
null
;}
else
{
aY
[
1
]
=+
aY
[
1
];
aY
[
2
]
=+
aY
[
2
];}
U
(
aZ
)
&&
a2
.
rotate
(
0
,
true
);
for
(
var
a6
in
bb
){
if
(
bb
[
O
](
a6
)){
if
(
!
j
[
O
](
a6
)){
continue
;}
var
a4
=
bb
[
a6
];
a3
[
a6
]
=
a4
;
switch
(
a6
){
case
"rotation"
:
a2
.
rotate
(
a4
,
true
);
break
;
case
"href"
:
case
"title"
:
case
"target"
:
var
a9
=
a7
.
parentNode
;
if
(
aV
.
call
(
a9
.
tagName
)
!=
"a"
){
var
E
=
aF
(
"a"
);
a9
.
insertBefore
(
E
,
a7
);
E
[
aH
](
a7
);
a9
=
E
;}
a9
.
setAttributeNS
(
a2
.
Paper
[
aU
].
xlink
,
a6
,
a4
);
break
;
case
"cursor"
:
a7
.
style
.
cursor
=
a4
;
break
;
case
"clip-rect"
:
var
e
=
(
a4
+
ap
)[
z
](
a
);
if
(
e
[
m
]
==
4
){
a2
.
clip
&&
a2
.
clip
.
parentNode
.
parentNode
.
removeChild
(
a2
.
clip
.
parentNode
);
var
i
=
aF
(
"clipPath"
),
a8
=
aF
(
"rect"
);
i
.
id
=
"r"
+
(
al
.
_id
++
)[
aw
](
36
);
aF
(
a8
,{
x
:
e
[
0
],
y
:
e
[
1
],
width
:
e
[
2
],
height
:
e
[
3
]});
i
[
aH
](
a8
);
a2
.
paper
.
defs
[
aH
](
i
);
aF
(
a7
,{
"clip-path"
:
"url(#"
+
i
.
id
+
")"
});
a2
.
clip
=
a8
;}
if
(
!
a4
){
var
ba
=
J
.
getElementById
(
a7
.
getAttribute
(
"clip-path"
)[
aL
](
/
(
^url
\(
#|
\)
$
)
/g
,
ap
));
ba
&&
ba
.
parentNode
.
removeChild
(
ba
);
aF
(
a7
,{
"clip-path"
:
ap
});
delete
a2
.
clip
;}
break
;
case
"path"
:
if
(
a4
&&
a2
.
type
==
"path"
){
a3
.
path
=
T
(
r
(
a4
));
aF
(
a7
,{
d
:
a3
.
path
});}
break
;
case
"width"
:
a7
[
v
](
a6
,
a4
);
if
(
a3
.
fx
){
a6
=
"x"
;
a4
=
a3
.
x
;}
else
{
break
;}
case
"x"
:
if
(
a3
.
fx
){
a4
=-
a3
.
x
-
(
a3
.
width
||
0
);}
case
"rx"
:
if
(
a6
==
"rx"
&&
a2
.
type
==
"rect"
){
break
;}
case
"cx"
:
aY
&&
(
a6
==
"x"
||
a6
==
"cx"
)
&&
(
aY
[
1
]
+=
a4
-
a3
[
a6
]);
a7
[
v
](
a6
,
M
(
a4
));
a2
.
pattern
&&
L
(
a2
);
break
;
case
"height"
:
a7
[
v
](
a6
,
a4
);
if
(
a3
.
fy
){
a6
=
"y"
;
a4
=
a3
.
y
;}
else
{
break
;}
case
"y"
:
if
(
a3
.
fy
){
a4
=-
a3
.
y
-
(
a3
.
height
||
0
);}
case
"ry"
:
if
(
a6
==
"ry"
&&
a2
.
type
==
"rect"
){
break
;}
case
"cy"
:
aY
&&
(
a6
==
"y"
||
a6
==
"cy"
)
&&
(
aY
[
2
]
+=
a4
-
a3
[
a6
]);
a7
[
v
](
a6
,
M
(
a4
));
a2
.
pattern
&&
L
(
a2
);
break
;
case
"r"
:
if
(
a2
.
type
==
"rect"
){
aF
(
a7
,{
rx
:
a4
,
ry
:
a4
});}
else
{
a7
[
v
](
a6
,
a4
);}
break
;
case
"src"
:
if
(
a2
.
type
==
"image"
){
a7
.
setAttributeNS
(
a2
.
paper
.
xlink
,
"href"
,
a4
);}
break
;
case
"stroke-width"
:
a7
.
style
.
strokeWidth
=
a4
;
a7
[
v
](
a6
,
a4
);
if
(
a3
[
"stroke-dasharray"
]){
S
(
a2
,
a3
[
"stroke-dasharray"
]);}
break
;
case
"stroke-dasharray"
:
S
(
a2
,
a4
);
break
;
case
"translation"
:
var
aW
=
(
a4
+
ap
)[
z
](
a
);
aW
[
0
]
=+
aW
[
0
]
||
0
;
aW
[
1
]
=+
aW
[
1
]
||
0
;
if
(
aY
){
aY
[
1
]
+=
aW
[
0
];
aY
[
2
]
+=
aW
[
1
];}
t
.
call
(
a2
,
aW
[
0
],
aW
[
1
]);
break
;
case
"scale"
:
var
aW
=
(
a4
+
ap
)[
z
](
a
);
a2
.
scale
(
+
aW
[
0
]
||
1
,
+
aW
[
1
]
||+
aW
[
0
]
||
1
,
+
aW
[
2
]
||
null
,
+
aW
[
3
]
||
null
);
break
;
case
"fill"
:
var
R
=
(
a4
+
ap
).
match
(
c
);
if
(
R
){
var
i
=
aF
(
"pattern"
),
a1
=
aF
(
"image"
);
i
.
id
=
"r"
+
(
al
.
_id
++
)[
aw
](
36
);
aF
(
i
,{
x
:
0
,
y
:
0
,
patternUnits
:
"userSpaceOnUse"
,
height
:
1
,
width
:
1
});
aF
(
a1
,{
x
:
0
,
y
:
0
});
a1
.
setAttributeNS
(
a2
.
paper
.
xlink
,
"href"
,
R
[
1
]);
i
[
aH
](
a1
);
var
bc
=
J
.
createElement
(
"img"
);
bc
.
style
.
cssText
=
"position:absolute;left:-9999em;top-9999em"
;
bc
.
onload
=
function
(){
aF
(
i
,{
width
:
this
.
offsetWidth
,
height
:
this
.
offsetHeight
});
aF
(
a1
,{
width
:
this
.
offsetWidth
,
height
:
this
.
offsetHeight
});
J
.
body
.
removeChild
(
this
);
a2
.
paper
.
safari
();};
J
.
body
[
aH
](
bc
);
bc
.
src
=
R
[
1
];
a2
.
paper
.
defs
[
aH
](
i
);
a7
.
style
.
fill
=
"url(#"
+
i
.
id
+
")"
;
aF
(
a7
,{
fill
:
"url(#"
+
i
.
id
+
")"
});
a2
.
pattern
=
i
;
a2
.
pattern
&&
L
(
a2
);
break
;}
if
(
!
al
.
getRGB
(
a4
).
error
){
delete
bb
.
gradient
;
delete
a3
.
gradient
;
!
al
.
is
(
a3
.
opacity
,
"undefined"
)
&&
al
.
is
(
bb
.
opacity
,
"undefined"
)
&&
aF
(
a7
,{
opacity
:
a3
.
opacity
});
!
al
.
is
(
a3
[
"fill-opacity"
],
"undefined"
)
&&
al
.
is
(
bb
[
"fill-opacity"
],
"undefined"
)
&&
aF
(
a7
,{
"fill-opacity"
:
a3
[
"fill-opacity"
]});}
else
{
if
((({
circle
:
1
,
ellipse
:
1
})[
O
](
a2
.
type
)
||
(
a4
+
ap
).
charAt
()
!=
"r"
)
&&
b
(
a7
,
a4
,
a2
.
paper
)){
a3
.
gradient
=
a4
;
a3
.
fill
=
"none"
;
break
;}}
case
"stroke"
:
a7
[
v
](
a6
,
al
.
getRGB
(
a4
).
hex
);
break
;
case
"gradient"
:(({
circle
:
1
,
ellipse
:
1
})[
O
](
a2
.
type
)
||
(
a4
+
ap
).
charAt
()
!=
"r"
)
&&
b
(
a7
,
a4
,
a2
.
paper
);
break
;
case
"opacity"
:
case
"fill-opacity"
:
if
(
a3
.
gradient
){
var
d
=
J
.
getElementById
(
a7
.
getAttribute
(
"fill"
)[
aL
](
/^url
\(
#|
\)
$/g
,
ap
));
if
(
d
){
var
aX
=
d
.
getElementsByTagName
(
"stop"
);
aX
[
aX
[
m
]
-
1
][
v
](
"stop-opacity"
,
a4
);}
break
;}
default
:
a6
==
"font-size"
&&
(
a4
=
F
(
a4
,
10
)
+
"px"
);
var
a0
=
a6
[
aL
](
/
(\-
.
)
/g
,
function
(
bd
){
return
aJ
.
call
(
bd
.
substring
(
1
));});
a7
.
style
[
a0
]
=
a4
;
a7
[
v
](
a6
,
a4
);
break
;}}}
C
(
a2
,
bb
);
if
(
aY
){
a2
.
rotate
(
aY
.
join
(
ak
));}
else
{
U
(
aZ
)
&&
a2
.
rotate
(
aZ
,
true
);}};
var
h
=
1.2
;
var
C
=
function
(
d
,
R
){
if
(
d
.
type
!=
"text"
||!
(
R
[
O
](
"text"
)
||
R
[
O
](
"font"
)
||
R
[
O
](
"font-size"
)
||
R
[
O
](
"x"
)
||
R
[
O
](
"y"
))){
return
;}
var
aZ
=
d
.
attrs
,
e
=
d
.
node
,
a1
=
e
.
firstChild
?
F
(
J
.
defaultView
.
getComputedStyle
(
e
.
firstChild
,
ap
).
getPropertyValue
(
"font-size"
),
10
):
10
;
if
(
R
[
O
](
"text"
)){
aZ
.
text
=
R
.
text
;
while
(
e
.
firstChild
){
e
.
removeChild
(
e
.
firstChild
);}
var
E
=
(
R
.
text
+
ap
)[
z
](
"\n"
);
for
(
var
S
=
0
,
a0
=
E
[
m
];
S
<
a0
;
S
++
){
if
(
E
[
S
]){
var
aX
=
aF
(
"tspan"
);
S
&&
aF
(
aX
,{
dy
:
a1
*
h
,
x
:
aZ
.
x
});
aX
[
aH
](
J
.
createTextNode
(
E
[
S
]));
e
[
aH
](
aX
);}}}
else
{
var
E
=
e
.
getElementsByTagName
(
"tspan"
);
for
(
var
S
=
0
,
a0
=
E
[
m
];
S
<
a0
;
S
++
){
S
&&
aF
(
E
[
S
],{
dy
:
a1
*
h
,
x
:
aZ
.
x
});}}
aF
(
e
,{
y
:
aZ
.
y
});
var
aW
=
d
.
getBBox
(),
aY
=
aZ
.
y
-
(
aW
.
y
+
aW
.
height
/
2
);
aY
&&
isFinite
(
aY
)
&&
aF
(
e
,{
y
:
aZ
.
y
+
aY
});};
var
au
=
function
(
e
,
d
){
var
E
=
0
,
i
=
0
;
this
[
0
]
=
e
;
this
.
id
=
al
.
_oid
++
;
this
.
node
=
e
;
e
.
raphael
=
this
;
this
.
paper
=
d
;
this
.
attrs
=
this
.
attrs
||
{};
this
.
transformations
=
[];
this
.
_
=
{
tx
:
0
,
ty
:
0
,
rt
:{
deg
:
0
,
cx
:
0
,
cy
:
0
},
sx
:
1
,
sy
:
1
};
!
d
.
bottom
&&
(
d
.
bottom
=
this
);
this
.
prev
=
d
.
top
;
d
.
top
&&
(
d
.
top
.
next
=
this
);
d
.
top
=
this
;
this
.
next
=
null
;};
au
[
aU
].
rotate
=
function
(
e
,
d
,
E
){
if
(
this
.
removed
){
return
this
;}
if
(
e
==
null
){
if
(
this
.
_
.
rt
.
cx
){
return
[
this
.
_
.
rt
.
deg
,
this
.
_
.
rt
.
cx
,
this
.
_
.
rt
.
cy
][
av
](
ak
);}
return
this
.
_
.
rt
.
deg
;}
var
i
=
this
.
getBBox
();
e
=
(
e
+
ap
)[
z
](
a
);
if
(
e
[
m
]
-
1
){
d
=
U
(
e
[
1
]);
E
=
U
(
e
[
2
]);}
e
=
U
(
e
[
0
]);
if
(
d
!=
null
){
this
.
_
.
rt
.
deg
=
e
;}
else
{
this
.
_
.
rt
.
deg
+=
e
;}(
E
==
null
)
&&
(
d
=
null
);
this
.
_
.
rt
.
cx
=
d
;
this
.
_
.
rt
.
cy
=
E
;
d
=
d
==
null
?
i
.
x
+
i
.
width
/
2
:
d
;
E
=
E
==
null
?
i
.
y
+
i
.
height
/
2
:
E
;
if
(
this
.
_
.
rt
.
deg
){
this
.
transformations
[
0
]
=
al
.
format
(
"rotate({0} {1} {2})"
,
this
.
_
.
rt
.
deg
,
d
,
E
);
this
.
clip
&&
aF
(
this
.
clip
,{
transform
:
al
.
format
(
"rotate({0} {1} {2})"
,
-
this
.
_
.
rt
.
deg
,
d
,
E
)});}
else
{
this
.
transformations
[
0
]
=
ap
;
this
.
clip
&&
aF
(
this
.
clip
,{
transform
:
ap
});}
aF
(
this
.
node
,{
transform
:
this
.
transformations
[
av
](
ak
)});
return
this
;};
au
[
aU
].
hide
=
function
(){
!
this
.
removed
&&
(
this
.
node
.
style
.
display
=
"none"
);
return
this
;};
au
[
aU
].
show
=
function
(){
!
this
.
removed
&&
(
this
.
node
.
style
.
display
=
""
);
return
this
;};
au
[
aU
].
remove
=
function
(){
if
(
this
.
removed
){
return
;}
ai
(
this
,
this
.
paper
);
this
.
node
.
parentNode
.
removeChild
(
this
.
node
);
for
(
var
d
in
this
){
delete
this
[
d
];}
this
.
removed
=
true
;};
au
[
aU
].
getBBox
=
function
(){
if
(
this
.
removed
){
return
this
;}
if
(
this
.
type
==
"path"
){
return
Q
(
this
.
attrs
.
path
);}
if
(
this
.
node
.
style
.
display
==
"none"
){
this
.
show
();
var
E
=
true
;}
var
aX
=
{};
try
{
aX
=
this
.
node
.
getBBox
();}
catch
(
S
){}
finally
{
aX
=
aX
||
{};}
if
(
this
.
type
==
"text"
){
aX
=
{
x
:
aX
.
x
,
y
:
Infinity
,
width
:
0
,
height
:
0
};
for
(
var
d
=
0
,
R
=
this
.
node
.
getNumberOfChars
();
d
<
R
;
d
++
){
var
aW
=
this
.
node
.
getExtentOfChar
(
d
);(
aW
.
y
<
aX
.
y
)
&&
(
aX
.
y
=
aW
.
y
);(
aW
.
y
+
aW
.
height
-
aX
.
y
>
aX
.
height
)
&&
(
aX
.
height
=
aW
.
y
+
aW
.
height
-
aX
.
y
);(
aW
.
x
+
aW
.
width
-
aX
.
x
>
aX
.
width
)
&&
(
aX
.
width
=
aW
.
x
+
aW
.
width
-
aX
.
x
);}}
E
&&
this
.
hide
();
return
aX
;};
au
[
aU
].
attr
=
function
(){
if
(
this
.
removed
){
return
this
;}
if
(
arguments
[
m
]
==
0
){
var
R
=
{};
for
(
var
E
in
this
.
attrs
){
if
(
this
.
attrs
[
O
](
E
)){
R
[
E
]
=
this
.
attrs
[
E
];}}
this
.
_
.
rt
.
deg
&&
(
R
.
rotation
=
this
.
rotate
());(
this
.
_
.
sx
!=
1
||
this
.
_
.
sy
!=
1
)
&&
(
R
.
scale
=
this
.
scale
());
R
.
gradient
&&
R
.
fill
==
"none"
&&
(
R
.
fill
=
R
.
gradient
)
&&
delete
R
.
gradient
;
return
R
;}
if
(
arguments
[
m
]
==
1
&&
al
.
is
(
arguments
[
0
],
"string"
)){
if
(
arguments
[
0
]
==
"translation"
){
return
t
.
call
(
this
);}
if
(
arguments
[
0
]
==
"rotation"
){
return
this
.
rotate
();}
if
(
arguments
[
0
]
==
"scale"
){
return
this
.
scale
();}
if
(
arguments
[
0
]
==
"fill"
&&
this
.
attrs
.
fill
==
"none"
&&
this
.
attrs
.
gradient
){
return
this
.
attrs
.
gradient
;}
return
this
.
attrs
[
arguments
[
0
]];}
if
(
arguments
[
m
]
==
1
&&
al
.
is
(
arguments
[
0
],
"array"
)){
var
d
=
{};
for
(
var
e
in
arguments
[
0
]){
if
(
arguments
[
0
][
O
](
e
)){
d
[
arguments
[
0
][
e
]]
=
this
.
attrs
[
arguments
[
0
][
e
]];}}
return
d
;}
if
(
arguments
[
m
]
==
2
){
var
S
=
{};
S
[
arguments
[
0
]]
=
arguments
[
1
];
Y
(
this
,
S
);}
else
{
if
(
arguments
[
m
]
==
1
&&
al
.
is
(
arguments
[
0
],
"object"
)){
Y
(
this
,
arguments
[
0
]);}}
return
this
;};
au
[
aU
].
toFront
=
function
(){
if
(
this
.
removed
){
return
this
;}
this
.
node
.
parentNode
[
aH
](
this
.
node
);
var
d
=
this
.
paper
;
d
.
top
!=
this
&&
W
(
this
,
d
);
return
this
;};
au
[
aU
].
toBack
=
function
(){
if
(
this
.
removed
){
return
this
;}
if
(
this
.
node
.
parentNode
.
firstChild
!=
this
.
node
){
this
.
node
.
parentNode
.
insertBefore
(
this
.
node
,
this
.
node
.
parentNode
.
firstChild
);
k
(
this
,
this
.
paper
);
var
d
=
this
.
paper
;}
return
this
;};
au
[
aU
].
insertAfter
=
function
(
e
){
if
(
this
.
removed
){
return
this
;}
var
d
=
this
.
paper
,
i
=
e
.
node
;
if
(
i
.
nextSibling
){
i
.
parentNode
.
insertBefore
(
this
.
node
,
i
.
nextSibling
);}
else
{
i
.
parentNode
[
aH
](
this
.
node
);}
A
(
this
,
e
,
this
.
paper
);
return
this
;};
au
[
aU
].
insertBefore
=
function
(
d
){
if
(
this
.
removed
){
return
this
;}
var
e
=
d
.
node
;
e
.
parentNode
.
insertBefore
(
this
.
node
,
e
);
an
(
this
,
d
,
this
.
paper
);
return
this
;};
var
N
=
function
(
e
,
d
,
S
,
R
){
d
=
M
(
d
);
S
=
M
(
S
);
var
E
=
aF
(
"circle"
);
e
.
canvas
&&
e
.
canvas
[
aH
](
E
);
var
i
=
new
au
(
E
,
e
);
i
.
attrs
=
{
cx
:
d
,
cy
:
S
,
r
:
R
,
fill
:
"none"
,
stroke
:
"#000"
};
i
.
type
=
"circle"
;
aF
(
E
,
i
.
attrs
);
return
i
;};
var
aB
=
function
(
i
,
d
,
aX
,
e
,
S
,
aW
){
d
=
M
(
d
);
aX
=
M
(
aX
);
var
R
=
aF
(
"rect"
);
i
.
canvas
&&
i
.
canvas
[
aH
](
R
);
var
E
=
new
au
(
R
,
i
);
E
.
attrs
=
{
x
:
d
,
y
:
aX
,
width
:
e
,
height
:
S
,
r
:
aW
||
0
,
rx
:
aW
||
0
,
ry
:
aW
||
0
,
fill
:
"none"
,
stroke
:
"#000"
};
E
.
type
=
"rect"
;
aF
(
R
,
E
.
attrs
);
return
E
;};
var
ag
=
function
(
e
,
d
,
aW
,
S
,
R
){
d
=
M
(
d
);
aW
=
M
(
aW
);
var
E
=
aF
(
"ellipse"
);
e
.
canvas
&&
e
.
canvas
[
aH
](
E
);
var
i
=
new
au
(
E
,
e
);
i
.
attrs
=
{
cx
:
d
,
cy
:
aW
,
rx
:
S
,
ry
:
R
,
fill
:
"none"
,
stroke
:
"#000"
};
i
.
type
=
"ellipse"
;
aF
(
E
,
i
.
attrs
);
return
i
;};
var
o
=
function
(
i
,
aW
,
d
,
aX
,
e
,
S
){
var
R
=
aF
(
"image"
);
aF
(
R
,{
x
:
d
,
y
:
aX
,
width
:
e
,
height
:
S
,
preserveAspectRatio
:
"none"
});
R
.
setAttributeNS
(
i
.
xlink
,
"href"
,
aW
);
i
.
canvas
&&
i
.
canvas
[
aH
](
R
);
var
E
=
new
au
(
R
,
i
);
E
.
attrs
=
{
x
:
d
,
y
:
aX
,
width
:
e
,
height
:
S
,
src
:
aW
};
E
.
type
=
"image"
;
return
E
;};
var
V
=
function
(
e
,
d
,
S
,
R
){
var
E
=
aF
(
"text"
);
aF
(
E
,{
x
:
d
,
y
:
S
,
"text-anchor"
:
"middle"
});
e
.
canvas
&&
e
.
canvas
[
aH
](
E
);
var
i
=
new
au
(
E
,
e
);
i
.
attrs
=
{
x
:
d
,
y
:
S
,
"text-anchor"
:
"middle"
,
text
:
R
,
font
:
j
.
font
,
stroke
:
"none"
,
fill
:
"#000"
};
i
.
type
=
"text"
;
Y
(
i
,
i
.
attrs
);
return
i
;};
var
aR
=
function
(
e
,
d
){
this
.
width
=
e
||
this
.
width
;
this
.
height
=
d
||
this
.
height
;
this
.
canvas
[
v
](
"width"
,
this
.
width
);
this
.
canvas
[
v
](
"height"
,
this
.
height
);
return
this
;};
var
w
=
function
(){
var
E
=
am
[
aS
](
null
,
arguments
),
i
=
E
&&
E
.
container
,
e
=
E
.
x
,
aW
=
E
.
y
,
R
=
E
.
width
,
d
=
E
.
height
;
if
(
!
i
){
throw
new
Error
(
"SVG container not found."
);}
var
S
=
aF
(
"svg"
);
R
=
R
||
512
;
d
=
d
||
342
;
aF
(
S
,{
xmlns
:
"http://www.w3.org/2000/svg"
,
version
:
1.1
,
width
:
R
,
height
:
d
});
if
(
i
==
1
){
S
.
style
.
cssText
=
"position:absolute;left:"
+
e
+
"px;top:"
+
aW
+
"px"
;
J
.
body
[
aH
](
S
);}
else
{
if
(
i
.
firstChild
){
i
.
insertBefore
(
S
,
i
.
firstChild
);}
else
{
i
[
aH
](
S
);}}
i
=
new
aP
;
i
.
width
=
R
;
i
.
height
=
d
;
i
.
canvas
=
S
;
aC
.
call
(
i
,
i
,
al
.
fn
);
i
.
clear
();
return
i
;};
aP
[
aU
].
clear
=
function
(){
var
d
=
this
.
canvas
;
while
(
d
.
firstChild
){
d
.
removeChild
(
d
.
firstChild
);}
this
.
bottom
=
this
.
top
=
null
;(
this
.
desc
=
aF
(
"desc"
))[
aH
](
J
.
createTextNode
(
"Created with Rapha\xebl"
));
d
[
aH
](
this
.
desc
);
d
[
aH
](
this
.
defs
=
aF
(
"defs"
));};
aP
[
aU
].
remove
=
function
(){
this
.
canvas
.
parentNode
&&
this
.
canvas
.
parentNode
.
removeChild
(
this
.
canvas
);
for
(
var
d
in
this
){
this
[
d
]
=
s
(
d
);}};}
if
(
al
.
vml
){
var
aD
=
function
(
a4
){
var
a1
=
/
[
ahqtv
]
/ig
,
aW
=
r
;(
a4
+
ap
).
match
(
a1
)
&&
(
aW
=
G
);
a1
=
/
[
clmz
]
/g
;
if
(
aW
==
r
&&!
(
a4
+
ap
).
match
(
a1
)){
var
e
=
{
M
:
"m"
,
L
:
"l"
,
C
:
"c"
,
Z
:
"x"
,
m
:
"t"
,
l
:
"r"
,
c
:
"v"
,
z
:
"x"
},
R
=
/
([
clmz
])
,
?([^
clmz
]
*
)
/gi
,
S
=
/-
?[^
,
\s
-
]
+/g
;
var
a0
=
(
a4
+
ap
)[
aL
](
R
,
function
(
a5
,
a7
,
i
){
var
a6
=
[];
i
[
aL
](
S
,
function
(
a8
){
a6
[
f
](
M
(
a8
));});
return
e
[
a7
]
+
a6
;});
return
a0
;}
var
a2
=
aW
(
a4
),
E
,
a0
=
[],
d
;
for
(
var
aY
=
0
,
a3
=
a2
[
m
];
aY
<
a3
;
aY
++
){
E
=
a2
[
aY
];
d
=
aV
.
call
(
a2
[
aY
][
0
]);
d
==
"z"
&&
(
d
=
"x"
);
for
(
var
aX
=
1
,
aZ
=
E
[
m
];
aX
<
aZ
;
aX
++
){
d
+=
M
(
E
[
aX
])
+
(
aX
!=
aZ
-
1
?
","
:
ap
);}
a0
[
f
](
d
);}
return
a0
[
av
](
ak
);};
al
[
aw
]
=
function
(){
return
"Your browser doesn\u2019t support SVG. Falling down to VML.\nYou are running Rapha\xebl "
+
this
.
version
;};
var
q
=
function
(
d
,
S
){
var
E
=
af
(
"group"
);
E
.
style
.
cssText
=
"position:absolute;left:0;top:0;width:"
+
S
.
width
+
"px;height:"
+
S
.
height
+
"px"
;
E
.
coordsize
=
S
.
coordsize
;
E
.
coordorigin
=
S
.
coordorigin
;
var
i
=
af
(
"shape"
),
e
=
i
.
style
;
e
.
width
=
S
.
width
+
"px"
;
e
.
height
=
S
.
height
+
"px"
;
i
.
coordsize
=
this
.
coordsize
;
i
.
coordorigin
=
this
.
coordorigin
;
E
[
aH
](
i
);
var
R
=
new
au
(
i
,
E
,
S
);
R
.
isAbsolute
=
true
;
R
.
type
=
"path"
;
R
.
path
=
[];
R
.
Path
=
ap
;
d
&&
Y
(
R
,{
fill
:
"none"
,
stroke
:
"#000"
,
path
:
d
});
S
.
canvas
[
aH
](
E
);
return
R
;};
var
Y
=
function
(
aZ
,
a4
){
aZ
.
attrs
=
aZ
.
attrs
||
{};
var
a2
=
aZ
.
node
,
a5
=
aZ
.
attrs
,
aW
=
a2
.
style
,
E
,
a9
=
aZ
;
for
(
var
aX
in
a4
){
if
(
a4
[
O
](
aX
)){
a5
[
aX
]
=
a4
[
aX
];}}
a4
.
href
&&
(
a2
.
href
=
a4
.
href
);
a4
.
title
&&
(
a2
.
title
=
a4
.
title
);
a4
.
target
&&
(
a2
.
target
=
a4
.
target
);
a4
.
cursor
&&
(
aW
.
cursor
=
a4
.
cursor
);
if
(
a4
.
path
&&
aZ
.
type
==
"path"
){
a5
.
path
=
a4
.
path
;
a2
.
path
=
aD
(
a5
.
path
);}
if
(
a4
.
rotation
!=
null
){
aZ
.
rotate
(
a4
.
rotation
,
true
);}
if
(
a4
.
translation
){
E
=
(
a4
.
translation
+
ap
)[
z
](
a
);
t
.
call
(
aZ
,
E
[
0
],
E
[
1
]);
if
(
aZ
.
_
.
rt
.
cx
!=
null
){
aZ
.
_
.
rt
.
cx
+=+
E
[
0
];
aZ
.
_
.
rt
.
cy
+=+
E
[
1
];
aZ
.
setBox
(
aZ
.
attrs
,
E
[
0
],
E
[
1
]);}}
if
(
a4
.
scale
){
E
=
(
a4
.
scale
+
ap
)[
z
](
a
);
aZ
.
scale
(
+
E
[
0
]
||
1
,
+
E
[
1
]
||+
E
[
0
]
||
1
,
+
E
[
2
]
||
null
,
+
E
[
3
]
||
null
);}
if
(
"clip-rect"
in
a4
){
var
d
=
(
a4
[
"clip-rect"
]
+
ap
)[
z
](
a
);
if
(
d
[
m
]
==
4
){
d
[
2
]
=+
d
[
2
]
+
(
+
d
[
0
]);
d
[
3
]
=+
d
[
3
]
+
(
+
d
[
1
]);
var
aY
=
a2
.
clipRect
||
J
.
createElement
(
"div"
),
a8
=
aY
.
style
,
S
=
a2
.
parentNode
;
a8
.
clip
=
al
.
format
(
"rect({1}px {2}px {3}px {0}px)"
,
d
);
if
(
!
a2
.
clipRect
){
a8
.
position
=
"absolute"
;
a8
.
top
=
0
;
a8
.
left
=
0
;
a8
.
width
=
aZ
.
paper
.
width
+
"px"
;
a8
.
height
=
aZ
.
paper
.
height
+
"px"
;
S
.
parentNode
.
insertBefore
(
aY
,
S
);
aY
[
aH
](
S
);
a2
.
clipRect
=
aY
;}}
if
(
!
a4
[
"clip-rect"
]){
a2
.
clipRect
&&
(
a2
.
clipRect
.
style
.
clip
=
ap
);}}
if
(
aZ
.
type
==
"image"
&&
a4
.
src
){
a2
.
src
=
a4
.
src
;}
if
(
aZ
.
type
==
"image"
&&
a4
.
opacity
){
a2
.
filterOpacity
=
" progid:DXImageTransform.Microsoft.Alpha(opacity="
+
(
a4
.
opacity
*
100
)
+
")"
;
aW
.
filter
=
(
a2
.
filterMatrix
||
ap
)
+
(
a2
.
filterOpacity
||
ap
);}
a4
.
font
&&
(
aW
.
font
=
a4
.
font
);
a4
[
"font-family"
]
&&
(
aW
.
fontFamily
=
'"'
+
a4
[
"font-family"
][
z
](
","
)[
0
][
aL
](
/^
[
'"
]
+|
[
'"
]
+$/g
,
ap
)
+
'"'
);
a4
[
"font-size"
]
&&
(
aW
.
fontSize
=
a4
[
"font-size"
]);
a4
[
"font-weight"
]
&&
(
aW
.
fontWeight
=
a4
[
"font-weight"
]);
a4
[
"font-style"
]
&&
(
aW
.
fontStyle
=
a4
[
"font-style"
]);
if
(
a4
.
opacity
!=
null
||
a4
[
"stroke-width"
]
!=
null
||
a4
.
fill
!=
null
||
a4
.
stroke
!=
null
||
a4
[
"stroke-width"
]
!=
null
||
a4
[
"stroke-opacity"
]
!=
null
||
a4
[
"fill-opacity"
]
!=
null
||
a4
[
"stroke-dasharray"
]
!=
null
||
a4
[
"stroke-miterlimit"
]
!=
null
||
a4
[
"stroke-linejoin"
]
!=
null
||
a4
[
"stroke-linecap"
]
!=
null
){
a2
=
aZ
.
shape
||
a2
;
var
a3
=
(
a2
.
getElementsByTagName
(
"fill"
)
&&
a2
.
getElementsByTagName
(
"fill"
)[
0
]),
a6
=
false
;
!
a3
&&
(
a6
=
a3
=
af
(
"fill"
));
if
(
"fill-opacity"
in
a4
||
"opacity"
in
a4
){
var
e
=
((
+
a5
[
"fill-opacity"
]
+
1
||
2
)
-
1
)
*
((
+
a5
.
opacity
+
1
||
2
)
-
1
);
e
<
0
&&
(
e
=
0
);
e
>
1
&&
(
e
=
1
);
a3
.
opacity
=
e
;}
a4
.
fill
&&
(
a3
.
on
=
true
);
if
(
a3
.
on
==
null
||
a4
.
fill
==
"none"
){
a3
.
on
=
false
;}
if
(
a3
.
on
&&
a4
.
fill
){
var
i
=
a4
.
fill
.
match
(
c
);
if
(
i
){
a3
.
src
=
i
[
1
];
a3
.
type
=
"tile"
;}
else
{
a3
.
color
=
al
.
getRGB
(
a4
.
fill
).
hex
;
a3
.
src
=
ap
;
a3
.
type
=
"solid"
;
if
(
al
.
getRGB
(
a4
.
fill
).
error
&&
(
a9
.
type
in
{
circle
:
1
,
ellipse
:
1
}
||
(
a4
.
fill
+
ap
).
charAt
()
!=
"r"
)
&&
b
(
a9
,
a4
.
fill
)){
a5
.
fill
=
"none"
;
a5
.
gradient
=
a4
.
fill
;}}}
a6
&&
a2
[
aH
](
a3
);
var
R
=
(
a2
.
getElementsByTagName
(
"stroke"
)
&&
a2
.
getElementsByTagName
(
"stroke"
)[
0
]),
a7
=
false
;
!
R
&&
(
a7
=
R
=
af
(
"stroke"
));
if
((
a4
.
stroke
&&
a4
.
stroke
!=
"none"
)
||
a4
[
"stroke-width"
]
||
a4
[
"stroke-opacity"
]
!=
null
||
a4
[
"stroke-dasharray"
]
||
a4
[
"stroke-miterlimit"
]
||
a4
[
"stroke-linejoin"
]
||
a4
[
"stroke-linecap"
]){
R
.
on
=
true
;}(
a4
.
stroke
==
"none"
||
R
.
on
==
null
||
a4
.
stroke
==
0
||
a4
[
"stroke-width"
]
==
0
)
&&
(
R
.
on
=
false
);
R
.
on
&&
a4
.
stroke
&&
(
R
.
color
=
al
.
getRGB
(
a4
.
stroke
).
hex
);
var
e
=
((
+
a5
[
"stroke-opacity"
]
+
1
||
2
)
-
1
)
*
((
+
a5
.
opacity
+
1
||
2
)
-
1
),
a0
=
(
U
(
a4
[
"stroke-width"
])
||
1
)
*
0.75
;
e
<
0
&&
(
e
=
0
);
e
>
1
&&
(
e
=
1
);
a4
[
"stroke-width"
]
==
null
&&
(
a0
=
a5
[
"stroke-width"
]);
a4
[
"stroke-width"
]
&&
(
R
.
weight
=
a0
);
a0
&&
a0
<
1
&&
(
e
*=
a0
)
&&
(
R
.
weight
=
1
);
R
.
opacity
=
e
;
a4
[
"stroke-linejoin"
]
&&
(
R
.
joinstyle
=
a4
[
"stroke-linejoin"
]
||
"miter"
);
R
.
miterlimit
=
a4
[
"stroke-miterlimit"
]
||
8
;
a4
[
"stroke-linecap"
]
&&
(
R
.
endcap
=
a4
[
"stroke-linecap"
]
==
"butt"
?
"flat"
:
a4
[
"stroke-linecap"
]
==
"square"
?
"square"
:
"round"
);
if
(
a4
[
"stroke-dasharray"
]){
var
a1
=
{
"-"
:
"shortdash"
,
"."
:
"shortdot"
,
"-."
:
"shortdashdot"
,
"-.."
:
"shortdashdotdot"
,
". "
:
"dot"
,
"- "
:
"dash"
,
"--"
:
"longdash"
,
"- ."
:
"dashdot"
,
"--."
:
"longdashdot"
,
"--.."
:
"longdashdotdot"
};
R
.
dashstyle
=
a1
[
O
](
a4
[
"stroke-dasharray"
])?
a1
[
a4
[
"stroke-dasharray"
]]:
ap
;}
a7
&&
a2
[
aH
](
R
);}
if
(
a9
.
type
==
"text"
){
var
aW
=
a9
.
paper
.
span
.
style
;
a5
.
font
&&
(
aW
.
font
=
a5
.
font
);
a5
[
"font-family"
]
&&
(
aW
.
fontFamily
=
a5
[
"font-family"
]);
a5
[
"font-size"
]
&&
(
aW
.
fontSize
=
a5
[
"font-size"
]);
a5
[
"font-weight"
]
&&
(
aW
.
fontWeight
=
a5
[
"font-weight"
]);
a5
[
"font-style"
]
&&
(
aW
.
fontStyle
=
a5
[
"font-style"
]);
a9
.
node
.
string
&&
(
a9
.
paper
.
span
.
innerHTML
=
(
a9
.
node
.
string
+
ap
)[
aL
](
/</g
,
"<"
)[
aL
](
/&/g
,
"&"
)[
aL
](
/
\n
/g
,
"<br>"
));
a9
.
W
=
a5
.
w
=
a9
.
paper
.
span
.
offsetWidth
;
a9
.
H
=
a5
.
h
=
a9
.
paper
.
span
.
offsetHeight
;
a9
.
X
=
a5
.
x
;
a9
.
Y
=
a5
.
y
+
M
(
a9
.
H
/
2
);
switch
(
a5
[
"text-anchor"
]){
case
"start"
:
a9
.
node
.
style
[
"v-text-align"
]
=
"left"
;
a9
.
bbx
=
M
(
a9
.
W
/
2
);
break
;
case
"end"
:
a9
.
node
.
style
[
"v-text-align"
]
=
"right"
;
a9
.
bbx
=-
M
(
a9
.
W
/
2
);
break
;
default
:
a9
.
node
.
style
[
"v-text-align"
]
=
"center"
;
break
;}}};
var
b
=
function
(
d
,
aX
){
d
.
attrs
=
d
.
attrs
||
{};
var
aY
=
d
.
attrs
,
a0
=
d
.
node
.
getElementsByTagName
(
"fill"
),
S
=
"linear"
,
aW
=
".5 .5"
;
d
.
attrs
.
gradient
=
aX
;
aX
=
(
aX
+
ap
)[
aL
](
ao
,
function
(
a2
,
a3
,
i
){
S
=
"radial"
;
if
(
a3
&&
i
){
a3
=
U
(
a3
);
i
=
U
(
i
);
aI
(
a3
-
0.5
,
2
)
+
aI
(
i
-
0.5
,
2
)
>
0.25
&&
(
i
=
Z
.
sqrt
(
0.25
-
aI
(
a3
-
0.5
,
2
))
*
((
i
>
0.5
)
*
2
-
1
)
+
0.5
);
aW
=
a3
+
ak
+
i
;}
return
ap
;});
aX
=
aX
[
z
](
/
\s
*
\-\s
*/
);
if
(
S
==
"linear"
){
var
e
=
aX
.
shift
();
e
=-
U
(
e
);
if
(
isNaN
(
e
)){
return
null
;}}
var
R
=
p
(
aX
);
if
(
!
R
){
return
null
;}
d
=
d
.
shape
||
d
.
node
;
a0
=
a0
[
0
]
||
af
(
"fill"
);
if
(
R
[
m
]){
a0
.
on
=
true
;
a0
.
method
=
"none"
;
a0
.
type
=
(
S
==
"radial"
)?
"gradientradial"
:
"gradient"
;
a0
.
color
=
R
[
0
].
color
;
a0
.
color2
=
R
[
R
[
m
]
-
1
].
color
;
var
a1
=
[];
for
(
var
E
=
0
,
aZ
=
R
[
m
];
E
<
aZ
;
E
++
){
R
[
E
].
offset
&&
a1
[
f
](
R
[
E
].
offset
+
ak
+
R
[
E
].
color
);}
a0
.
colors
&&
(
a0
.
colors
.
value
=
a1
[
m
]?
a1
[
av
](
","
):
"0% "
+
a0
.
color
);
if
(
S
==
"radial"
){
a0
.
focus
=
"100%"
;
a0
.
focussize
=
aW
;
a0
.
focusposition
=
aW
;}
else
{
a0
.
angle
=
(
270
-
e
)
%
360
;}}
return
1
;};
var
au
=
function
(
R
,
aW
,
d
){
var
S
=
0
,
i
=
0
,
e
=
0
,
E
=
1
;
this
[
0
]
=
R
;
this
.
id
=
al
.
_oid
++
;
this
.
node
=
R
;
R
.
raphael
=
this
;
this
.
X
=
0
;
this
.
Y
=
0
;
this
.
attrs
=
{};
this
.
Group
=
aW
;
this
.
paper
=
d
;
this
.
_
=
{
tx
:
0
,
ty
:
0
,
rt
:{
deg
:
0
},
sx
:
1
,
sy
:
1
};
!
d
.
bottom
&&
(
d
.
bottom
=
this
);
this
.
prev
=
d
.
top
;
d
.
top
&&
(
d
.
top
.
next
=
this
);
d
.
top
=
this
;
this
.
next
=
null
;};
au
[
aU
].
rotate
=
function
(
e
,
d
,
i
){
if
(
this
.
removed
){
return
this
;}
if
(
e
==
null
){
if
(
this
.
_
.
rt
.
cx
){
return
[
this
.
_
.
rt
.
deg
,
this
.
_
.
rt
.
cx
,
this
.
_
.
rt
.
cy
][
av
](
ak
);}
return
this
.
_
.
rt
.
deg
;}
e
=
(
e
+
ap
)[
z
](
a
);
if
(
e
[
m
]
-
1
){
d
=
U
(
e
[
1
]);
i
=
U
(
e
[
2
]);}
e
=
U
(
e
[
0
]);
if
(
d
!=
null
){
this
.
_
.
rt
.
deg
=
e
;}
else
{
this
.
_
.
rt
.
deg
+=
e
;}
i
==
null
&&
(
d
=
null
);
this
.
_
.
rt
.
cx
=
d
;
this
.
_
.
rt
.
cy
=
i
;
this
.
setBox
(
this
.
attrs
,
d
,
i
);
this
.
Group
.
style
.
rotation
=
this
.
_
.
rt
.
deg
;
return
this
;};
au
[
aU
].
setBox
=
function
(
a7
,
e
,
d
){
if
(
this
.
removed
){
return
this
;}
var
a1
=
this
.
Group
.
style
,
R
=
(
this
.
shape
&&
this
.
shape
.
style
)
||
this
.
node
.
style
;
a7
=
a7
||
{};
for
(
var
a5
in
a7
){
if
(
a7
[
O
](
a5
)){
this
.
attrs
[
a5
]
=
a7
[
a5
];}}
e
=
e
||
this
.
_
.
rt
.
cx
;
d
=
d
||
this
.
_
.
rt
.
cy
;
var
a3
=
this
.
attrs
,
aX
,
aW
,
aY
,
a6
;
switch
(
this
.
type
){
case
"circle"
:
aX
=
a3
.
cx
-
a3
.
r
;
aW
=
a3
.
cy
-
a3
.
r
;
aY
=
a6
=
a3
.
r
*
2
;
break
;
case
"ellipse"
:
aX
=
a3
.
cx
-
a3
.
rx
;
aW
=
a3
.
cy
-
a3
.
ry
;
aY
=
a3
.
rx
*
2
;
a6
=
a3
.
ry
*
2
;
break
;
case
"rect"
:
case
"image"
:
aX
=+
a3
.
x
;
aW
=+
a3
.
y
;
aY
=
a3
.
width
||
0
;
a6
=
a3
.
height
||
0
;
break
;
case
"text"
:
this
.
textpath
.
v
=
[
"m"
,
M
(
a3
.
x
),
", "
,
M
(
a3
.
y
-
2
),
"l"
,
M
(
a3
.
x
)
+
1
,
", "
,
M
(
a3
.
y
-
2
)][
av
](
ap
);
aX
=
a3
.
x
-
M
(
this
.
W
/
2
);
aW
=
a3
.
y
-
this
.
H
/
2
;
aY
=
this
.
W
;
a6
=
this
.
H
;
break
;
case
"path"
:
if
(
!
this
.
attrs
.
path
){
aX
=
0
;
aW
=
0
;
aY
=
this
.
paper
.
width
;
a6
=
this
.
paper
.
height
;}
else
{
var
a4
=
Q
(
this
.
attrs
.
path
);
aX
=
a4
.
x
;
aW
=
a4
.
y
;
aY
=
a4
.
width
;
a6
=
a4
.
height
;}
break
;
default
:
aX
=
0
;
aW
=
0
;
aY
=
this
.
paper
.
width
;
a6
=
this
.
paper
.
height
;
break
;}
e
=
(
e
==
null
)?
aX
+
aY
/
2
:
e
;
d
=
(
d
==
null
)?
aW
+
a6
/
2
:
d
;
var
E
=
e
-
this
.
paper
.
width
/
2
,
a0
=
d
-
this
.
paper
.
height
/
2
;
if
(
this
.
type
==
"path"
||
this
.
type
==
"text"
){(
a1
.
left
!=
E
+
"px"
)
&&
(
a1
.
left
=
E
+
"px"
);(
a1
.
top
!=
a0
+
"px"
)
&&
(
a1
.
top
=
a0
+
"px"
);
this
.
X
=
this
.
type
==
"text"
?
aX
:
-
E
;
this
.
Y
=
this
.
type
==
"text"
?
aW
:
-
a0
;
this
.
W
=
aY
;
this
.
H
=
a6
;(
R
.
left
!=-
E
+
"px"
)
&&
(
R
.
left
=-
E
+
"px"
);(
R
.
top
!=-
a0
+
"px"
)
&&
(
R
.
top
=-
a0
+
"px"
);}
else
{(
a1
.
left
!=
E
+
"px"
)
&&
(
a1
.
left
=
E
+
"px"
);(
a1
.
top
!=
a0
+
"px"
)
&&
(
a1
.
top
=
a0
+
"px"
);
this
.
X
=
aX
;
this
.
Y
=
aW
;
this
.
W
=
aY
;
this
.
H
=
a6
;(
a1
.
width
!=
this
.
paper
.
width
+
"px"
)
&&
(
a1
.
width
=
this
.
paper
.
width
+
"px"
);(
a1
.
height
!=
this
.
paper
.
height
+
"px"
)
&&
(
a1
.
height
=
this
.
paper
.
height
+
"px"
);(
R
.
left
!=
aX
-
E
+
"px"
)
&&
(
R
.
left
=
aX
-
E
+
"px"
);(
R
.
top
!=
aW
-
a0
+
"px"
)
&&
(
R
.
top
=
aW
-
a0
+
"px"
);(
R
.
width
!=
aY
+
"px"
)
&&
(
R
.
width
=
aY
+
"px"
);(
R
.
height
!=
a6
+
"px"
)
&&
(
R
.
height
=
a6
+
"px"
);
var
S
=
(
+
a7
.
r
||
0
)
/
aE
(
aY
,
a6
);
if
(
this
.
type
==
"rect"
&&
this
.
arcsize
.
toFixed
(
4
)
!=
S
.
toFixed
(
4
)
&&
(
S
||
this
.
arcsize
)){
var
a2
=
af
(
"roundrect"
),
a8
=
{},
a5
=
0
,
aZ
=
this
.
events
&&
this
.
events
[
m
];
a2
.
arcsize
=
S
;
a2
.
raphael
=
this
;
this
.
Group
[
aH
](
a2
);
this
.
Group
.
removeChild
(
this
.
node
);
this
[
0
]
=
this
.
node
=
a2
;
this
.
arcsize
=
S
;
for
(
var
a5
in
a3
){
a8
[
a5
]
=
a3
[
a5
];}
delete
a8
.
scale
;
this
.
attr
(
a8
);
if
(
this
.
events
){
for
(;
a5
<
aZ
;
a5
++
){
this
.
events
[
a5
].
unbind
=
ac
(
this
.
node
,
this
.
events
[
a5
].
name
,
this
.
events
[
a5
].
f
,
this
);}}}}};
au
[
aU
].
hide
=
function
(){
!
this
.
removed
&&
(
this
.
Group
.
style
.
display
=
"none"
);
return
this
;};
au
[
aU
].
show
=
function
(){
!
this
.
removed
&&
(
this
.
Group
.
style
.
display
=
"block"
);
return
this
;};
au
[
aU
].
getBBox
=
function
(){
if
(
this
.
removed
){
return
this
;}
if
(
this
.
type
==
"path"
){
return
Q
(
this
.
attrs
.
path
);}
return
{
x
:
this
.
X
+
(
this
.
bbx
||
0
),
y
:
this
.
Y
,
width
:
this
.
W
,
height
:
this
.
H
};};
au
[
aU
].
remove
=
function
(){
if
(
this
.
removed
){
return
;}
ai
(
this
,
this
.
paper
);
this
.
node
.
parentNode
.
removeChild
(
this
.
node
);
this
.
Group
.
parentNode
.
removeChild
(
this
.
Group
);
this
.
shape
&&
this
.
shape
.
parentNode
.
removeChild
(
this
.
shape
);
for
(
var
d
in
this
){
delete
this
[
d
];}
this
.
removed
=
true
;};
au
[
aU
].
attr
=
function
(){
if
(
this
.
removed
){
return
this
;}
if
(
arguments
[
m
]
==
0
){
var
E
=
{};
for
(
var
e
in
this
.
attrs
){
if
(
this
.
attrs
[
O
](
e
)){
E
[
e
]
=
this
.
attrs
[
e
];}}
this
.
_
.
rt
.
deg
&&
(
E
.
rotation
=
this
.
rotate
());(
this
.
_
.
sx
!=
1
||
this
.
_
.
sy
!=
1
)
&&
(
E
.
scale
=
this
.
scale
());
E
.
gradient
&&
E
.
fill
==
"none"
&&
(
E
.
fill
=
E
.
gradient
)
&&
delete
E
.
gradient
;
return
E
;}
if
(
arguments
[
m
]
==
1
&&
al
.
is
(
arguments
[
0
],
"string"
)){
if
(
arguments
[
0
]
==
"translation"
){
return
t
.
call
(
this
);}
if
(
arguments
[
0
]
==
"rotation"
){
return
this
.
rotate
();}
if
(
arguments
[
0
]
==
"scale"
){
return
this
.
scale
();}
if
(
arguments
[
0
]
==
"fill"
&&
this
.
attrs
.
fill
==
"none"
&&
this
.
attrs
.
gradient
){
return
this
.
attrs
.
gradient
;}
return
this
.
attrs
[
arguments
[
0
]];}
if
(
this
.
attrs
&&
arguments
[
m
]
==
1
&&
al
.
is
(
arguments
[
0
],
"array"
)){
var
d
=
{};
for
(
var
e
=
0
,
R
=
arguments
[
0
][
m
];
e
<
R
;
e
++
){
d
[
arguments
[
0
][
e
]]
=
this
.
attrs
[
arguments
[
0
][
e
]];}
return
d
;}
var
S
;
if
(
arguments
[
m
]
==
2
){
S
=
{};
S
[
arguments
[
0
]]
=
arguments
[
1
];}
arguments
[
m
]
==
1
&&
al
.
is
(
arguments
[
0
],
"object"
)
&&
(
S
=
arguments
[
0
]);
if
(
S
){
if
(
S
.
text
&&
this
.
type
==
"text"
){
this
.
node
.
string
=
S
.
text
;}
Y
(
this
,
S
);
if
(
S
.
gradient
&&
(({
circle
:
1
,
ellipse
:
1
})[
O
](
this
.
type
)
||
(
S
.
gradient
+
ap
).
charAt
()
!=
"r"
)){
b
(
this
,
S
.
gradient
);}(
this
.
type
!=
"path"
||
this
.
_
.
rt
.
deg
)
&&
this
.
setBox
(
this
.
attrs
);}
return
this
;};
au
[
aU
].
toFront
=
function
(){
!
this
.
removed
&&
this
.
Group
.
parentNode
[
aH
](
this
.
Group
);
this
.
paper
.
top
!=
this
&&
W
(
this
,
this
.
paper
);
return
this
;};
au
[
aU
].
toBack
=
function
(){
if
(
this
.
removed
){
return
this
;}
if
(
this
.
Group
.
parentNode
.
firstChild
!=
this
.
Group
){
this
.
Group
.
parentNode
.
insertBefore
(
this
.
Group
,
this
.
Group
.
parentNode
.
firstChild
);
k
(
this
,
this
.
paper
);}
return
this
;};
au
[
aU
].
insertAfter
=
function
(
d
){
if
(
this
.
removed
){
return
this
;}
if
(
d
.
Group
.
nextSibling
){
d
.
Group
.
parentNode
.
insertBefore
(
this
.
Group
,
d
.
Group
.
nextSibling
);}
else
{
d
.
Group
.
parentNode
[
aH
](
this
.
Group
);}
A
(
this
,
d
,
this
.
paper
);
return
this
;};
au
[
aU
].
insertBefore
=
function
(
d
){
if
(
this
.
removed
){
return
this
;}
d
.
Group
.
parentNode
.
insertBefore
(
this
.
Group
,
d
.
Group
);
an
(
this
,
d
,
this
.
paper
);
return
this
;};
var
N
=
function
(
e
,
d
,
aX
,
S
){
var
R
=
af
(
"group"
),
aW
=
af
(
"oval"
),
i
=
aW
.
style
;
R
.
style
.
cssText
=
"position:absolute;left:0;top:0;width:"
+
e
.
width
+
"px;height:"
+
e
.
height
+
"px"
;
R
.
coordsize
=
e
.
coordsize
;
R
.
coordorigin
=
e
.
coordorigin
;
R
[
aH
](
aW
);
var
E
=
new
au
(
aW
,
R
,
e
);
E
.
type
=
"circle"
;
Y
(
E
,{
stroke
:
"#000"
,
fill
:
"none"
});
E
.
attrs
.
cx
=
d
;
E
.
attrs
.
cy
=
aX
;
E
.
attrs
.
r
=
S
;
E
.
setBox
({
x
:
d
-
S
,
y
:
aX
-
S
,
width
:
S
*
2
,
height
:
S
*
2
});
e
.
canvas
[
aH
](
R
);
return
E
;},
aB
=
function
(
e
,
aX
,
aW
,
aY
,
E
,
d
){
var
R
=
af
(
"group"
),
i
=
af
(
"roundrect"
),
aZ
=
(
+
d
||
0
)
/
(
aE
(
aY
,
E
));
R
.
style
.
cssText
=
"position:absolute;left:0;top:0;width:"
+
e
.
width
+
"px;height:"
+
e
.
height
+
"px"
;
R
.
coordsize
=
e
.
coordsize
;
R
.
coordorigin
=
e
.
coordorigin
;
R
[
aH
](
i
);
i
.
arcsize
=
aZ
;
var
S
=
new
au
(
i
,
R
,
e
);
S
.
type
=
"rect"
;
Y
(
S
,{
stroke
:
"#000"
});
S
.
arcsize
=
aZ
;
S
.
setBox
({
x
:
aX
,
y
:
aW
,
width
:
aY
,
height
:
E
,
r
:
d
});
e
.
canvas
[
aH
](
R
);
return
S
;},
ag
=
function
(
d
,
aY
,
aX
,
i
,
e
){
var
R
=
af
(
"group"
),
E
=
af
(
"oval"
),
aW
=
E
.
style
;
R
.
style
.
cssText
=
"position:absolute;left:0;top:0;width:"
+
d
.
width
+
"px;height:"
+
d
.
height
+
"px"
;
R
.
coordsize
=
d
.
coordsize
;
R
.
coordorigin
=
d
.
coordorigin
;
R
[
aH
](
E
);
var
S
=
new
au
(
E
,
R
,
d
);
S
.
type
=
"ellipse"
;
Y
(
S
,{
stroke
:
"#000"
});
S
.
attrs
.
cx
=
aY
;
S
.
attrs
.
cy
=
aX
;
S
.
attrs
.
rx
=
i
;
S
.
attrs
.
ry
=
e
;
S
.
setBox
({
x
:
aY
-
i
,
y
:
aX
-
e
,
width
:
i
*
2
,
height
:
e
*
2
});
d
.
canvas
[
aH
](
R
);
return
S
;},
o
=
function
(
e
,
d
,
aY
,
aX
,
aZ
,
E
){
var
R
=
af
(
"group"
),
i
=
af
(
"image"
),
aW
=
i
.
style
;
R
.
style
.
cssText
=
"position:absolute;left:0;top:0;width:"
+
e
.
width
+
"px;height:"
+
e
.
height
+
"px"
;
R
.
coordsize
=
e
.
coordsize
;
R
.
coordorigin
=
e
.
coordorigin
;
i
.
src
=
d
;
R
[
aH
](
i
);
var
S
=
new
au
(
i
,
R
,
e
);
S
.
type
=
"image"
;
S
.
attrs
.
src
=
d
;
S
.
attrs
.
x
=
aY
;
S
.
attrs
.
y
=
aX
;
S
.
attrs
.
w
=
aZ
;
S
.
attrs
.
h
=
E
;
S
.
setBox
({
x
:
aY
,
y
:
aX
,
width
:
aZ
,
height
:
E
});
e
.
canvas
[
aH
](
R
);
return
S
;},
V
=
function
(
e
,
aY
,
aX
,
aZ
){
var
R
=
af
(
"group"
),
E
=
af
(
"shape"
),
aW
=
E
.
style
,
a0
=
af
(
"path"
),
d
=
a0
.
style
,
i
=
af
(
"textpath"
);
R
.
style
.
cssText
=
"position:absolute;left:0;top:0;width:"
+
e
.
width
+
"px;height:"
+
e
.
height
+
"px"
;
R
.
coordsize
=
e
.
coordsize
;
R
.
coordorigin
=
e
.
coordorigin
;
a0
.
v
=
al
.
format
(
"m{0},{1}l{2},{1}"
,
M
(
aY
),
M
(
aX
),
M
(
aY
)
+
1
);
a0
.
textpathok
=
true
;
aW
.
width
=
e
.
width
;
aW
.
height
=
e
.
height
;
i
.
string
=
aZ
+
ap
;
i
.
on
=
true
;
E
[
aH
](
i
);
E
[
aH
](
a0
);
R
[
aH
](
E
);
var
S
=
new
au
(
i
,
R
,
e
);
S
.
shape
=
E
;
S
.
textpath
=
a0
;
S
.
type
=
"text"
;
S
.
attrs
.
text
=
aZ
;
S
.
attrs
.
x
=
aY
;
S
.
attrs
.
y
=
aX
;
S
.
attrs
.
w
=
1
;
S
.
attrs
.
h
=
1
;
Y
(
S
,{
font
:
j
.
font
,
stroke
:
"none"
,
fill
:
"#000"
});
S
.
setBox
();
e
.
canvas
[
aH
](
R
);
return
S
;},
aR
=
function
(
i
,
d
){
var
e
=
this
.
canvas
.
style
;
i
==+
i
&&
(
i
+=
"px"
);
d
==+
d
&&
(
d
+=
"px"
);
e
.
width
=
i
;
e
.
height
=
d
;
e
.
clip
=
"rect(0 "
+
i
+
" "
+
d
+
" 0)"
;
return
this
;},
af
;
J
.
createStyleSheet
().
addRule
(
".rvml"
,
"behavior:url(#default#VML)"
);
try
{
!
J
.
namespaces
.
rvml
&&
J
.
namespaces
.
add
(
"rvml"
,
"urn:schemas-microsoft-com:vml"
);
af
=
function
(
d
){
return
J
.
createElement
(
"<rvml:"
+
d
+
' class="rvml">'
);};}
catch
(
ad
){
af
=
function
(
d
){
return
J
.
createElement
(
"<"
+
d
+
' xmlns="urn:schemas-microsoft.com:vml" class="rvml">'
);};}
var
w
=
function
(){
var
i
=
am
[
aS
](
null
,
arguments
),
d
=
i
.
container
,
aY
=
i
.
height
,
aZ
,
e
=
i
.
width
,
aX
=
i
.
x
,
aW
=
i
.
y
;
if
(
!
d
){
throw
new
Error
(
"VML container not found."
);}
var
R
=
new
aP
,
S
=
R
.
canvas
=
J
.
createElement
(
"div"
),
E
=
S
.
style
;
e
=
e
||
512
;
aY
=
aY
||
342
;
e
==+
e
&&
(
e
+=
"px"
);
aY
==+
aY
&&
(
aY
+=
"px"
);
R
.
width
=
1000
;
R
.
height
=
1000
;
R
.
coordsize
=
"1000 1000"
;
R
.
coordorigin
=
"0 0"
;
R
.
span
=
J
.
createElement
(
"span"
);
R
.
span
.
style
.
cssText
=
"position:absolute;left:-9999px;top:-9999px;padding:0;margin:0;line-height:1;display:inline;"
;
S
[
aH
](
R
.
span
);
E
.
cssText
=
al
.
format
(
"width:{0};height:{1};position:absolute;clip:rect(0 {0} {1} 0);overflow:hidden"
,
e
,
aY
);
if
(
d
==
1
){
J
.
body
[
aH
](
S
);
E
.
left
=
aX
+
"px"
;
E
.
top
=
aW
+
"px"
;}
else
{
d
.
style
.
width
=
e
;
d
.
style
.
height
=
aY
;
if
(
d
.
firstChild
){
d
.
insertBefore
(
S
,
d
.
firstChild
);}
else
{
d
[
aH
](
S
);}}
aC
.
call
(
R
,
R
,
al
.
fn
);
return
R
;};
aP
[
aU
].
clear
=
function
(){
this
.
canvas
.
innerHTML
=
ap
;
this
.
span
=
J
.
createElement
(
"span"
);
this
.
span
.
style
.
cssText
=
"position:absolute;left:-9999px;top:-9999px;padding:0;margin:0;line-height:1;display:inline;"
;
this
.
canvas
[
aH
](
this
.
span
);
this
.
bottom
=
this
.
top
=
null
;};
aP
[
aU
].
remove
=
function
(){
this
.
canvas
.
parentNode
.
removeChild
(
this
.
canvas
);
for
(
var
d
in
this
){
this
[
d
]
=
s
(
d
);}};}
if
((
/^Apple|^Google/
).
test
(
navigator
.
vendor
)
&&!
(
navigator
.
userAgent
.
indexOf
(
"Version/4.0"
)
+
1
)){
aP
[
aU
].
safari
=
function
(){
var
d
=
this
.
rect
(
-
99
,
-
99
,
this
.
width
+
99
,
this
.
height
+
99
);
setTimeout
(
function
(){
d
.
remove
();});};}
else
{
aP
[
aU
].
safari
=
function
(){};}
var
ac
=
(
function
(){
if
(
J
.
addEventListener
){
return
function
(
R
,
i
,
e
,
d
){
var
E
=
function
(
S
){
return
e
.
call
(
d
,
S
);};
R
.
addEventListener
(
i
,
E
,
false
);
return
function
(){
R
.
removeEventListener
(
i
,
E
,
false
);
return
true
;};};}
else
{
if
(
J
.
attachEvent
){
return
function
(
S
,
E
,
i
,
e
){
var
R
=
function
(
aW
){
return
i
.
call
(
e
,
aW
||
aq
.
event
);};
S
.
attachEvent
(
"on"
+
E
,
R
);
var
d
=
function
(){
S
.
detachEvent
(
"on"
+
E
,
R
);
return
true
;};
return
d
;};}}})();
for
(
var
aa
=
D
[
m
];
aa
--
;){(
function
(
d
){
au
[
aU
][
d
]
=
function
(
e
){
if
(
al
.
is
(
e
,
"function"
)){
this
.
events
=
this
.
events
||
[];
this
.
events
.
push
({
name
:
d
,
f
:
e
,
unbind
:
ac
(
this
.
shape
||
this
.
node
,
d
,
e
,
this
)});}
return
this
;};
au
[
aU
][
"un"
+
d
]
=
function
(
E
){
var
i
=
this
.
events
,
e
=
i
[
m
];
while
(
e
--
){
if
(
i
[
e
].
name
==
d
&&
i
[
e
].
f
==
E
){
i
[
e
].
unbind
();
i
.
splice
(
e
,
1
);
!
i
.
length
&&
delete
this
.
events
;
return
this
;}}
return
this
;};})(
D
[
aa
]);}
au
[
aU
].
hover
=
function
(
e
,
d
){
return
this
.
mouseover
(
e
).
mouseout
(
d
);};
au
[
aU
].
unhover
=
function
(
e
,
d
){
return
this
.
unmouseover
(
e
).
unmouseout
(
d
);};
aP
[
aU
].
circle
=
function
(
d
,
i
,
e
){
return
N
(
this
,
d
||
0
,
i
||
0
,
e
||
0
);};
aP
[
aU
].
rect
=
function
(
d
,
R
,
e
,
i
,
E
){
return
aB
(
this
,
d
||
0
,
R
||
0
,
e
||
0
,
i
||
0
,
E
||
0
);};
aP
[
aU
].
ellipse
=
function
(
d
,
E
,
i
,
e
){
return
ag
(
this
,
d
||
0
,
E
||
0
,
i
||
0
,
e
||
0
);};
aP
[
aU
].
path
=
function
(
d
){
d
&&!
al
.
is
(
d
,
"string"
)
&&!
al
.
is
(
d
[
0
],
"array"
)
&&
(
d
+=
ap
);
return
q
(
al
.
format
[
aS
](
al
,
arguments
),
this
);};
aP
[
aU
].
image
=
function
(
E
,
d
,
R
,
e
,
i
){
return
o
(
this
,
E
||
"about:blank"
,
d
||
0
,
R
||
0
,
e
||
0
,
i
||
0
);};
aP
[
aU
].
text
=
function
(
d
,
i
,
e
){
return
V
(
this
,
d
||
0
,
i
||
0
,
e
||
ap
);};
aP
[
aU
].
set
=
function
(
d
){
arguments
[
m
]
>
1
&&
(
d
=
Array
[
aU
].
splice
.
call
(
arguments
,
0
,
arguments
[
m
]));
return
new
P
(
d
);};
aP
[
aU
].
setSize
=
aR
;
aP
[
aU
].
top
=
aP
[
aU
].
bottom
=
null
;
aP
[
aU
].
raphael
=
al
;
function
u
(){
return
this
.
x
+
ak
+
this
.
y
;}
au
[
aU
].
scale
=
function
(
a2
,
a1
,
E
,
e
){
if
(
a2
==
null
&&
a1
==
null
){
return
{
x
:
this
.
_
.
sx
,
y
:
this
.
_
.
sy
,
toString
:
u
};}
a1
=
a1
||
a2
;
!+
a1
&&
(
a1
=
a2
);
var
a6
,
a4
,
a5
,
a3
,
bi
=
this
.
attrs
;
if
(
a2
!=
0
){
var
a0
=
this
.
getBBox
(),
aX
=
a0
.
x
+
a0
.
width
/
2
,
R
=
a0
.
y
+
a0
.
height
/
2
,
bh
=
a2
/
this
.
_
.
sx
,
bg
=
a1
/
this
.
_
.
sy
;
E
=
(
+
E
||
E
==
0
)?
E
:
aX
;
e
=
(
+
e
||
e
==
0
)?
e
:
R
;
var
aZ
=~~
(
a2
/
Z
.
abs
(
a2
)),
aW
=~~
(
a1
/
Z
.
abs
(
a1
)),
a8
=
this
.
node
.
style
,
bk
=
E
+
(
aX
-
E
)
*
bh
,
bj
=
e
+
(
R
-
e
)
*
bg
;
switch
(
this
.
type
){
case
"rect"
:
case
"image"
:
var
aY
=
bi
.
width
*
aZ
*
bh
,
bc
=
bi
.
height
*
aW
*
bg
;
this
.
attr
({
height
:
newh
,
r
:
bi
.
r
*
aE
(
aZ
*
bh
,
aW
*
bg
),
width
:
aY
,
x
:
bk
-
aY
/
2
,
y
:
bj
-
newh
/
2
});
break
;
case
"circle"
:
case
"ellipse"
:
this
.
attr
({
rx
:
bi
.
rx
*
aZ
*
bh
,
ry
:
bi
.
ry
*
aW
*
bg
,
r
:
bi
.
r
*
aE
(
aZ
*
bh
,
aW
*
bg
),
cx
:
bk
,
cy
:
bj
});
break
;
case
"path"
:
var
ba
=
ab
(
bi
.
path
),
bd
=
true
;
for
(
var
bf
=
0
,
a7
=
ba
[
m
];
bf
<
a7
;
bf
++
){
var
a9
=
ba
[
bf
],
be
,
S
=
aJ
.
call
(
a9
[
0
]);
if
(
S
==
"M"
&&
bd
){
continue
;}
else
{
bd
=
false
;}
if
(
S
==
"A"
){
a9
[
ba
[
bf
][
m
]
-
2
]
*=
bh
;
a9
[
ba
[
bf
][
m
]
-
1
]
*=
bg
;
a9
[
1
]
*=
aZ
*
bh
;
a9
[
2
]
*=
aW
*
bg
;
a9
[
5
]
=+
(
aZ
+
aW
?
!!+
a9
[
5
]:
!+
a9
[
5
]);}
else
{
if
(
S
==
"H"
){
for
(
be
=
1
,
jj
=
a9
[
m
];
be
<
jj
;
be
++
){
a9
[
be
]
*=
bh
;}}
else
{
if
(
S
==
"V"
){
for
(
be
=
1
,
jj
=
a9
[
m
];
be
<
jj
;
be
++
){
a9
[
be
]
*=
bg
;}}
else
{
for
(
be
=
1
,
jj
=
a9
[
m
];
be
<
jj
;
be
++
){
a9
[
be
]
*=
(
be
%
2
)?
bh
:
bg
;}}}}}
var
d
=
Q
(
ba
),
a6
=
bk
-
d
.
x
-
d
.
width
/
2
,
a4
=
bj
-
d
.
y
-
d
.
height
/
2
;
ba
[
0
][
1
]
+=
a6
;
ba
[
0
][
2
]
+=
a4
;
this
.
attr
({
path
:
ba
});
break
;}
if
(
this
.
type
in
{
text
:
1
,
image
:
1
}
&&
(
aZ
!=
1
||
aW
!=
1
)){
if
(
this
.
transformations
){
this
.
transformations
[
2
]
=
"scale("
[
aO
](
aZ
,
","
,
aW
,
")"
);
this
.
node
[
v
](
"transform"
,
this
.
transformations
[
av
](
ak
));
a6
=
(
aZ
==-
1
)?
-
bi
.
x
-
(
aY
||
0
):
bi
.
x
;
a4
=
(
aW
==-
1
)?
-
bi
.
y
-
(
newh
||
0
):
bi
.
y
;
this
.
attr
({
x
:
a6
,
y
:
a4
});
bi
.
fx
=
aZ
-
1
;
bi
.
fy
=
aW
-
1
;}
else
{
this
.
node
.
filterMatrix
=
" progid:DXImageTransform.Microsoft.Matrix(M11="
[
aO
](
aZ
,
", M12=0, M21=0, M22="
,
aW
,
", Dx=0, Dy=0, sizingmethod='auto expand', filtertype='bilinear')"
);
a8
.
filter
=
(
this
.
node
.
filterMatrix
||
ap
)
+
(
this
.
node
.
filterOpacity
||
ap
);}}
else
{
if
(
this
.
transformations
){
this
.
transformations
[
2
]
=
ap
;
this
.
node
[
v
](
"transform"
,
this
.
transformations
[
av
](
ak
));
bi
.
fx
=
0
;
bi
.
fy
=
0
;}
else
{
this
.
node
.
filterMatrix
=
ap
;
a8
.
filter
=
(
this
.
node
.
filterMatrix
||
ap
)
+
(
this
.
node
.
filterOpacity
||
ap
);}}
bi
.
scale
=
[
a2
,
a1
,
E
,
e
][
av
](
ak
);
this
.
_
.
sx
=
a2
;
this
.
_
.
sy
=
a1
;}
return
this
;};
au
[
aU
].
clone
=
function
(){
var
d
=
this
.
attr
();
delete
d
.
scale
;
delete
d
.
translation
;
return
this
.
paper
[
this
.
type
]().
attr
(
d
);};
var
ax
=
function
(
d
){
return
function
(
E
){
if
(
this
.
type
!=
"path"
){
return
-
1
;}
var
a0
=
G
(
this
.
attrs
.
path
),
aY
,
aX
,
e
,
R
,
aW
=
0
;
for
(
var
S
=
0
,
aZ
=
a0
.
length
;
S
<
aZ
;
S
++
){
e
=
a0
[
S
];
if
(
e
[
0
]
==
"M"
){
aY
=+
e
[
1
];
aX
=+
e
[
2
];}
else
{
R
=
n
(
aY
,
aX
,
e
[
1
],
e
[
2
],
e
[
3
],
e
[
4
],
e
[
5
],
e
[
6
]);
if
(
!
d
&&
aW
+
R
>
E
){
return
al
.
findDotsAtSegment
(
aY
,
aX
,
e
[
1
],
e
[
2
],
e
[
3
],
e
[
4
],
e
[
5
],
e
[
6
],(
E
-
aW
)
/
R
);}
aW
+=
R
;
aY
=+
e
[
5
];
aX
=+
e
[
6
];}}
return
d
?
aW
:
al
.
findDotsAtSegment
(
aY
,
aX
,
e
[
1
],
e
[
2
],
e
[
3
],
e
[
4
],
e
[
5
],
e
[
6
],
1
);};},
n
=
function
(
E
,
d
,
aW
,
S
,
a2
,
a1
,
a0
,
aZ
){
var
R
=
{
x
:
0
,
y
:
0
},
aY
=
0
;
for
(
var
aX
=
0
;
aX
<
1.01
;
aX
+=
0.01
){
var
e
=
K
(
E
,
d
,
aW
,
S
,
a2
,
a1
,
a0
,
aZ
,
aX
);
aX
&&
(
aY
+=
Z
.
sqrt
(
aI
(
R
.
x
-
e
.
x
,
2
)
+
aI
(
R
.
y
-
e
.
y
,
2
)));
R
=
e
;}
return
aY
;};
au
[
aU
].
getTotalLength
=
ax
(
1
);
au
[
aU
].
getPointAtLength
=
ax
();
al
.
easing_formulas
=
{
linear
:
function
(
d
){
return
d
;},
"<"
:
function
(
d
){
return
aI
(
d
,
3
);},
">"
:
function
(
d
){
return
aI
(
d
-
1
,
3
)
+
1
;},
"<>"
:
function
(
d
){
d
=
d
*
2
;
if
(
d
<
1
){
return
aI
(
d
,
3
)
/
2
;}
d
-=
2
;
return
(
aI
(
d
,
3
)
+
2
)
/
2
;},
backIn
:
function
(
e
){
var
d
=
1.70158
;
return
e
*
e
*
((
d
+
1
)
*
e
-
d
);},
backOut
:
function
(
e
){
e
=
e
-
1
;
var
d
=
1.70158
;
return
e
*
e
*
((
d
+
1
)
*
e
+
d
)
+
1
;},
elastic
:
function
(
i
){
if
(
i
==
0
||
i
==
1
){
return
i
;}
var
e
=
0.3
,
d
=
e
/
4
;
return
aI
(
2
,
-
10
*
i
)
*
Z
.
sin
((
i
-
d
)
*
(
2
*
Z
.
PI
)
/
e
)
+
1
;},
bounce
:
function
(
E
){
var
e
=
7.5625
,
i
=
2.75
,
d
;
if
(
E
<
(
1
/
i
)){
d
=
e
*
E
*
E
;}
else
{
if
(
E
<
(
2
/
i
)){
E
-=
(
1.5
/
i
);
d
=
e
*
E
*
E
+
0.75
;}
else
{
if
(
E
<
(
2.5
/
i
)){
E
-=
(
2.25
/
i
);
d
=
e
*
E
*
E
+
0.9375
;}
else
{
E
-=
(
2.625
/
i
);
d
=
e
*
E
*
E
+
0.984375
;}}}
return
d
;}};
var
H
=
{
length
:
0
},
aN
=
function
(){
var
aY
=+
new
Date
;
for
(
var
a9
in
H
){
if
(
a9
!=
"length"
&&
H
[
O
](
a9
)){
var
be
=
H
[
a9
];
if
(
be
.
stop
){
delete
H
[
a9
];
H
[
m
]
--
;
continue
;}
var
aW
=
aY
-
be
.
start
,
a7
=
be
.
ms
,
a6
=
be
.
easing
,
ba
=
be
.
from
,
a3
=
be
.
diff
,
E
=
be
.
to
,
a2
=
be
.
t
,
a5
=
be
.
prev
||
0
,
aX
=
be
.
el
,
R
=
be
.
callback
,
a4
=
{},
d
;
if
(
aW
<
a7
){
var
S
=
al
.
easing_formulas
[
a6
]?
al
.
easing_formulas
[
a6
](
aW
/
a7
):
aW
/
a7
;
for
(
var
a8
in
ba
){
if
(
ba
[
O
](
a8
)){
switch
(
X
[
a8
]){
case
"number"
:
d
=+
ba
[
a8
]
+
S
*
a7
*
a3
[
a8
];
break
;
case
"colour"
:
d
=
"rgb("
+
[
B
(
M
(
ba
[
a8
].
r
+
S
*
a7
*
a3
[
a8
].
r
)),
B
(
M
(
ba
[
a8
].
g
+
S
*
a7
*
a3
[
a8
].
g
)),
B
(
M
(
ba
[
a8
].
b
+
S
*
a7
*
a3
[
a8
].
b
))][
av
](
","
)
+
")"
;
break
;
case
"path"
:
d
=
[];
for
(
var
bc
=
0
,
a1
=
ba
[
a8
][
m
];
bc
<
a1
;
bc
++
){
d
[
bc
]
=
[
ba
[
a8
][
bc
][
0
]];
for
(
var
bb
=
1
,
bd
=
ba
[
a8
][
bc
][
m
];
bb
<
bd
;
bb
++
){
d
[
bc
][
bb
]
=+
ba
[
a8
][
bc
][
bb
]
+
S
*
a7
*
a3
[
a8
][
bc
][
bb
];}
d
[
bc
]
=
d
[
bc
][
av
](
ak
);}
d
=
d
[
av
](
ak
);
break
;
case
"csv"
:
switch
(
a8
){
case
"translation"
:
var
a0
=
a3
[
a8
][
0
]
*
(
aW
-
a5
),
aZ
=
a3
[
a8
][
1
]
*
(
aW
-
a5
);
a2
.
x
+=
a0
;
a2
.
y
+=
aZ
;
d
=
a0
+
ak
+
aZ
;
break
;
case
"rotation"
:
d
=+
ba
[
a8
][
0
]
+
S
*
a7
*
a3
[
a8
][
0
];
ba
[
a8
][
1
]
&&
(
d
+=
","
+
ba
[
a8
][
1
]
+
","
+
ba
[
a8
][
2
]);
break
;
case
"scale"
:
d
=
[
+
ba
[
a8
][
0
]
+
S
*
a7
*
a3
[
a8
][
0
],
+
ba
[
a8
][
1
]
+
S
*
a7
*
a3
[
a8
][
1
],(
2
in
E
[
a8
]?
E
[
a8
][
2
]:
ap
),(
3
in
E
[
a8
]?
E
[
a8
][
3
]:
ap
)][
av
](
ak
);
break
;
case
"clip-rect"
:
d
=
[];
var
bc
=
4
;
while
(
bc
--
){
d
[
bc
]
=+
ba
[
a8
][
bc
]
+
S
*
a7
*
a3
[
a8
][
bc
];}
break
;}
break
;}
a4
[
a8
]
=
d
;}}
aX
.
attr
(
a4
);
aX
.
_run
&&
aX
.
_run
.
call
(
aX
);}
else
{(
a2
.
x
||
a2
.
y
)
&&
aX
.
translate
(
-
a2
.
x
,
-
a2
.
y
);
E
.
scale
&&
(
E
.
scale
=
E
.
scale
+
ap
);
aX
.
attr
(
E
);
delete
H
[
a9
];
H
[
m
]
--
;
aX
.
in_animation
=
null
;
al
.
is
(
R
,
"function"
)
&&
R
.
call
(
aX
);}
be
.
prev
=
aW
;}}
al
.
svg
&&
aX
.
paper
.
safari
();
H
[
m
]
&&
setTimeout
(
aN
);},
B
=
function
(
d
){
return
d
>
255
?
255
:(
d
<
0
?
0
:
d
);},
t
=
function
(
d
,
i
){
if
(
d
==
null
){
return
{
x
:
this
.
_
.
tx
,
y
:
this
.
_
.
ty
,
toString
:
u
};}
this
.
_
.
tx
+=+
d
;
this
.
_
.
ty
+=+
i
;
switch
(
this
.
type
){
case
"circle"
:
case
"ellipse"
:
this
.
attr
({
cx
:
+
d
+
this
.
attrs
.
cx
,
cy
:
+
i
+
this
.
attrs
.
cy
});
break
;
case
"rect"
:
case
"image"
:
case
"text"
:
this
.
attr
({
x
:
+
d
+
this
.
attrs
.
x
,
y
:
+
i
+
this
.
attrs
.
y
});
break
;
case
"path"
:
var
e
=
ab
(
this
.
attrs
.
path
);
e
[
0
][
1
]
+=+
d
;
e
[
0
][
2
]
+=+
i
;
this
.
attr
({
path
:
e
});
break
;}
return
this
;};
au
[
aU
].
animateWith
=
function
(
e
,
i
,
d
,
R
,
E
){
H
[
e
.
id
]
&&
(
i
.
start
=
H
[
e
.
id
].
start
);
return
this
.
animate
(
i
,
d
,
R
,
E
);};
au
[
aU
].
onAnimation
=
function
(
d
){
this
.
_run
=
d
||
null
;
return
this
;};
au
[
aU
].
animate
=
function
(
R
,
d
,
a1
,
a7
){
if
(
al
.
is
(
a1
,
"function"
)
||!
a1
){
a7
=
a1
||
null
;}
var
a2
=
{},
a3
=
{},
a4
=
{};
for
(
var
a0
in
R
){
if
(
R
[
O
](
a0
)){
if
(
X
[
O
](
a0
)){
a2
[
a0
]
=
this
.
attr
(
a0
);(
a2
[
a0
]
==
null
)
&&
(
a2
[
a0
]
=
j
[
a0
]);
a3
[
a0
]
=
R
[
a0
];
switch
(
X
[
a0
]){
case
"number"
:
a4
[
a0
]
=
(
a3
[
a0
]
-
a2
[
a0
])
/
d
;
break
;
case
"colour"
:
a2
[
a0
]
=
al
.
getRGB
(
a2
[
a0
]);
var
aY
=
al
.
getRGB
(
a3
[
a0
]);
a4
[
a0
]
=
{
r
:(
aY
.
r
-
a2
[
a0
].
r
)
/
d
,
g
:(
aY
.
g
-
a2
[
a0
].
g
)
/
d
,
b
:(
aY
.
b
-
a2
[
a0
].
b
)
/
d
};
break
;
case
"path"
:
var
e
=
G
(
a2
[
a0
],
a3
[
a0
]);
a2
[
a0
]
=
e
[
0
];
var
E
=
e
[
1
];
a4
[
a0
]
=
[];
for
(
var
aX
=
0
,
a6
=
a2
[
a0
][
m
];
aX
<
a6
;
aX
++
){
a4
[
a0
][
aX
]
=
[
0
];
for
(
var
S
=
1
,
aZ
=
a2
[
a0
][
aX
][
m
];
S
<
aZ
;
S
++
){
a4
[
a0
][
aX
][
S
]
=
(
E
[
aX
][
S
]
-
a2
[
a0
][
aX
][
S
])
/
d
;}}
break
;
case
"csv"
:
var
a5
=
(
R
[
a0
]
+
ap
)[
z
](
a
),
aW
=
(
a2
[
a0
]
+
ap
)[
z
](
a
);
switch
(
a0
){
case
"translation"
:
a2
[
a0
]
=
[
0
,
0
];
a4
[
a0
]
=
[
a5
[
0
]
/
d
,
a5
[
1
]
/
d
];
break
;
case
"rotation"
:
a2
[
a0
]
=
(
aW
[
1
]
==
a5
[
1
]
&&
aW
[
2
]
==
a5
[
2
])?
aW
:[
0
,
a5
[
1
],
a5
[
2
]];
a4
[
a0
]
=
[(
a5
[
0
]
-
a2
[
a0
][
0
])
/
d
,
0
,
0
];
break
;
case
"scale"
:
R
[
a0
]
=
a5
;
a2
[
a0
]
=
(
a2
[
a0
]
+
ap
)[
z
](
a
);
a4
[
a0
]
=
[(
a5
[
0
]
-
a2
[
a0
][
0
])
/
d
,(
a5
[
1
]
-
a2
[
a0
][
1
])
/
d
,
0
,
0
];
break
;
case
"clip-rect"
:
a2
[
a0
]
=
(
a2
[
a0
]
+
ap
)[
z
](
a
);
a4
[
a0
]
=
[];
var
aX
=
4
;
while
(
aX
--
){
a4
[
a0
][
aX
]
=
(
a5
[
aX
]
-
a2
[
a0
][
aX
])
/
d
;}
break
;}
a3
[
a0
]
=
a5
;}}}}
this
.
stop
();
this
.
in_animation
=
1
;
H
[
this
.
id
]
=
{
start
:
R
.
start
||+
new
Date
,
ms
:
d
,
easing
:
a1
,
from
:
a2
,
diff
:
a4
,
to
:
a3
,
el
:
this
,
callback
:
a7
,
t
:{
x
:
0
,
y
:
0
}};
++
H
[
m
]
==
1
&&
aN
();
return
this
;};
au
[
aU
].
stop
=
function
(){
H
[
this
.
id
]
&&
H
[
m
]
--
;
delete
H
[
this
.
id
];
return
this
;};
au
[
aU
].
translate
=
function
(
d
,
e
){
return
this
.
attr
({
translation
:
d
+
" "
+
e
});};
au
[
aU
][
aw
]
=
function
(){
return
"Rapha\xebl\u2019s object"
;};
al
.
ae
=
H
;
var
P
=
function
(
d
){
this
.
items
=
[];
this
[
m
]
=
0
;
if
(
d
){
for
(
var
e
=
0
,
E
=
d
[
m
];
e
<
E
;
e
++
){
if
(
d
[
e
]
&&
(
d
[
e
].
constructor
==
au
||
d
[
e
].
constructor
==
P
)){
this
[
this
.
items
[
m
]]
=
this
.
items
[
this
.
items
[
m
]]
=
d
[
e
];
this
[
m
]
++
;}}}};
P
[
aU
][
f
]
=
function
(){
var
R
,
d
;
for
(
var
e
=
0
,
E
=
arguments
[
m
];
e
<
E
;
e
++
){
R
=
arguments
[
e
];
if
(
R
&&
(
R
.
constructor
==
au
||
R
.
constructor
==
P
)){
d
=
this
.
items
[
m
];
this
[
d
]
=
this
.
items
[
d
]
=
R
;
this
[
m
]
++
;}}
return
this
;};
P
[
aU
].
pop
=
function
(){
delete
this
[
this
[
m
]
--
];
return
this
.
items
.
pop
();};
for
(
var
y
in
au
[
aU
]){
if
(
au
[
aU
][
O
](
y
)){
P
[
aU
][
y
]
=
(
function
(
d
){
return
function
(){
for
(
var
e
=
0
,
E
=
this
.
items
[
m
];
e
<
E
;
e
++
){
this
.
items
[
e
][
d
][
aS
](
this
.
items
[
e
],
arguments
);}
return
this
;};})(
y
);}}
P
[
aU
].
attr
=
function
(
e
,
aW
){
if
(
e
&&
al
.
is
(
e
,
"array"
)
&&
al
.
is
(
e
[
0
],
"object"
)){
for
(
var
d
=
0
,
S
=
e
[
m
];
d
<
S
;
d
++
){
this
.
items
[
d
].
attr
(
e
[
d
]);}}
else
{
for
(
var
E
=
0
,
R
=
this
.
items
[
m
];
E
<
R
;
E
++
){
this
.
items
[
E
].
attr
[
aS
](
this
.
items
[
E
],
arguments
);}}
return
this
;};
P
[
aU
].
animate
=
function
(
S
,
e
,
aY
,
aX
){(
al
.
is
(
aY
,
"function"
)
||!
aY
)
&&
(
aX
=
aY
||
null
);
var
d
=
this
.
items
[
m
],
E
=
d
,
aW
=
this
,
R
;
aX
&&
(
R
=
function
(){
!--
d
&&
aX
.
call
(
aW
);});
this
.
items
[
--
E
].
animate
(
S
,
e
,
aY
||
R
,
R
);
while
(
E
--
){
this
.
items
[
E
].
animateWith
(
this
.
items
[
d
-
1
],
S
,
e
,
aY
||
R
,
R
);}
return
this
;};
P
[
aU
].
insertAfter
=
function
(
e
){
var
d
=
this
.
items
[
m
];
while
(
d
--
){
this
.
items
[
d
].
insertAfter
(
e
);}
return
this
;};
P
[
aU
].
getBBox
=
function
(){
var
d
=
[],
aW
=
[],
e
=
[],
R
=
[];
for
(
var
E
=
this
.
items
[
m
];
E
--
;){
var
S
=
this
.
items
[
E
].
getBBox
();
d
[
f
](
S
.
x
);
aW
[
f
](
S
.
y
);
e
[
f
](
S
.
x
+
S
.
width
);
R
[
f
](
S
.
y
+
S
.
height
);}
d
=
aE
[
aS
](
0
,
d
);
aW
=
aE
[
aS
](
0
,
aW
);
return
{
x
:
d
,
y
:
aW
,
width
:
g
[
aS
](
0
,
e
)
-
d
,
height
:
g
[
aS
](
0
,
R
)
-
aW
};};
al
.
registerFont
=
function
(
e
){
if
(
!
e
.
face
){
return
e
;}
this
.
fonts
=
this
.
fonts
||
{};
var
E
=
{
w
:
e
.
w
,
face
:{},
glyphs
:{}},
i
=
e
.
face
[
"font-family"
];
for
(
var
aW
in
e
.
face
){
if
(
e
.
face
[
O
](
aW
)){
E
.
face
[
aW
]
=
e
.
face
[
aW
];}}
if
(
this
.
fonts
[
i
]){
this
.
fonts
[
i
][
f
](
E
);}
else
{
this
.
fonts
[
i
]
=
[
E
];}
if
(
!
e
.
svg
){
E
.
face
[
"units-per-em"
]
=
F
(
e
.
face
[
"units-per-em"
],
10
);
for
(
var
R
in
e
.
glyphs
){
if
(
e
.
glyphs
[
O
](
R
)){
var
S
=
e
.
glyphs
[
R
];
E
.
glyphs
[
R
]
=
{
w
:
S
.
w
,
k
:{},
d
:
S
.
d
&&
"M"
+
S
.
d
[
aL
](
/
[
mlcxtrv
]
/g
,
function
(
aX
){
return
{
l
:
"L"
,
c
:
"C"
,
x
:
"z"
,
t
:
"m"
,
r
:
"l"
,
v
:
"c"
}[
aX
]
||
"M"
;})
+
"z"
};
if
(
S
.
k
){
for
(
var
d
in
S
.
k
){
if
(
S
[
O
](
d
)){
E
.
glyphs
[
R
].
k
[
d
]
=
S
.
k
[
d
];}}}}}}
return
e
;};
aP
[
aU
].
getFont
=
function
(
aY
,
aZ
,
e
,
R
){
R
=
R
||
"normal"
;
e
=
e
||
"normal"
;
aZ
=+
aZ
||
{
normal
:
400
,
bold
:
700
,
lighter
:
300
,
bolder
:
800
}[
aZ
]
||
400
;
var
S
=
al
.
fonts
[
aY
];
if
(
!
S
){
var
E
=
new
RegExp
(
"(^|\\s)"
+
aY
[
aL
](
/
[^\w\d\s
+!~.:_-
]
/g
,
ap
)
+
"(\\s|$)"
,
"i"
);
for
(
var
d
in
al
.
fonts
){
if
(
al
.
fonts
[
O
](
d
)){
if
(
E
.
test
(
d
)){
S
=
al
.
fonts
[
d
];
break
;}}}}
var
aW
;
if
(
S
){
for
(
var
aX
=
0
,
a0
=
S
[
m
];
aX
<
a0
;
aX
++
){
aW
=
S
[
aX
];
if
(
aW
.
face
[
"font-weight"
]
==
aZ
&&
(
aW
.
face
[
"font-style"
]
==
e
||!
aW
.
face
[
"font-style"
])
&&
aW
.
face
[
"font-stretch"
]
==
R
){
break
;}}}
return
aW
;};
aP
[
aU
].
print
=
function
(
R
,
E
,
d
,
aX
,
aY
,
a7
){
a7
=
a7
||
"middle"
;
var
a3
=
this
.
set
(),
a6
=
(
d
+
ap
)[
z
](
ap
),
a4
=
0
,
a0
=
ap
,
a8
;
al
.
is
(
aX
,
"string"
)
&&
(
aX
=
this
.
getFont
(
aX
));
if
(
aX
){
a8
=
(
aY
||
16
)
/
aX
.
face
[
"units-per-em"
];
var
e
=
aX
.
face
.
bbox
.
split
(
a
),
aW
=+
e
[
0
],
aZ
=+
e
[
1
]
+
(
a7
==
"baseline"
?
e
[
3
]
-
e
[
1
]
+
(
+
aX
.
face
.
descent
):(
e
[
3
]
-
e
[
1
])
/
2
);
for
(
var
a2
=
0
,
S
=
a6
[
m
];
a2
<
S
;
a2
++
){
var
a1
=
a2
&&
aX
.
glyphs
[
a6
[
a2
-
1
]]
||
{},
a5
=
aX
.
glyphs
[
a6
[
a2
]];
a4
+=
a2
?(
a1
.
w
||
aX
.
w
)
+
(
a1
.
k
&&
a1
.
k
[
a6
[
a2
]]
||
0
):
0
;
a5
&&
a5
.
d
&&
a3
[
f
](
this
.
path
(
a5
.
d
).
attr
({
fill
:
"#000"
,
stroke
:
"none"
,
translation
:[
a4
,
0
]}));}
a3
.
scale
(
a8
,
a8
,
aW
,
aZ
).
translate
(
R
-
aW
,
E
-
aZ
);}
return
a3
;};
al
.
format
=
function
(
i
){
var
e
=
al
.
is
(
arguments
[
1
],
"array"
)?[
0
][
aO
](
arguments
[
1
]):
arguments
,
d
=
/
\{(\d
+
)\}
/g
;
i
&&
al
.
is
(
i
,
"string"
)
&&
e
[
m
]
-
1
&&
(
i
=
i
[
aL
](
d
,
function
(
R
,
E
){
return
e
[
++
E
]
==
null
?
ap
:
e
[
E
];}));
return
i
||
ap
;};
al
.
ninja
=
function
(){
var
i
=
aq
.
Raphael
,
d
;
if
(
l
.
was
){
aq
.
Raphael
=
l
.
is
;}
else
{
try
{
delete
aq
.
Raphael
;}
catch
(
E
){
aq
.
Raphael
=
d
;}}
return
i
;};
al
.
el
=
au
[
aU
];
return
al
;})();
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
}(
'6Z.32=(14(){11 a=/[, ]+/,6X=/^(2p|1M|1s|2u|1D|2i)$/,K=4k,ar=6Z,l={6J:"32"1y ar,1u:ar.32},am=14(){12(am.1u(1f[0],"2g")){11 d=1f[0],e=x[1R](am,d.2Y(0,3+am.1u(d[0],ak))),S=e.4U();1i(11 R=0,15=d[m];R<15;R++){11 E=d[R]||{};6X.58(E.1p)&&S[f](e[E.1p]().1V(E))}13 S}13 x[1R](am,1f)},1I=14(){},1q="9r",1R="9q",21="9o",aq="",al=" ",A="5Y",F="9i 9h 9g 9f 5M 5L 9c"[A](al),P="9a",aw="5G",m="3v",1c="94",2M=5U[1c].91,aa=8Y,g=aa.4j,aF=aa.4x,ak="5c",ax="5a",au=8P[1c][ax],8O={},1K=aa.8M,f="63",3q=/^(?=[\\8J-f]$)/,c=/^3a\\([\'"]?([^\\)]+)[\'"]?\\)$/i,y=/^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|4X\\(\\s*([\\d\\.]+\\s*,\\s*[\\d\\.]+\\s*,\\s*[\\d\\.]+)\\s*\\)|4X\\(\\s*([\\d\\.]+%\\s*,\\s*[\\d\\.]+%\\s*,\\s*[\\d\\.]+%)\\s*\\)|4W[2k]\\(\\s*([\\d\\.]+\\s*,\\s*[\\d\\.]+\\s*,\\s*[\\d\\.]+)\\s*\\)|4W[2k]\\(\\s*([\\d\\.]+%\\s*,\\s*[\\d\\.]+%\\s*,\\s*[\\d\\.]+%)\\s*\\))\\s*$/i,N=aa.4V,w="8y",V=8w,G=8u,3V=5U[1c].8s,j={"1P-1M":"0 0 65 65",3B:"2O",1Q:0,1Y:0,1m:"#6n","1m-1z":1,1v:\'8f "6G"\',"1v-3L":\'"6G"\',"1v-2W":"10","1v-1k":"4v","1v-30":5o,1S:0,1d:0,3e:"3Y://82.5h/",1z:1,1s:"80,0",r:0,2f:0,2z:0,2t:0,1J:"1 1",2K:"",1g:"#2n","1g-2S":"","1g-34":"4r","1g-46":"4r","1g-4b":0,"1g-1z":1,"1g-18":1,4i:"7K","1D-4l":"4o",3D:"32",2C:"0 0",18:0,x:0,y:0},Y={3d:"3d","1P-1M":"3C",1Q:ak,1Y:ak,1m:"4L","1m-1z":ak,"1v-2W":ak,1d:ak,1z:ak,1s:"1s",r:ak,2f:"3C",2z:ak,2t:ak,1J:"3C",1g:"4L","1g-1z":ak,"1g-18":ak,2C:"3C",18:ak,x:ak,y:ak},1L="7A";am.4B="1.3.7y";am.1p=(ar.7x||K.7w.7v("3Y://4m.4I.4J/7s/7r/7q#7p","1.1")?"4C":"3w");12(am.1p=="3w"){11 5r=4k.2X("4S");5r.5b="<!--[12 3E]><3F><3F><![7g]-->";12(5r.7f[m]!=2){13 1h}}am.3j=!(am.3E=am.1p=="3w");1I[1c]=am[1c];am.4n=0;am.5v=0;am.5w={};am.1u=14(e,d){d=2M.1F(d);13((d=="2R"||d=="4f")&&6U e==d)||(e==1h&&d=="1h")||2M.1F(au.1F(e).40(8,-1))==d};am.71=14(d){ar=d;K=ar.4k};11 3Z=14(e){12(am.3E){11 d=/^\\s+|\\s+$/g;3Z=ai(14(R){11 S;R=(R+aq)[1L](d,aq);41{11 a=1U 72("73");a.74("<35>");a.76();S=a.35}4h(19){S=77().4k.35}11 i=S.78();41{S.1k.28=R;11 b=i.79("7a");b=((b&2s)<<16)|(b&7b)|((b&7c)>>>16);13"#"+("7d"+b[ax](16)).40(-6)}4h(19){13"1C"}})}1n{11 E=K.2X("i");E.3D="3K\\3J 7e 7h";E.1k.3g="1C";K.35[1q](E);3Z=ai(14(i){E.1k.28=i;13 K.6y.6x(E,aq).6w("28")})}13 3Z(e)};am.4p=ai(14(a,b,c){12(am.1u(a,"2R")&&"h"1y a&&"s"1y a&&"b"1y a){c=a.b;b=a.s;a=a.h}11 R,S,a5;12(c==0){13{r:0,g:0,b:0,2F:"#2n"}}12(a>1||b>1||c>1){a/=2s;b/=2s;c/=2s}11 f=~~(a*6),a1=(a*6)-f,E=c*(1-b),e=c*(1-(b*a1)),a6=c*(1-(b*(1-a1)));R=[c,e,E,E,a6,c,c][f];S=[a6,c,c,e,E,E,a6][f];a5=[E,E,a6,c,c,e,E][f];R*=2s;S*=2s;a5*=2s;11 g={r:R,g:S,b:a5},d=(~~R)[ax](16),19=(~~S)[ax](16),a3=(~~a5)[ax](16);d=d[1L](3q,"0");19=19[1L](3q,"0");a3=a3[1L](3q,"0");g.2F="#"+d+19+a3;13 g},am);am.7i=ai(14(d,e,a){12(am.1u(d,"2R")&&"r"1y d&&"g"1y d&&"b"1y d){a=d.b;e=d.g;d=d.r}12(am.1u(d,"2l")){11 b=am.2P(d);d=b.r;e=b.g;a=b.b}12(d>1||e>1||a>1){d/=2s;e/=2s;a/=2s}11 c=g(d,e,a),i=aF(d,e,a),R,E,S=c;12(i==c){13{h:0,s:0,b:c}}1n{11 f=(c-i);E=f/c;12(d==c){R=(e-a)/f}1n{12(e==c){R=2+((a-d)/f)}1n{R=4+((d-e)/f)}}R/=6;R<0&&R++;R>1&&R--}13{h:R,s:E,b:S}},am);11 6k=/,?([7j]),?/6i;am.3S=14(){13 9.5G(",")[1L](6k,"$1")};14 ai(E,e,d){14 i(){11 R=6f[1c].40.1F(1f,0),15=R[aw]("\\7k"),S=i.6d=i.6d||{},1b=i.6b=i.6b||[];12(S[P](15)){13 d?d(S[15]):S[15]}1b[m]>=3P&&22 S[1b.4P()];1b[f](15);S[15]=E[1R](e,R);13 d?d(S[15]):S[15]}13 i}am.2P=ai(14(d){12(!d||!!((d=d+aq).67("-")+1)){13{r:-1,g:-1,b:-1,2F:"1C",3Q:1}}12(d=="1C"){13{r:-1,g:-1,b:-1,2F:"1C"}}!(({4W:1,7l:1})[P](d.3W(0,2))||d.31()=="#")&&(d=3Z(d));11 S,i,E,19,a0,15=d.3z(y);12(15){12(15[2]){19=G(15[2].3W(5),16);E=G(15[2].3W(3,5),16);i=G(15[2].3W(1,3),16)}12(15[3]){19=G((a0=15[3].31(3))+a0,16);E=G((a0=15[3].31(2))+a0,16);i=G((a0=15[3].31(1))+a0,16)}12(15[4]){15=15[4][A](/\\s*,\\s*/);i=V(15[0]);E=V(15[1]);19=V(15[2])}12(15[5]){15=15[5][A](/\\s*,\\s*/);i=V(15[0])*2.55;E=V(15[1])*2.55;19=V(15[2])*2.55}12(15[6]){15=15[6][A](/\\s*,\\s*/);i=V(15[0]);E=V(15[1]);19=V(15[2]);13 am.4p(i,E,19)}12(15[7]){15=15[7][A](/\\s*,\\s*/);i=V(15[0])*2.55;E=V(15[1])*2.55;19=V(15[2])*2.55;13 am.4p(i,E,19)}15={r:i,g:E,b:19};11 e=(~~i)[ax](16),R=(~~E)[ax](16),1b=(~~19)[ax](16);e=e[1L](3q,"0");R=R[1L](3q,"0");1b=1b[1L](3q,"0");15.2F="#"+e+R+1b;13 15}13{r:-1,g:-1,b:-1,2F:"1C",3Q:1}},am);am.4a=14(e){11 i=9.4a.2a=9.4a.2a||{h:0,s:1,b:e||0.75},d=9.4p(i.h,i.s,i.b);i.h+=0.7m;12(i.h>1){i.h=0;i.s-=0.2;i.s<=0&&(9.4a.2a={h:0,s:1,b:i.b})}13 d.2F};am.4a.7n=14(){22 9.2a};am.4z=ai(14(d){12(!d){13 1h}11 i={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},e=[];12(am.1u(d,"2g")&&am.1u(d[0],"2g")){e=at(d)}12(!e[m]){(d+aq)[1L](/([7o])[\\s,]*((-?\\d*\\.?\\d*(?:e[-+]?\\d+)?\\s*,?\\s*)+)/5C,14(R,E,c){11 d=[],S=2M.1F(E);c[1L](/(-?\\d*\\.?\\d*(?:e[-+]?\\d+)?)\\s*,?\\s*/5C,14(a,b){b&&d[f](+b)});2N(d[m]>=i[S]){e[f]([E][21](d.2Y(0,i[S])));12(!i[S]){1a}}})}e[ax]=am.3S;13 e});am.4F=14(e,d,a,b,c,R,f,g,h){11 j=1-h,a2=1K(j,3)*e+1K(j,2)*3*h*a+j*3*h*h*c+1K(h,3)*f,a0=1K(j,3)*d+1K(j,2)*3*h*b+j*3*h*h*R+1K(h,3)*g,a7=e+2*h*(a-e)+h*h*(c-2*a+e),a6=d+2*h*(b-d)+h*h*(R-2*b+d),1A=a+2*h*(c-a)+h*h*(f-2*c+a),a8=b+2*h*(R-b)+h*h*(g-2*R+b),a4=(1-h)*e+h*a,a1=(1-h)*d+h*b,E=(1-h)*c+h*f,i=(1-h)*R+h*g,S=(90-aa.7t((a7-1A)/(a6-a8))*37/aa.3T);(a7>1A||a6<a8)&&(S+=37);13{x:a2,y:a0,m:{x:a7,y:a6},n:{x:1A,y:a8},2a:{x:a4,y:a1},3U:{x:E,y:i},5A:S}};11 T=ai(14(a){12(!a){13{x:0,y:0,18:0,1d:0}}a=H(a);11 b=0,1b=0,R=[],e=[],E;1i(11 S=0,a1=a[m];S<a1;S++){E=a[S];12(E[0]=="M"){b=E[1];1b=E[2];R[f](b);e[f](1b)}1n{11 c=az(b,1b,E[1],E[2],E[3],E[4],E[5],E[6]);R=R[21](c.4x.x,c.4j.x);e=e[21](c.4x.y,c.4j.y);b=E[5];1b=E[6]}}11 d=aF[1R](0,R),a0=aF[1R](0,e);13{x:d,y:a0,18:g[1R](0,R)-d,1d:g[1R](0,e)-a0}}),at=14(a){11 E=[];12(!am.1u(a,"2g")||!am.1u(a&&a[0],"2g")){a=am.4z(a)}1i(11 e=0,R=a[m];e<R;e++){E[e]=[];1i(11 d=0,S=a[e][m];d<S;d++){E[e][d]=a[e][d]}}E[ax]=am.3S;13 E},ac=ai(14(R){12(!am.1u(R,"2g")||!am.1u(R&&R[0],"2g")){R=am.4z(R)}11 a=[],a3=0,a2=0,a6=0,a5=0,E=0;12(R[0][0]=="M"){a3=R[0][1];a2=R[0][2];a6=a3;a5=a2;E++;a[f](["M",a3,a2])}1i(11 b=E,a7=R[m];b<a7;b++){11 d=a[b]=[],a4=R[b];12(a4[0]!=2M.1F(a4[0])){d[0]=2M.1F(a4[0]);2b(d[0]){17"a":d[1]=a4[1];d[2]=a4[2];d[3]=a4[3];d[4]=a4[4];d[5]=a4[5];d[6]=+(a4[6]-a3).2T(3);d[7]=+(a4[7]-a2).2T(3);1a;17"v":d[1]=+(a4[1]-a2).2T(3);1a;17"m":a6=a4[1];a5=a4[2];2O:1i(11 c=1,19=a4[m];c<19;c++){d[c]=+(a4[c]-((c%2)?a3:a2)).2T(3)}}}1n{d=a[b]=[];12(a4[0]=="m"){a6=a4[1]+a3;a5=a4[2]+a2}1i(11 S=0,e=a4[m];S<e;S++){a[b][S]=a4[S]}}11 g=a[b][m];2b(a[b][0]){17"z":a3=a6;a2=a5;1a;17"h":a3+=+a[b][g-1];1a;17"v":a2+=+a[b][g-1];1a;2O:a3+=+a[b][g-2];a2+=+a[b][g-1]}}a[ax]=am.3S;13 a},0,at),s=ai(14(R){12(!am.1u(R,"2g")||!am.1u(R&&R[0],"2g")){R=am.4z(R)}11 a=[],a2=0,a1=0,a5=0,a4=0,E=0;12(R[0][0]=="M"){a2=+R[0][1];a1=+R[0][2];a5=a2;a4=a1;E++;a[0]=["M",a2,a1]}1i(11 b=E,a6=R[m];b<a6;b++){11 d=a[b]=[],a3=R[b];12(a3[0]!=3V.1F(a3[0])){d[0]=3V.1F(a3[0]);2b(d[0]){17"A":d[1]=a3[1];d[2]=a3[2];d[3]=a3[3];d[4]=a3[4];d[5]=a3[5];d[6]=+(a3[6]+a2);d[7]=+(a3[7]+a1);1a;17"V":d[1]=+a3[1]+a1;1a;17"H":d[1]=+a3[1]+a2;1a;17"M":a5=+a3[1]+a2;a4=+a3[2]+a1;2O:1i(11 c=1,19=a3[m];c<19;c++){d[c]=+a3[c]+((c%2)?a2:a1)}}}1n{1i(11 S=0,e=a3[m];S<e;S++){a[b][S]=a3[S]}}2b(d[0]){17"Z":a2=a5;a1=a4;1a;17"H":a2=d[1];1a;17"V":a1=d[1];1a;2O:a2=a[b][a[b][m]-2];a1=a[b][a[b][m]-1]}}a[ax]=am.3S;13 a},1h,at),49=14(e,E,d,i){13[e,E,d,i,d,i]},5s=14(e,E,a,R,d,i){11 S=1/3,1b=2/3;13[S*e+1b*a,S*E+1b*R,S*d+1b*a,S*i+1b*R,d,i]},J=14(f,h,j,k,l,n,S,o,p,q){11 R=aa.3T,1W=R*7u/37,d=R/37*(+l||0),1H=[],3i,4c=ai(14(a,b,i){11 c=a*aa.3t(i)-b*aa.3f(i),5Z=a*aa.3f(i)+b*aa.3t(i);13{x:c,y:5Z}});12(!q){3i=4c(f,h,-d);f=3i.x;h=3i.y;3i=4c(o,p,-d);o=3i.x;p=3i.y;11 e=aa.3t(R/37*l),a3=aa.3f(R/37*l),2k=(f-o)/2,2E=(h-p)/2;j=g(j,aa.2A(2k));k=g(k,aa.2A(2E));11 E=j*j,4Q=k*k,5e=(n==S?-1:1)*aa.3b(aa.2A((E*4Q-E*2E*2E-4Q*2k*2k)/(E*2E*2E+4Q*2k*2k))),1A=5e*j*2E/k+(f+o)/2,a9=5e*-k*2k/j+(h+p)/2,a0=aa.62(((h-a9)/k).2T(7)),19=aa.62(((p-a9)/k).2T(7));a0=f<1A?R-a0:a0;19=o<1A?R-19:19;a0<0&&(a0=R*2+a0);19<0&&(19=R*2+19);12(S&&a0>19){a0=a0-R*2}12(!S&&19>a0){19=19-R*2}}1n{a0=q[0];19=q[1];1A=q[2];a9=q[3]}11 r=19-a0;12(aa.2A(r)>1W){11 s=19,3k=o,a2=p;19=a0+1W*(S&&19>a0?1:-1);o=1A+j*aa.3t(19);p=a9+k*aa.3f(19);1H=J(o,p,j,k,l,0,S,3k,a2,[19,s,1A,a9])}r=19-a0;11 t=aa.3t(a0),39=aa.3f(a0),15=aa.3t(19),33=aa.3f(19),57=aa.7z(r/4),54=4/3*j*57,53=4/3*k*57,52=[f,h],3p=[f+54*39,h-53*t],50=[o+54*33,p-53*15],3F=[o,p];3p[0]=2*52[0]-3p[0];3p[1]=2*52[1]-3p[1];12(q){13[3p,50,3F][21](1H)}1n{1H=[3p,50,3F][21](1H)[aw]()[A](",");11 u=[];1i(11 v=0,2D=1H[m];v<2D;v++){u[v]=v%2?4c(1H[v-1],1H[v],d).y:4c(1H[v],1H[v+1],d).x}13 u}},L=14(e,d,E,i,a,b,c,S,f){11 R=1-f;13{x:1K(R,3)*e+1K(R,2)*3*f*E+R*3*f*f*a+1K(f,3)*c,y:1K(R,3)*d+1K(R,2)*3*f*i+R*3*f*f*b+1K(f,3)*S}},az=ai(14(i,d,R,E,a,b,c,h){11 j=(a-2*R+i)-(c-2*a+R),a1=2*(R-i)-2*(a-R),1b=i-R,15=(-a1+aa.3b(a1*a1-4*j*1b))/2/j,S=(-a1-aa.3b(a1*a1-4*j*1b))/2/j,a0=[d,h],a3=[i,c],e;aa.2A(15)>4D&&(15=0.5);aa.2A(S)>4D&&(S=0.5);12(15>0&&15<1){e=L(i,d,R,E,a,b,c,h,15);a3[f](e.x);a0[f](e.y)}12(S>0&&S<1){e=L(i,d,R,E,a,b,c,h,S);a3[f](e.x);a0[f](e.y)}j=(b-2*E+d)-(h-2*b+E);a1=2*(E-d)-2*(b-E);1b=d-E;15=(-a1+aa.3b(a1*a1-4*j*1b))/2/j;S=(-a1-aa.3b(a1*a1-4*j*1b))/2/j;aa.2A(15)>4D&&(15=0.5);aa.2A(S)>4D&&(S=0.5);12(15>0&&15<1){e=L(i,d,R,E,a,b,c,h,15);a3[f](e.x);a0[f](e.y)}12(S>0&&S<1){e=L(i,d,R,E,a,b,c,h,S);a3[f](e.x);a0[f](e.y)}13{4x:{x:aF[1R](0,a3),y:aF[1R](0,a0)},4j:{x:g[1R](0,a3),y:g[1R](0,a0)}}}),H=ai(14(f,h){11 R=s(f),a2=h&&s(h),a3={x:0,y:0,33:0,39:0,X:0,Y:0,3m:1h,3l:1h},d={x:0,y:0,33:0,39:0,X:0,Y:0,3m:1h,3l:1h},15=14(a,b){11 i,a9;12(!a){13["C",b.x,b.y,b.x,b.y,b.x,b.y]}!(a[0]1y{T:1,Q:1})&&(b.3m=b.3l=1h);2b(a[0]){17"M":b.X=a[1];b.Y=a[2];1a;17"A":a=["C"][21](J[1R](0,[b.x,b.y][21](a.40(1))));1a;17"S":i=b.x+(b.x-(b.33||b.x));a9=b.y+(b.y-(b.39||b.y));a=["C",i,a9][21](a.40(1));1a;17"T":b.3m=b.x+(b.x-(b.3m||b.x));b.3l=b.y+(b.y-(b.3l||b.y));a=["C"][21](5s(b.x,b.y,b.3m,b.3l,a[1],a[2]));1a;17"Q":b.3m=a[1];b.3l=a[2];a=["C"][21](5s(b.x,b.y,a[1],a[2],a[3],a[4]));1a;17"L":a=["C"][21](49(b.x,b.y,a[1],a[2]));1a;17"H":a=["C"][21](49(b.x,b.y,a[1],b.y));1a;17"V":a=["C"][21](49(b.x,b.y,b.x,a[1]));1a;17"Z":a=["C"][21](49(b.x,b.y,b.X,b.Y));1a}13 a},e=14(a,b){12(a[b][m]>7){a[b].4P();11 c=a[b];2N(c[m]){a.2Y(b++,0,["C"][21](c.2Y(0,6)))}a.2Y(b,1);a4=g(R[m],a2&&a2[m]||0)}},E=14(a,b,c,d,e){12(a&&b&&a[e][0]=="M"&&b[e][0]!="M"){b.2Y(e,0,["M",d.x,d.y]);c.33=0;c.39=0;c.x=a[e][1];c.y=a[e][2];a4=g(R[m],a2&&a2[m]||0)}};1i(11 j=0,a4=g(R[m],a2&&a2[m]||0);j<a4;j++){R[j]=15(R[j],a3);e(R,j);a2&&(a2[j]=15(a2[j],d));a2&&e(a2,j);E(R,a2,a3,d,j);E(a2,R,d,a3,j);11 k=R[j],a5=a2&&a2[j],S=k[m],a0=a2&&a5[m];a3.x=k[S-2];a3.y=k[S-1];a3.33=V(k[S-4])||a3.x;a3.39=V(k[S-3])||a3.y;d.33=a2&&(V(a5[a0-4])||d.x);d.39=a2&&(V(a5[a0-3])||d.y);d.x=a2&&a5[a0-2];d.y=a2&&a5[a0-1]}13 a2?[R,a2]:R},1h,at),p=ai(14(a){11 b=[];1i(11 c=0,a2=a[m];c<a2;c++){11 e={},19=a[c].3z(/^([^:]*):?([\\d\\.]*)/);e.28=am.2P(19[1]);12(e.28.3Q){13 1h}e.28=e.28.2F;19[2]&&(e.2I=19[2]+"%");b[f](e)}1i(11 c=1,a2=b[m]-1;c<a2;c++){12(!b[c].2I){11 E=V(b[c-1].2I||0),R=0;1i(11 S=c+1;S<a2;S++){12(b[S].2I){R=b[S].2I;1a}}12(!R){R=4t;S=a2}R=V(R);11 d=(R-E)/(S-c+1);1i(;c<S;c++){E+=d;b[c].2I=E+"%"}}}13 b}),an=14(){11 i,e,R,E,d;12(am.1u(1f[0],"2l")||am.1u(1f[0],"2R")){12(am.1u(1f[0],"2l")){i=K.4R(1f[0])}1n{i=1f[0]}12(i.68){12(1f[1]==1h){13{3n:i,18:i.1k.7B||i.4M,1d:i.1k.7C||i.4K}}1n{13{3n:i,18:1f[1],1d:1f[2]}}}}1n{12(am.1u(1f[0],ak)&&1f[m]>3){13{3n:1,x:1f[0],y:1f[1],18:1f[2],1d:1f[3]}}}},aD=14(d,i){11 e=9;1i(11 E 1y i){12(i[P](E)&&!(E 1y d)){2b(6U i[E]){17"14":(14(R){d[E]=d===e?R:14(){13 R[1R](e,1f)}})(i[E]);1a;17"2R":d[E]=d[E]||{};aD.1F(9,d[E],i[E]);1a;2O:d[E]=i[E];1a}}}},aj=14(d,e){d==e.1w&&(e.1w=d.20);d==e.2e&&(e.2e=d.1Z);d.1Z&&(d.1Z.20=d.20);d.20&&(d.20.1Z=d.1Z)},X=14(d,e){12(e.1w===d){13}aj(d,e);d.1Z=1h;d.20=e.1w;e.1w.1Z=d;e.1w=d},k=14(d,e){12(e.2e===d){13}aj(d,e);d.1Z=e.2e;d.20=1h;e.2e.20=d;e.2e=d},B=14(e,d,i){aj(e,i);d==i.1w&&(i.1w=e);d.1Z&&(d.1Z.20=e);e.1Z=d.1Z;e.20=d;d.1Z=e},ao=14(e,d,i){aj(e,i);d==i.2e&&(i.2e=e);d.20&&(d.20.1Z=e);e.20=d.20;d.20=e;e.1Z=d},t=14(d){13 14(){51 1U 56("3K\\3J: 7D 59 7E 4y 6l \\7F"+d+"\\7G 7H 1O 2R");}},ap=/^r(?:\\(([^,]+?)\\s*,\\s*([^\\)]+?)\\))?/;12(am.3j){1I[1c].6o="3Y://4m.4I.4J/6u/3j";1I[1c].3u="3Y://4m.4I.4J/7I/3u";11 N=14(d){13+d+(~~d===d)*0.5},U=14(S){1i(11 e=0,E=S[m];e<E;e++){12(2M.1F(S[e][0])!="a"){1i(11 d=1,R=S[e][m];d<R;d++){S[e][d]=N(S[e][d])}}1n{S[e][6]=N(S[e][6]);S[e][7]=N(S[e][7])}}13 S},1r=14(i,d){12(d){1i(11 e 1y d){12(d[P](e)){i[w](e,d[e])}}}1n{13 K.7J(1I[1c].6o,i)}};am[ax]=14(){13"6A 6B 7L 4C.\\6C 59 6D 3K\\3J "+9.4B};11 q=14(d,E){11 e=1r("1s");E.1E&&E.1E[1q](e);11 i=1U 1j(e,E);i.1p="1s";Z(i,{1m:"1C",1g:"#2n",1s:d});13 i};11 b=14(E,f,d){11 h="4e",1b=0.5,S=0.5,a6=E.1k;f=(f+aq)[1L](ap,14(a,i,b){h="4d";12(i&&b){1b=V(i);S=V(b);11 c=((S>0.5)*2-1);1K(1b-0.5,2)+1K(S-0.5,2)>0.25&&(S=aa.3b(0.25-1K(1b-0.5,2))*c+0.5)&&S!=0.5&&(S=S.2T(5)-0.7M*c)}13 aq});f=f[A](/\\s*\\-\\s*/);12(h=="4e"){11 j=f.4P();j=-V(j);12(6H(j)){13 1h}11 R=[0,0,aa.3t(j*aa.3T/37),aa.3f(j*aa.3T/37)],a3=1/(g(aa.2A(R[2]),aa.2A(R[3]))||1);R[2]*=a3;R[3]*=a3;12(R[2]<0){R[0]=-R[2];R[2]=0}12(R[3]<0){R[1]=-R[3];R[3]=0}}11 k=p(f);12(!k){13 1h}11 e=1r(h+"7N");e.2h="r"+(am.4n++)[ax](36);1r(e,h=="4d"?{48:1b,47:S}:{7O:R[0],7P:R[1],7Q:R[2],7R:R[3]});d.42[1q](e);1i(11 l=0,a5=k[m];l<a5;l++){11 n=1r("3s");1r(n,{2I:k[l].2I?k[l].2I:!l?"0%":"4t%","3s-28":k[l].28||"#6n"});e[1q](n)}1r(E,{1m:"3a(#"+e.2h+")",1z:1,"1m-1z":1});a6.1m=aq;a6.1z=1;a6.7S=1;13 1};11 M=14(e){11 d=e.2J();1r(e.3M,{7T:am.2Z("3h({0},{1})",d.x,d.y)})};11 Z=14(f,g){11 h={"":[0],1C:[0],"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]},a8=f.1o,a4=f.1e,a0=f.23(),S=14(a,b){b=h[2M.1F(b)];12(b){11 c=a.1e["1g-18"]||"1",3k={4V:c,5E:c,4r:0}[a.1e["1g-34"]||g["1g-34"]]||0,2m=[];11 d=b[m];2N(d--){2m[d]=b[d]*c+((d%2)?1:-1)*3k}1r(a8,{"1g-2S":2m[aw](",")})}};g[P]("2f")&&(a0=g.2f);11 k=(a0+aq)[A](a);12(!(k.3v-1)){k=1h}1n{k[1]=+k[1];k[2]=+k[2]}V(a0)&&f.23(0,27);1i(11 l 1y g){12(g[P](l)){12(!j[P](l)){4N}11 n=g[l];a4[l]=n;2b(l){17"2f":f.23(n,27);1a;17"3e":17"3D":17"4i":11 o=a8.1G;12(2M.1F(o.68)!="a"){11 E=1r("a");o.2B(E,a8);E[1q](a8);o=E}o.4u(f.7U[1c].3u,l,n);1a;17"3B":a8.1k.3B=n;1a;17"1P-1M":11 e=(n+aq)[A](a);12(e[m]==4){f.1P&&f.1P.1G.1G.2w(f.1P.1G);11 i=1r("7V"),a9=1r("1M");i.2h="r"+(am.4n++)[ax](36);1r(a9,{x:e[0],y:e[1],18:e[2],1d:e[3]});i[1q](a9);f.1x.42[1q](i);1r(a8,{"1P-1s":"3a(#"+i.2h+")"});f.1P=a9}12(!n){11 p=K.4R(a8.6S("1P-1s")[1L](/(^3a\\(#|\\)$)/g,aq));p&&p.1G.2w(p);1r(a8,{"1P-1s":aq});22 f.1P}1a;17"1s":12(n&&f.1p=="1s"){a4.1s=U(s(n));1r(a8,{d:a4.1s})}1a;17"18":a8[w](l,n);12(a4.48){l="x";n=a4.x}1n{1a}17"x":12(a4.48){n=-a4.x-(a4.18||0)}17"2z":12(l=="2z"&&f.1p=="1M"){1a}17"1Q":k&&(l=="x"||l=="1Q")&&(k[1]+=n-a4[l]);a8[w](l,N(n));f.3M&&M(f);1a;17"1d":a8[w](l,n);12(a4.47){l="y";n=a4.y}1n{1a}17"y":12(a4.47){n=-a4.y-(a4.1d||0)}17"2t":12(l=="2t"&&f.1p=="1M"){1a}17"1Y":k&&(l=="y"||l=="1Y")&&(k[2]+=n-a4[l]);a8[w](l,N(n));f.3M&&M(f);1a;17"r":12(f.1p=="1M"){1r(a8,{2z:n,2t:n})}1n{a8[w](l,n)}1a;17"2K":12(f.1p=="2i"){a8.4u(f.1x.3u,"3e",n)}1a;17"1g-18":a8.1k.7W=n;a8[w](l,n);12(a4["1g-2S"]){S(f,a4["1g-2S"])}1a;17"1g-2S":S(f,n);1a;17"2C":11 q=(n+aq)[A](a);q[0]=+q[0]||0;q[1]=+q[1]||0;12(k){k[1]+=q[0];k[2]+=q[1]}u.1F(f,q[0],q[1]);1a;17"1J":11 q=(n+aq)[A](a);f.1J(+q[0]||1,+q[1]||+q[0]||1,+q[2]||1h,+q[3]||1h);1a;17"1m":11 R=(n+aq).3z(c);12(R){11 i=1r("3M"),a2=1r("2i");i.2h="r"+(am.4n++)[ax](36);1r(i,{x:0,y:0,7X:"7Y",1d:1,18:1});1r(a2,{x:0,y:0});a2.4u(f.1x.3u,"3e",R[1]);i[1q](a2);11 r=K.2X("7Z");r.1k.2G="2v:2q;1X:-6V;1w-6V";r.81=14(){1r(i,{18:9.4M,1d:9.4K});1r(a2,{18:9.4M,1d:9.4K});K.35.2w(9);f.1x.4s()};K.35[1q](r);r.2K=R[1];f.1x.42[1q](i);a8.1k.1m="3a(#"+i.2h+")";1r(a8,{1m:"3a(#"+i.2h+")"});f.3M=i;f.3M&&M(f);1a}12(!am.2P(n).3Q){22 g.1S;22 a4.1S;!am.1u(a4.1z,"4f")&&am.1u(g.1z,"4f")&&1r(a8,{1z:a4.1z});!am.1u(a4["1m-1z"],"4f")&&am.1u(g["1m-1z"],"4f")&&1r(a8,{"1m-1z":a4["1m-1z"]})}1n{12((({2p:1,2u:1})[P](f.1p)||(n+aq).31()!="r")&&b(a8,n,f.1x)){a4.1S=n;a4.1m="1C";1a}}17"1g":a8[w](l,am.2P(n).2F);1a;17"1S":(({2p:1,2u:1})[P](f.1p)||(n+aq).31()!="r")&&b(a8,n,f.1x);1a;17"1z":17"1m-1z":12(a4.1S){11 d=K.4R(a8.6S("1m")[1L](/^3a\\(#|\\)$/g,aq));12(d){11 t=d.3r("3s");t[t[m]-1][w]("3s-1z",n)}1a}2O:l=="1v-2W"&&(n=G(n,10)+"1l");11 v=l[1L](/(\\-.)/g,14(a){13 3V.1F(a.3W(1))});a8.1k[v]=n;a8[w](l,n);1a}}}D(f,g);12(k){f.23(k.5G(al))}1n{V(a0)&&f.23(a0,27)}};11 h=1.2;11 D=14(d,R){12(d.1p!="1D"||!(R[P]("1D")||R[P]("1v")||R[P]("1v-2W")||R[P]("x")||R[P]("y"))){13}11 a=d.1e,e=d.1o,a2=e.2j?G(K.6y.6x(e.2j,aq).6w("1v-2W"),10):10;12(R[P]("1D")){a.1D=R.1D;2N(e.2j){e.2w(e.2j)}11 E=(R.1D+aq)[A]("\\n");1i(11 S=0,a1=E[m];S<a1;S++){12(E[S]){11 b=1r("6v");S&&1r(b,{6Y:a2*h,x:a.x});b[1q](K.6W(E[S]));e[1q](b)}}}1n{11 E=e.3r("6v");1i(11 S=0,a1=E[m];S<a1;S++){S&&1r(E[S],{6Y:a2*h,x:a.x})}}1r(e,{y:a.y});11 c=d.2J(),19=a.y-(c.y+c.1d/2);19&&83(19)&&1r(e,{y:a.y+19})};11 1j=14(e,d){11 E=0,i=0;9[0]=e;9.2h=am.5v++;9.1o=e;e.4H=9;9.1x=d;9.1e=9.1e||{};9.2Q=[];9.1t={3X:0,44:0,1B:{24:0,1Q:0,1Y:0},2y:1,2o:1};!d.2e&&(d.2e=9);9.20=d.1w;d.1w&&(d.1w.1Z=9);d.1w=9;9.1Z=1h};1j[1c].23=14(e,d,E){12(9.1O){13 9}12(e==1h){12(9.1t.1B.1Q){13[9.1t.1B.24,9.1t.1B.1Q,9.1t.1B.1Y][aw](al)}13 9.1t.1B.24}11 i=9.2J();e=(e+aq)[A](a);12(e[m]-1){d=V(e[1]);E=V(e[2])}e=V(e[0]);12(d!=1h){9.1t.1B.24=e}1n{9.1t.1B.24+=e}(E==1h)&&(d=1h);9.1t.1B.1Q=d;9.1t.1B.1Y=E;d=d==1h?i.x+i.18/2:d;E=E==1h?i.y+i.1d/2:E;12(9.1t.1B.24){9.2Q[0]=am.2Z("23({0} {1} {2})",9.1t.1B.24,d,E);9.1P&&1r(9.1P,{45:am.2Z("23({0} {1} {2})",-9.1t.1B.24,d,E)})}1n{9.2Q[0]=aq;9.1P&&1r(9.1P,{45:aq})}1r(9.1o,{45:9.2Q[aw](al)});13 9};1j[1c].5k=14(){!9.1O&&(9.1o.1k.3g="1C");13 9};1j[1c].5n=14(){!9.1O&&(9.1o.1k.3g="");13 9};1j[1c].3H=14(){12(9.1O){13}aj(9,9.1x);9.1o.1G.2w(9.1o);1i(11 d 1y 9){22 9[d]}9.1O=27};1j[1c].2J=14(){12(9.1O){13 9}12(9.1p=="1s"){13 T(9.1e.1s)}12(9.1o.1k.3g=="1C"){9.5n();11 E=27}11 a={};41{a=9.1o.2J()}4h(S){}84{a=a||{}}12(9.1p=="1D"){a={x:a.x,y:85,18:0,1d:0};1i(11 d=0,R=9.1o.86();d<R;d++){11 b=9.1o.87(d);(b.y<a.y)&&(a.y=b.y);(b.y+b.1d-a.y>a.1d)&&(a.1d=b.y+b.1d-a.y);(b.x+b.18-a.x>a.18)&&(a.18=b.x+b.18-a.x)}}E&&9.5k();13 a};1j[1c].1V=14(){12(9.1O){13 9}12(1f[m]==0){11 R={};1i(11 E 1y 9.1e){12(9.1e[P](E)){R[E]=9.1e[E]}}9.1t.1B.24&&(R.2f=9.23());(9.1t.2y!=1||9.1t.2o!=1)&&(R.1J=9.1J());R.1S&&R.1m=="1C"&&(R.1m=R.1S)&&22 R.1S;13 R}12(1f[m]==1&&am.1u(1f[0],"2l")){12(1f[0]=="2C"){13 u.1F(9)}12(1f[0]=="2f"){13 9.23()}12(1f[0]=="1J"){13 9.1J()}12(1f[0]=="1m"&&9.1e.1m=="1C"&&9.1e.1S){13 9.1e.1S}13 9.1e[1f[0]]}12(1f[m]==1&&am.1u(1f[0],"2g")){11 d={};1i(11 e 1y 1f[0]){12(1f[0][P](e)){d[1f[0][e]]=9.1e[1f[0][e]]}}13 d}12(1f[m]==2){11 S={};S[1f[0]]=1f[1];Z(9,S)}1n{12(1f[m]==1&&am.1u(1f[0],"2R")){Z(9,1f[0])}}13 9};1j[1c].6R=14(){12(9.1O){13 9}9.1o.1G[1q](9.1o);11 d=9.1x;d.1w!=9&&X(9,d);13 9};1j[1c].6Q=14(){12(9.1O){13 9}12(9.1o.1G.2j!=9.1o){9.1o.1G.2B(9.1o,9.1o.1G.2j);k(9,9.1x);11 d=9.1x}13 9};1j[1c].4q=14(d){12(9.1O){13 9}11 e=d.1o;12(e.4A){e.1G.2B(9.1o,e.4A)}1n{e.1G[1q](9.1o)}B(9,d,9.1x);13 9};1j[1c].2B=14(d){12(9.1O){13 9}11 e=d.1o;e.1G.2B(9.1o,e);ao(9,d,9.1x);13 9};1j[1c].3O=14(){12(9.1p!="1s"){13-1}13 9.1o.3O()};11 O=14(e,d,S,R){d=N(d);S=N(S);11 E=1r("2p");e.1E&&e.1E[1q](E);11 i=1U 1j(E,e);i.1e={1Q:d,1Y:S,r:R,1m:"1C",1g:"#2n"};i.1p="2p";1r(E,i.1e);13 i};11 5F=14(i,d,a,e,S,b){d=N(d);a=N(a);11 R=1r("1M");i.1E&&i.1E[1q](R);11 E=1U 1j(R,i);E.1e={x:d,y:a,18:e,1d:S,r:b||0,2z:b||0,2t:b||0,1m:"1C",1g:"#2n"};E.1p="1M";1r(R,E.1e);13 E};11 5D=14(e,d,a,S,R){d=N(d);a=N(a);11 E=1r("2u");e.1E&&e.1E[1q](E);11 i=1U 1j(E,e);i.1e={1Q:d,1Y:a,2z:S,2t:R,1m:"1C",1g:"#2n"};i.1p="2u";1r(E,i.1e);13 i};11 o=14(i,a,d,b,e,S){11 R=1r("2i");1r(R,{x:d,y:b,18:e,1d:S,88:"1C"});R.4u(i.3u,"3e",a);i.1E&&i.1E[1q](R);11 E=1U 1j(R,i);E.1e={x:d,y:b,18:e,1d:S,2K:a};E.1p="2i";13 E};11 W=14(e,d,S,R){11 E=1r("1D");1r(E,{x:d,y:S,"1D-4l":"4o"});e.1E&&e.1E[1q](E);11 i=1U 1j(E,e);i.1e={x:d,y:S,"1D-4l":"4o",1D:R,1v:j.1v,1g:"1C",1m:"#2n"};i.1p="1D";Z(i,i.1e);13 i};11 5B=14(e,d){9.18=e||9.18;9.1d=d||9.1d;9.1E[w]("18",9.18);9.1E[w]("1d",9.1d);13 9};11 x=14(){11 E=an[1R](1h,1f),i=E&&E.3n,e=E.x,15=E.y,R=E.18,d=E.1d;12(!i){51 1U 56("4C 3n 6P 6O.");}11 S=1r("3j");R=R||6N;d=d||6L;1r(S,{6K:"3Y://4m.4I.4J/6u/3j",4B:1.1,18:R,1d:d});12(i==1){S.1k.2G="2v:2q;1X:"+e+"1l;1w:"+15+"1l";K.35[1q](S)}1n{12(i.2j){i.2B(S,i.2j)}1n{i[1q](S)}}i=1U 1I;i.18=R;i.1d=d;i.1E=S;aD.1F(i,i,am.5w);i.5u();13 i};1I[1c].5u=14(){11 d=9.1E;2N(d.2j){d.2w(d.2j)}9.2e=9.1w=1h;(9.5t=1r("5t"))[1q](K.6W("89 8a 3K\\3J"));d[1q](9.5t);d[1q](9.42=1r("42"))};1I[1c].3H=14(){9.1E.1G&&9.1E.1G.2w(9.1E);1i(11 d 1y 9){9[d]=t(d)}}}12(am.3E){11 6I=14(g){11 h=/[8b]/5C,15=s;(g+aq).3z(h)&&(15=H);h=/[5q]/g;12(15==s&&!(g+aq).3z(h)){11 e={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},R=/([5q]),?([^5q]*)/6i,S=/-?[^,\\s-]+/g;11 j=(g+aq)[1L](R,14(b,c,i){11 d=[];i[1L](S,14(a){d[f](N(a))});13 e[c]+d});13 j}11 k=15(g),E,j=[],d;1i(11 l=0,a4=k[m];l<a4;l++){E=k[l];d=2M.1F(k[l][0]);d=="z"&&(d="x");1i(11 n=1,a0=E[m];n<a0;n++){d+=N(E[n])+(n!=a0-1?",":aq)}j[f](d)}13 j[aw](al)};am[ax]=14(){13"6A 6B 8c\\8d 8e 4C. 8g 8h 4y 3w.\\6C 59 6D 3K\\3J "+9.4B};11 q=14(d,S){11 E=ag("3G");E.1k.2G="2v:2q;1X:0;1w:0;18:"+S.18+"1l;1d:"+S.1d+"1l";E.2c=S.2c;E.2d=S.2d;11 i=ag("2H"),e=i.1k;e.18=S.18+"1l";e.1d=S.1d+"1l";i.2c=9.2c;i.2d=9.2d;E[1q](i);11 R=1U 1j(i,E,S);R.8i=27;R.1p="1s";R.1s=[];R.8j=aq;d&&Z(R,{1m:"1C",1g:"#2n",1s:d});S.1E[1q](E);13 R};11 Z=14(f,g){f.1e=f.1e||{};11 h=f.1o,a6=f.1e,o=h.1k,E,1A=f;1i(11 j 1y g){12(g[P](j)){a6[j]=g[j]}}g.3e&&(h.3e=g.3e);g.3D&&(h.3D=g.3D);g.4i&&(h.4i=g.4i);g.3B&&(o.3B=g.3B);12(g.1s&&f.1p=="1s"){a6.1s=g.1s;h.1s=6I(a6.1s)}12(g.2f!=1h){f.23(g.2f,27)}12(g.2C){E=(g.2C+aq)[A](a);u.1F(f,E[0],E[1]);12(f.1t.1B.1Q!=1h){f.1t.1B.1Q+=+E[0];f.1t.1B.1Y+=+E[1];f.2V(f.1e,E[0],E[1])}}12(g.1J){E=(g.1J+aq)[A](a);f.1J(+E[0]||1,+E[1]||+E[0]||1,+E[2]||1h,+E[3]||1h)}12("1P-1M"1y g){11 d=(g["1P-1M"]+aq)[A](a);12(d[m]==4){d[2]=+d[2]+(+d[0]);d[3]=+d[3]+(+d[1]);11 k=h.43||K.2X("4S"),a9=k.1k,S=h.1G;a9.1P=am.2Z("1M({1}1l {2}1l {3}1l {0}1l)",d);12(!h.43){a9.2v="2q";a9.1w=0;a9.1X=0;a9.18=f.1x.18+"1l";a9.1d=f.1x.1d+"1l";S.1G.2B(k,S);k[1q](S);h.43=k}}12(!g["1P-1M"]){h.43&&(h.43.1k.1P=aq)}}12(f.1p=="2i"&&g.2K){h.2K=g.2K}12(f.1p=="2i"&&g.1z){h.4w=" 6j:6h.6g.8k(1z="+(g.1z*4t)+")";o.4T=(h.3R||aq)+(h.4w||aq)}g.1v&&(o.1v=g.1v);g["1v-3L"]&&(o.6e=\'"\'+g["1v-3L"][A](",")[0][1L](/^[\'"]+|[\'"]+$/g,aq)+\'"\');g["1v-2W"]&&(o.6a=g["1v-2W"]);g["1v-30"]&&(o.69=g["1v-30"]);g["1v-1k"]&&(o.66=g["1v-1k"]);12(g.1z!=1h||g["1g-18"]!=1h||g.1m!=1h||g.1g!=1h||g["1g-18"]!=1h||g["1g-1z"]!=1h||g["1m-1z"]!=1h||g["1g-2S"]!=1h||g["1g-4b"]!=1h||g["1g-46"]!=1h||g["1g-34"]!=1h){h=f.2H||h;11 l=(h.3r("1m")&&h.3r("1m")[0]),a7=3o;!l&&(a7=l=ag("1m"));12("1m-1z"1y g||"1z"1y g){11 e=((+a6["1m-1z"]+1||2)-1)*((+a6.1z+1||2)-1);e<0&&(e=0);e>1&&(e=1);l.1z=e}g.1m&&(l.2r=27);12(l.2r==1h||g.1m=="1C"){l.2r=3o}12(l.2r&&g.1m){11 i=g.1m.3z(c);12(i){l.2K=i[1];l.1p="8l"}1n{l.28=am.2P(g.1m).2F;l.2K=aq;l.1p="8m";12(am.2P(g.1m).3Q&&(1A.1p 1y{2p:1,2u:1}||(g.1m+aq).31()!="r")&&b(1A,g.1m)){a6.1m="1C";a6.1S=g.1m}}}a7&&h[1q](l);11 R=(h.3r("1g")&&h.3r("1g")[0]),a8=3o;!R&&(a8=R=ag("1g"));12((g.1g&&g.1g!="1C")||g["1g-18"]||g["1g-1z"]!=1h||g["1g-2S"]||g["1g-4b"]||g["1g-46"]||g["1g-34"]){R.2r=27}(g.1g=="1C"||R.2r==1h||g.1g==0||g["1g-18"]==0)&&(R.2r=3o);R.2r&&g.1g&&(R.28=am.2P(g.1g).2F);11 e=((+a6["1g-1z"]+1||2)-1)*((+a6.1z+1||2)-1),a1=(V(g["1g-18"])||1)*0.75;e<0&&(e=0);e>1&&(e=1);g["1g-18"]==1h&&(a1=a6["1g-18"]);g["1g-18"]&&(R.30=a1);a1&&a1<1&&(e*=a1)&&(R.30=1);R.1z=e;g["1g-46"]&&(R.8n=g["1g-46"]||"8o");R.4b=g["1g-4b"]||8;g["1g-34"]&&(R.8p=g["1g-34"]=="4r"?"8q":g["1g-34"]=="5E"?"5E":"4V");12(g["1g-2S"]){11 n={"-":"8r",".":"8t","-.":"8v","-..":"8x",". ":"8z","- ":"8A","--":"8B","- .":"8C","--.":"8D","--..":"8E"};R.8F=n[P](g["1g-2S"])?n[g["1g-2S"]]:aq}a8&&h[1q](R)}12(1A.1p=="1D"){11 o=1A.1x.2x.1k;a6.1v&&(o.1v=a6.1v);a6["1v-3L"]&&(o.6e=a6["1v-3L"]);a6["1v-2W"]&&(o.6a=a6["1v-2W"]);a6["1v-30"]&&(o.69=a6["1v-30"]);a6["1v-1k"]&&(o.66=a6["1v-1k"]);1A.1o.2l&&(1A.1x.2x.5b=(1A.1o.2l+aq)[1L](/</g,"<")[1L](/&/g,"&")[1L](/\\n/g,"<3F>"));1A.W=a6.w=1A.1x.2x.4M;1A.H=a6.h=1A.1x.2x.4K;1A.X=a6.x;1A.Y=a6.y+N(1A.H/2);2b(a6["1D-4l"]){17"2a":1A.1o.1k["v-1D-4Y"]="1X";1A.4Z=N(1A.W/2);1a;17"3U":1A.1o.1k["v-1D-4Y"]="8G";1A.4Z=-N(1A.W/2);1a;2O:1A.1o.1k["v-1D-4Y"]="8H";1a}}};11 b=14(d,c){d.1e=d.1e||{};11 g=d.1e,a1=d.1o.3r("1m"),S="4e",15=".5 .5";d.1e.1S=c;c=(c+aq)[1L](ap,14(a,b,i){S="4d";12(b&&i){b=V(b);i=V(i);1K(b-0.5,2)+1K(i-0.5,2)>0.25&&(i=aa.3b(0.25-1K(b-0.5,2))*((i>0.5)*2-1)+0.5);15=b+al+i}13 aq});c=c[A](/\\s*\\-\\s*/);12(S=="4e"){11 e=c.4P();e=-V(e);12(6H(e)){13 1h}}11 R=p(c);12(!R){13 1h}d=d.2H||d.1o;a1=a1[0]||ag("1m");12(R[m]){a1.2r=27;a1.6l="1C";a1.1p=(S=="4d")?"8I":"1S";a1.28=R[0].28;a1.8K=R[R[m]-1].28;11 h=[];1i(11 E=0,a0=R[m];E<a0;E++){R[E].2I&&h[f](R[E].2I+al+R[E].28)}a1.64&&(a1.64.8L=h[m]?h[aw](","):"0% "+a1.28);12(S=="4d"){a1.8N="4t%";a1.8Q=15;a1.8R=15}1n{a1.8S=(8T-e)%8U}}13 1};11 1j=14(R,a,d){11 S=0,i=0,e=0,E=1;9[0]=R;9.2h=am.5v++;9.1o=R;R.4H=9;9.X=0;9.Y=0;9.1e={};9.1N=a;9.1x=d;9.1t={3X:0,44:0,1B:{24:0},2y:1,2o:1};!d.2e&&(d.2e=9);9.20=d.1w;d.1w&&(d.1w.1Z=9);d.1w=9;9.1Z=1h};1j[1c].23=14(e,d,i){12(9.1O){13 9}12(e==1h){12(9.1t.1B.1Q){13[9.1t.1B.24,9.1t.1B.1Q,9.1t.1B.1Y][aw](al)}13 9.1t.1B.24}e=(e+aq)[A](a);12(e[m]-1){d=V(e[1]);i=V(e[2])}e=V(e[0]);12(d!=1h){9.1t.1B.24=e}1n{9.1t.1B.24+=e}i==1h&&(d=1h);9.1t.1B.1Q=d;9.1t.1B.1Y=i;9.2V(9.1e,d,i);9.1N.1k.2f=9.1t.1B.24;13 9};1j[1c].2V=14(a,e,d){12(9.1O){13 9}11 b=9.1N.1k,R=(9.2H&&9.2H.1k)||9.1o.1k;a=a||{};1i(11 c 1y a){12(a[P](c)){9.1e[c]=a[c]}}e=e||9.1t.1B.1Q;d=d||9.1t.1B.1Y;11 f=9.1e,1b,15,19,a7;2b(9.1p){17"2p":1b=f.1Q-f.r;15=f.1Y-f.r;19=a7=f.r*2;1a;17"2u":1b=f.1Q-f.2z;15=f.1Y-f.2t;19=f.2z*2;a7=f.2t*2;1a;17"1M":17"2i":1b=+f.x;15=+f.y;19=f.18||0;a7=f.1d||0;1a;17"1D":9.5H.v=["m",N(f.x),", ",N(f.y-2),"l",N(f.x)+1,", ",N(f.y-2)][aw](aq);1b=f.x-N(9.W/2);15=f.y-9.H/2;19=9.W;a7=9.H;1a;17"1s":12(!9.1e.1s){1b=0;15=0;19=9.1x.18;a7=9.1x.1d}1n{11 g=T(9.1e.1s);1b=g.x;15=g.y;19=g.18;a7=g.1d}1a;2O:1b=0;15=0;19=9.1x.18;a7=9.1x.1d;1a}e=(e==1h)?1b+19/2:e;d=(d==1h)?15+a7/2:d;11 E=e-9.1x.18/2,a1=d-9.1x.1d/2;12(9.1p=="1s"||9.1p=="1D"){(b.1X!=E+"1l")&&(b.1X=E+"1l");(b.1w!=a1+"1l")&&(b.1w=a1+"1l");9.X=9.1p=="1D"?1b:-E;9.Y=9.1p=="1D"?15:-a1;9.W=19;9.H=a7;(R.1X!=-E+"1l")&&(R.1X=-E+"1l");(R.1w!=-a1+"1l")&&(R.1w=-a1+"1l")}1n{(b.1X!=E+"1l")&&(b.1X=E+"1l");(b.1w!=a1+"1l")&&(b.1w=a1+"1l");9.X=1b;9.Y=15;9.W=19;9.H=a7;(b.18!=9.1x.18+"1l")&&(b.18=9.1x.18+"1l");(b.1d!=9.1x.1d+"1l")&&(b.1d=9.1x.1d+"1l");(R.1X!=1b-E+"1l")&&(R.1X=1b-E+"1l");(R.1w!=15-a1+"1l")&&(R.1w=15-a1+"1l");(R.18!=19+"1l")&&(R.18=19+"1l");(R.1d!=a7+"1l")&&(R.1d=a7+"1l");11 S=(+a.r||0)/aF(19,a7);12(9.1p=="1M"&&9.3y.2T(4)!=S.2T(4)&&(S||9.3y)){11 h=ag("5X"),a9={},c=0,a0=9.2L&&9.2L[m];h.3y=S;h.4H=9;9.1N[1q](h);9.1N.2w(9.1o);9[0]=9.1o=h;9.3y=S;1i(11 c 1y f){a9[c]=f[c]}22 a9.1J;9.1V(a9);12(9.2L){1i(;c<a0;c++){9.2L[c].5j=5l(9.1o,9.2L[c].5m,9.2L[c].f,9)}}}}};1j[1c].5k=14(){!9.1O&&(9.1N.1k.3g="1C");13 9};1j[1c].5n=14(){!9.1O&&(9.1N.1k.3g="8V");13 9};1j[1c].2J=14(){12(9.1O){13 9}12(9.1p=="1s"){13 T(9.1e.1s)}13{x:9.X+(9.4Z||0),y:9.Y,18:9.W,1d:9.H}};1j[1c].3H=14(){12(9.1O){13}aj(9,9.1x);9.1o.1G.2w(9.1o);9.1N.1G.2w(9.1N);9.2H&&9.2H.1G.2w(9.2H);1i(11 d 1y 9){22 9[d]}9.1O=27};1j[1c].1V=14(){12(9.1O){13 9}12(1f[m]==0){11 E={};1i(11 e 1y 9.1e){12(9.1e[P](e)){E[e]=9.1e[e]}}9.1t.1B.24&&(E.2f=9.23());(9.1t.2y!=1||9.1t.2o!=1)&&(E.1J=9.1J());E.1S&&E.1m=="1C"&&(E.1m=E.1S)&&22 E.1S;13 E}12(1f[m]==1&&am.1u(1f[0],"2l")){12(1f[0]=="2C"){13 u.1F(9)}12(1f[0]=="2f"){13 9.23()}12(1f[0]=="1J"){13 9.1J()}12(1f[0]=="1m"&&9.1e.1m=="1C"&&9.1e.1S){13 9.1e.1S}13 9.1e[1f[0]]}12(9.1e&&1f[m]==1&&am.1u(1f[0],"2g")){11 d={};1i(11 e=0,R=1f[0][m];e<R;e++){d[1f[0][e]]=9.1e[1f[0][e]]}13 d}11 S;12(1f[m]==2){S={};S[1f[0]]=1f[1]}1f[m]==1&&am.1u(1f[0],"2R")&&(S=1f[0]);12(S){12(S.1D&&9.1p=="1D"){9.1o.2l=S.1D}Z(9,S);12(S.1S&&(({2p:1,2u:1})[P](9.1p)||(S.1S+aq).31()!="r")){b(9,S.1S)}(9.1p!="1s"||9.1t.1B.24)&&9.2V(9.1e)}13 9};1j[1c].6R=14(){!9.1O&&9.1N.1G[1q](9.1N);9.1x.1w!=9&&X(9,9.1x);13 9};1j[1c].6Q=14(){12(9.1O){13 9}12(9.1N.1G.2j!=9.1N){9.1N.1G.2B(9.1N,9.1N.1G.2j);k(9,9.1x)}13 9};1j[1c].4q=14(d){12(9.1O){13 9}12(d.1N.4A){d.1N.1G.2B(9.1N,d.1N.4A)}1n{d.1N.1G[1q](9.1N)}B(9,d,9.1x);13 9};1j[1c].2B=14(d){12(9.1O){13 9}d.1N.1G.2B(9.1N,d.1N);ao(9,d,9.1x);13 9};11 O=14(e,d,a,S){11 R=ag("3G"),15=ag("5V"),i=15.1k;R.1k.2G="2v:2q;1X:0;1w:0;18:"+e.18+"1l;1d:"+e.1d+"1l";R.2c=e.2c;R.2d=e.2d;R[1q](15);11 E=1U 1j(15,R,e);E.1p="2p";Z(E,{1g:"#2n",1m:"1C"});E.1e.1Q=d;E.1e.1Y=a;E.1e.r=S;E.2V({x:d-S,y:a-S,18:S*2,1d:S*2});e.1E[1q](R);13 E},5F=14(e,a,b,c,E,d){11 R=ag("3G"),i=ag("5X"),a0=(+d||0)/(aF(c,E));R.1k.2G="2v:2q;1X:0;1w:0;18:"+e.18+"1l;1d:"+e.1d+"1l";R.2c=e.2c;R.2d=e.2d;R[1q](i);i.3y=a0;11 S=1U 1j(i,R,e);S.1p="1M";Z(S,{1g:"#2n"});S.3y=a0;S.2V({x:a,y:b,18:c,1d:E,r:d});e.1E[1q](R);13 S},5D=14(d,a,b,i,e){11 R=ag("3G"),E=ag("5V"),15=E.1k;R.1k.2G="2v:2q;1X:0;1w:0;18:"+d.18+"1l;1d:"+d.1d+"1l";R.2c=d.2c;R.2d=d.2d;R[1q](E);11 S=1U 1j(E,R,d);S.1p="2u";Z(S,{1g:"#2n"});S.1e.1Q=a;S.1e.1Y=b;S.1e.2z=i;S.1e.2t=e;S.2V({x:a-i,y:b-e,18:i*2,1d:e*2});d.1E[1q](R);13 S},o=14(e,d,a,b,c,E){11 R=ag("3G"),i=ag("2i"),15=i.1k;R.1k.2G="2v:2q;1X:0;1w:0;18:"+e.18+"1l;1d:"+e.1d+"1l";R.2c=e.2c;R.2d=e.2d;i.2K=d;R[1q](i);11 S=1U 1j(i,R,e);S.1p="2i";S.1e.2K=d;S.1e.x=a;S.1e.y=b;S.1e.w=c;S.1e.h=E;S.2V({x:a,y:b,18:c,1d:E});e.1E[1q](R);13 S},W=14(e,a,b,c){11 R=ag("3G"),E=ag("2H"),15=E.1k,a1=ag("1s"),d=a1.1k,i=ag("5H");R.1k.2G="2v:2q;1X:0;1w:0;18:"+e.18+"1l;1d:"+e.1d+"1l";R.2c=e.2c;R.2d=e.2d;a1.v=am.2Z("m{0},{1}l{2},{1}",N(a),N(b),N(a)+1);a1.8W=27;15.18=e.18;15.1d=e.1d;i.2l=c+aq;i.2r=27;E[1q](i);E[1q](a1);R[1q](E);11 S=1U 1j(i,R,e);S.2H=E;S.5H=a1;S.1p="1D";S.1e.1D=c;S.1e.x=a;S.1e.y=b;S.1e.w=1;S.1e.h=1;Z(S,{1v:j.1v,1g:"1C",1m:"#2n"});S.2V();e.1E[1q](R);13 S},5B=14(i,d){11 e=9.1E.1k;i==+i&&(i+="1l");d==+d&&(d+="1l");e.18=i;e.1d=d;e.1P="1M(0 "+i+" "+d+" 0)";13 9},ag;K.8X().8Z(".3x","92:3a(#2O#3w)");41{!K.5T.3x&&K.5T.93("3x","5S:5R-5Q-5h:3E");ag=14(d){13 K.2X("<3x:"+d+\' 5O="3x">\')}}4h(ae){ag=14(d){13 K.2X("<"+d+\' 6K="5S:5R-5Q.5h:3E" 5O="3x">\')}}11 x=14(){11 i=an[1R](1h,1f),d=i.3n,19=i.1d,a0,e=i.18,1b=i.x,15=i.y;12(!d){51 1U 56("3w 3n 6P 6O.");}11 R=1U 1I,S=R.1E=K.2X("4S"),E=S.1k;e=e||6N;19=19||6L;e==+e&&(e+="1l");19==+19&&(19+="1l");R.18=3P;R.1d=3P;R.2c="3P 3P";R.2d="0 0";R.2x=K.2X("2x");R.2x.1k.2G="2v:2q;1X:-4E;1w:-4E;5N:0;5K:0;5I-1d:1;3g:61;";S[1q](R.2x);E.2G=am.2Z("18:{0};1d:{1};2v:2q;1P:1M(0 {0} {1} 0);95:96",e,19);12(d==1){K.35[1q](S);E.1X=1b+"1l";E.1w=15+"1l"}1n{d.1k.18=e;d.1k.1d=19;12(d.2j){d.2B(S,d.2j)}1n{d[1q](S)}}aD.1F(R,R,am.5w);13 R};1I[1c].5u=14(){9.1E.5b=aq;9.2x=K.2X("2x");9.2x.1k.2G="2v:2q;1X:-4E;1w:-4E;5N:0;5K:0;5I-1d:1;3g:61;";9.1E[1q](9.2x);9.2e=9.1w=1h};1I[1c].3H=14(){9.1E.1G.2w(9.1E);1i(11 d 1y 9){9[d]=t(d)}}}12((/^97|^98/).58(5J.9b)&&!(5J.9d.67("9e/4.0")+1)){1I[1c].4s=14(){11 d=9.1M(-99,-99,9.18+99,9.1d+99);5P(14(){d.3H()})}}1n{1I[1c].4s=14(){}}11 5l=(14(){12(K.70){13 14(R,i,e,d){11 E=14(S){13 e.1F(d,S)};R.70(i,E,3o);13 14(){R.9j(i,E,3o);13 27}}}1n{12(K.5W){13 14(S,E,i,e){11 R=14(a){13 i.1F(e,a||ar.9k)};S.5W("2r"+E,R);11 d=14(){S.9l("2r"+E,R);13 27};13 d}}}})();1i(11 5f=F[m];5f--;){(14(d){1j[1c][d]=14(e){12(am.1u(e,"14")){9.2L=9.2L||[];9.2L.63({5m:d,f:e,5j:5l(9.2H||9.1o,d,e,9)})}13 9};1j[1c]["9m"+d]=14(E){11 i=9.2L,e=i[m];2N(e--){12(i[e].5m==d&&i[e].f==E){i[e].5j();i.2Y(e,1);!i.3v&&22 9.2L;13 9}}13 9}})(F[5f])}1j[1c].9n=14(e,d){13 9.5L(e).5M(d)};1j[1c].9p=14(e,d){13 9.9s(e).9t(d)};1I[1c].2p=14(d,i,e){13 O(9,d||0,i||0,e||0)};1I[1c].1M=14(d,R,e,i,E){13 5F(9,d||0,R||0,e||0,i||0,E||0)};1I[1c].2u=14(d,E,i,e){13 5D(9,d||0,E||0,i||0,e||0)};1I[1c].1s=14(d){d&&!am.1u(d,"2l")&&!am.1u(d[0],"2g")&&(d+=aq);13 q(am.2Z[1R](am,1f),9)};1I[1c].2i=14(E,d,R,e,i){13 o(9,E||"9u:9v",d||0,R||0,e||0,i||0)};1I[1c].1D=14(d,i,e){13 W(9,d||0,i||0,e||aq)};1I[1c].4U=14(d){1f[m]>1&&(d=6f[1c].2Y.1F(1f,0,1f[m]));13 1U Q(d)};1I[1c].9w=5B;1I[1c].1w=1I[1c].2e=1h;1I[1c].4H=am;14 v(){13 9.x+al+9.y}1j[1c].1J=14(a,b,E,e){12(a==1h&&b==1h){13{x:9.1t.2y,y:9.1t.2o,5a:v}}b=b||a;!+b&&(b=a);11 c,a5,a6,a4,1H=9.1e;12(a!=0){11 f=9.2J(),1b=f.x+f.18/2,R=f.y+f.1d/2,2D=a/9.1t.2y,2m=b/9.1t.2o;E=(+E||E==0)?E:1b;e=(+e||e==0)?e:R;11 g=~~(a/aa.2A(a)),15=~~(b/aa.2A(b)),1A=9.1o.1k,2k=E+(1b-E)*2D,2E=e+(R-e)*2m;2b(9.1p){17"1M":17"2i":11 h=1H.18*g*2D,a9=1H.1d*15*2m;9.1V({1d:a9,r:1H.r*aF(g*2D,15*2m),18:h,x:2k-h/2,y:2E-a9/2});1a;17"2p":17"2u":9.1V({2z:1H.2z*g*2D,2t:1H.2t*15*2m,r:1H.r*aF(g*2D,15*2m),1Q:2k,1Y:2E});1a;17"1s":11 i=ac(1H.1s),3k=27;1i(11 j=0,a8=i[m];j<a8;j++){11 k=i[j],26,S=3V.1F(k[0]);12(S=="M"&&3k){4N}1n{3k=3o}12(S=="A"){k[i[j][m]-2]*=2D;k[i[j][m]-1]*=2m;k[1]*=g*2D;k[2]*=15*2m;k[5]=+(g+15?!!+k[5]:!+k[5])}1n{12(S=="H"){1i(26=1,3A=k[m];26<3A;26++){k[26]*=2D}}1n{12(S=="V"){1i(26=1,3A=k[m];26<3A;26++){k[26]*=2m}}1n{1i(26=1,3A=k[m];26<3A;26++){k[26]*=(26%2)?2D:2m}}}}}11 d=T(i),c=2k-d.x-d.18/2,a5=2E-d.y-d.1d/2;i[0][1]+=c;i[0][2]+=a5;9.1V({1s:i});1a}12(9.1p 1y{1D:1,2i:1}&&(g!=1||15!=1)){12(9.2Q){9.2Q[2]="1J("[21](g,",",15,")");9.1o[w]("45",9.2Q[aw](al));c=(g==-1)?-1H.x-(h||0):1H.x;a5=(15==-1)?-1H.y-(a9||0):1H.y;9.1V({x:c,y:a5});1H.48=g-1;1H.47=15-1}1n{9.1o.3R=" 6j:6h.6g.9x(9y="[21](g,", 9z=0, 9A=0, 9B=",15,", 9C=0, 9D=0, 9E=\'9F 9G\', 9H=\'9I\')");1A.4T=(9.1o.3R||aq)+(9.1o.4w||aq)}}1n{12(9.2Q){9.2Q[2]=aq;9.1o[w]("45",9.2Q[aw](al));1H.48=0;1H.47=0}1n{9.1o.3R=aq;1A.4T=(9.1o.3R||aq)+(9.1o.4w||aq)}}1H.1J=[a,b,E,e][aw](al);9.1t.2y=a;9.1t.2o=b}13 9};1j[1c].9J=14(){11 d=9.1V();22 d.1J;22 d.2C;13 9.1x[9.1p]().1V(d)};11 4O=14(d,e){13 14(S){12(9.1p!="1s"){13-1}11 a=H(9.1e.1s),a1,a0,E,15,R="",a5={},19=0;1i(11 b=0,a3=a.3v;b<a3;b++){E=a[b];12(E[0]=="M"){a1=+E[1];a0=+E[2]}1n{15=n(a1,a0,E[1],E[2],E[3],E[4],E[5],E[6]);12(19+15>S){12(e&&!a5.2a){11 c=am.4F(a1,a0,E[1],E[2],E[3],E[4],E[5],E[6],(S-19)/15);R+=["C",c.2a.x,c.2a.y,c.m.x,c.m.y,c.x,c.y];a5.2a=R;R=["M",c.x,c.y,"C",c.n.x,c.n.y,c.3U.x,c.3U.y,E[5],E[6]][aw]();19+=15;a1=+E[5];a0=+E[6];4N}12(!d&&!e){13 am.4F(a1,a0,E[1],E[2],E[3],E[4],E[5],E[6],(S-19)/15)}}19+=15;a1=+E[5];a0=+E[6]}R+=E}a5.3U=R;13 d?19:e?a5:am.4F(a1,a0,E[1],E[2],E[3],E[4],E[5],E[6],1)}},n=ai(14(E,d,a,S,b,c,f,g){11 R={x:0,y:0},19=0;1i(11 h=0;h<1.6c;h+=0.6c){11 e=L(E,d,a,S,b,c,f,g,h);h&&(19+=aa.3b(1K(R.x-e.x,2)+1K(R.y-e.y,2)));R=e}13 19});1j[1c].3O=4O(1);1j[1c].4G=4O();1j[1c].9K=4O(0,1);am.5d={4e:14(d){13 d},"<":14(d){13 1K(d,3)},">":14(d){13 1K(d-1,3)+1},"<>":14(d){d=d*2;12(d<1){13 1K(d,3)/2}d-=2;13(1K(d,3)+2)/2},9L:14(e){11 d=1.6m;13 e*e*((d+1)*e-d)},9M:14(e){e=e-1;11 d=1.6m;13 e*e*((d+1)*e+d)+1},9N:14(i){12(i==0||i==1){13 i}11 e=0.3,d=e/4;13 1K(2,-10*i)*aa.3f((i-d)*(2*aa.3T)/e)+1},9O:14(E){11 e=7.9P,i=2.75,d;12(E<(1/i)){d=e*E*E}1n{12(E<(2/i)){E-=(1.5/i);d=e*E*E+0.75}1n{12(E<(2.5/i)){E-=(2.25/i);d=e*E*E+0.9Q}1n{E-=(2.9R/i);d=e*E*E+0.9S}}}13 d}};11 I={3v:0},5g=14(){11 a=+1U 6p;1i(11 b 1y I){12(b!="3v"&&I[P](b)){11 c=I[b];12(c.3s){22 I[b];I[m]--;4N}11 e=a-c.2a,a8=c.6q,a7=c.6r,1W=c.6s,a4=c.6t,E=c.4y,a3=c.t,a6=c.20||0,1b=c.5i,R=c.6z,a5={},d;12(e<a8){11 S=am.5d[a7]?am.5d[a7](e/a8):e/a8;1i(11 f 1y 1W){12(1W[P](f)){2b(Y[f]){17"3d":d=S*a8*a4[f];11 g=E[f].4G(d);1b.3h(a4.2y-a4.x||0,a4.2o-a4.y||0);a4.x=g.x;a4.y=g.y;1b.3h(g.x-a4.2y,g.y-a4.2o);E.3I&&1b.23(a4.r+g.5A,g.x,g.y);1a;17"5c":d=+1W[f]+S*a8*a4[f];1a;17"4L":d="4X("+[C(N(1W[f].r+S*a8*a4[f].r)),C(N(1W[f].g+S*a8*a4[f].g)),C(N(1W[f].b+S*a8*a4[f].b))][aw](",")+")";1a;17"1s":d=[];1i(11 h=0,a2=1W[f][m];h<a2;h++){d[h]=[1W[f][h][0]];1i(11 i=1,26=1W[f][h][m];i<26;i++){d[h][i]=+1W[f][h][i]+S*a8*a4[f][h][i]}d[h]=d[h][aw](al)}d=d[aw](al);1a;17"3C":2b(f){17"2C":11 j=a4[f][0]*(e-a6),a0=a4[f][1]*(e-a6);a3.x+=j;a3.y+=a0;d=j+al+a0;1a;17"2f":d=+1W[f][0]+S*a8*a4[f][0];1W[f][1]&&(d+=","+1W[f][1]+","+1W[f][2]);1a;17"1J":d=[+1W[f][0]+S*a8*a4[f][0],+1W[f][1]+S*a8*a4[f][1],(2 1y E[f]?E[f][2]:aq),(3 1y E[f]?E[f][3]:aq)][aw](al);1a;17"1P-1M":d=[];11 h=4;2N(h--){d[h]=+1W[f][h]+S*a8*a4[f][h]}1a}1a}a5[f]=d}}1b.1V(a5);1b.5p&&1b.5p.1F(1b)}1n{12(E.3d){11 g=E.3d.4G(E.3d.3O());1b.3h(a4.2y-(a4.x||0)+g.x-a4.2y,a4.2o-(a4.y||0)+g.y-a4.2o);E.3I&&1b.23(a4.r+g.5A,g.x,g.y)}(a3.x||a3.y)&&1b.3h(-a3.x,-a3.y);E.1J&&(E.1J=E.1J+aq);1b.1V(E);22 I[b];I[m]--;1b.6E=1h;am.1u(R,"14")&&R.1F(1b)}c.20=e}}am.3j&&1b&&1b.1x.4s();I[m]&&5P(5g)},C=14(d){13 d>2s?2s:(d<0?0:d)},u=14(d,i){12(d==1h){13{x:9.1t.3X,y:9.1t.44,5a:v}}9.1t.3X+=+d;9.1t.44+=+i;2b(9.1p){17"2p":17"2u":9.1V({1Q:+d+9.1e.1Q,1Y:+i+9.1e.1Y});1a;17"1M":17"2i":17"1D":9.1V({x:+d+9.1e.x,y:+i+9.1e.y});1a;17"1s":11 e=ac(9.1e.1s);e[0][1]+=+d;e[0][2]+=+i;9.1V({1s:e});1a}13 9};1j[1c].6F=14(e,i,d,R,E){I[e.2h]&&(i.2a=I[e.2h].2a);13 9.4g(i,d,R,E)};1j[1c].9T=14(E,e,d,S){11 R={};am.1u(d,"14")?(S=d):(R.3I=d);12(am.1u(E,"2l")&&E.3N!=1j){E=r.1s(E).1V({1g:"1C"});11 i=14(){E.3H()};S=am.1u(S,"14")?14(){i();S.1F(9)}:i}E.3N==1j&&(R.3d=E);13 9.4g(R,e,S)};1j[1c].9U=14(d){9.5p=d||0;13 9};1j[1c].4g=14(b,c,f,E){12(am.1u(f,"14")||!f){E=f||1h}11 g={},e={},1b={};1i(11 h 1y b){12(b[P](h)){12(Y[P](h)){g[h]=9.1V(h);(g[h]==1h)&&(g[h]=j[h]);e[h]=b[h];2b(Y[h]){17"3d":11 i=b[h].4G(0);1b[h]=b[h].3O()/c;1b.3X=9.2J().x;1b.44=9.2J().y;1b.2y=i.x;1b.2o=i.y;e.3I=b.3I;b.3I&&(1b.r=V(9.23()));1a;17"5c":1b[h]=(e[h]-g[h])/c;1a;17"4L":g[h]=am.2P(g[h]);11 k=am.2P(e[h]);1b[h]={r:(k.r-g[h].r)/c,g:(k.g-g[h].g)/c,b:(k.b-g[h].b)/c};1a;17"1s":11 R=H(g[h],e[h]);g[h]=R[0];11 l=R[1];1b[h]=[];1i(11 n=0,15=g[h][m];n<15;n++){1b[h][n]=[0];1i(11 o=1,a8=g[h][n][m];o<a8;o++){1b[h][n][o]=(l[n][o]-g[h][n][o])/c}}1a;17"3C":11 d=(b[h]+aq)[A](a),S=(g[h]+aq)[A](a);2b(h){17"2C":g[h]=[0,0];1b[h]=[d[0]/c,d[1]/c];1a;17"2f":g[h]=(S[1]==d[1]&&S[2]==d[2])?S:[0,d[1],d[2]];1b[h]=[(d[0]-g[h][0])/c,0,0];1a;17"1J":b[h]=d;g[h]=(g[h]+aq)[A](a);1b[h]=[(d[0]-g[h][0])/c,(d[1]-g[h][1])/c,0,0];1a;17"1P-1M":g[h]=(g[h]+aq)[A](a);1b[h]=[];11 n=4;2N(n--){1b[h][n]=(d[n]-g[h][n])/c}1a}e[h]=d}}}}9.3s();9.6E=1;I[9.2h]={2a:b.2a||+1U 6p,6q:c,6r:f,6s:g,6t:1b,4y:e,5i:9,6z:E,t:{x:0,y:0}};++I[m]==1&&5g();13 9};1j[1c].3s=14(){I[9.2h]&&I[m]--;22 I[9.2h];13 9};1j[1c].3h=14(d,e){13 9.1V({2C:d+" "+e})};1j[1c][ax]=14(){13"3K\\3J\\9V 2R"};am.ae=I;11 Q=14(d){9.1T=[];9[m]=0;12(d){1i(11 e=0,E=d[m];e<E;e++){12(d[e]&&(d[e].3N==1j||d[e].3N==Q)){9[9.1T[m]]=9.1T[9.1T[m]]=d[e];9[m]++}}}};Q[1c][f]=14(){11 R,d;1i(11 e=0,E=1f[m];e<E;e++){R=1f[e];12(R&&(R.3N==1j||R.3N==Q)){d=9.1T[m];9[d]=9.1T[d]=R;9[m]++}}13 9};Q[1c].6M=14(){22 9[9[m]--];13 9.1T.6M()};1i(11 z 1y 1j[1c]){12(1j[1c][P](z)){Q[1c][z]=(14(d){13 14(){1i(11 e=0,E=9.1T[m];e<E;e++){9.1T[e][d][1R](9.1T[e],1f)}13 9}})(z)}}Q[1c].1V=14(e,a){12(e&&am.1u(e,"2g")&&am.1u(e[0],"2R")){1i(11 d=0,S=e[m];d<S;d++){9.1T[d].1V(e[d])}}1n{1i(11 E=0,R=9.1T[m];E<R;E++){9.1T[E].1V[1R](9.1T[E],1f)}}13 9};Q[1c].4g=14(S,e,a,b){(am.1u(a,"14")||!a)&&(b=a||1h);11 d=9.1T[m],E=d,15=9,R;b&&(R=14(){!--d&&b.1F(15)});9.1T[--E].4g(S,e,a||R,R);2N(E--){9.1T[E].6F(9.1T[d-1],S,e,a||R,R)}13 9};Q[1c].4q=14(e){11 d=9.1T[m];2N(d--){9.1T[d].4q(e)}13 9};Q[1c].2J=14(){11 d=[],15=[],e=[],R=[];1i(11 E=9.1T[m];E--;){11 S=9.1T[E].2J();d[f](S.x);15[f](S.y);e[f](S.x+S.18);R[f](S.y+S.1d)}d=aF[1R](0,d);15=aF[1R](0,15);13{x:d,y:15,18:g[1R](0,e)-d,1d:g[1R](0,R)-15}};am.9W=14(e){12(!e.29){13 e}9.2U=9.2U||{};11 E={w:e.w,29:{},3c:{}},i=e.29["1v-3L"];1i(11 b 1y e.29){12(e.29[P](b)){E.29[b]=e.29[b]}}12(9.2U[i]){9.2U[i][f](E)}1n{9.2U[i]=[E]}12(!e.3j){E.29["5x-5y-5z"]=G(e.29["5x-5y-5z"],10);1i(11 R 1y e.3c){12(e.3c[P](R)){11 S=e.3c[R];E.3c[R]={w:S.w,k:{},d:S.d&&"M"+S.d[1L](/[9X]/g,14(a){13{l:"L",c:"C",x:"z",t:"m",r:"l",v:"c"}[a]||"M"})+"z"};12(S.k){1i(11 d 1y S.k){12(S[P](d)){E.3c[R].k[d]=S.k[d]}}}}}}13 e};1I[1c].6T=14(a,b,e,R){R=R||"4v";e=e||"4v";b=+b||{4v:5o,9Y:9Z,ab:ad,af:ah}[b]||5o;11 S=am.2U[a];12(!S){11 E=1U as("(^|\\\\s)"+a[1L](/[^\\w\\d\\s+!~.:1t-]/g,aq)+"(\\\\s|$)","i");1i(11 d 1y am.2U){12(am.2U[P](d)){12(E.58(d)){S=am.2U[d];1a}}}}11 c;12(S){1i(11 f=0,a1=S[m];f<a1;f++){c=S[f];12(c.29["1v-30"]==b&&(c.29["1v-1k"]==e||!c.29["1v-1k"])&&c.29["1v-av"]==R){1a}}}13 c};1I[1c].ay=14(R,E,d,b,c,g){g=g||"4o";11 h=9.4U(),a7=(d+aq)[A](aq),a5=0,a1=aq,a9;am.1u(b,"2l")&&(b=9.6T(b));12(b){a9=(c||16)/b.29["5x-5y-5z"];11 e=b.29.aA.5Y(a),15=+e[0],a0=+e[1]+(g=="aB"?e[3]-e[1]+(+b.29.aC):(e[3]-e[1])/2);1i(11 i=0,S=a7[m];i<S;i++){11 j=i&&b.3c[a7[i-1]]||{},a6=b.3c[a7[i]];a5+=i?(j.w||b.w)+(j.k&&j.k[a7[i]]||0):0;a6&&a6.d&&h[f](9.1s(a6.d).1V({1m:"#2n",1g:"1C",2C:[a5,0]}))}h.1J(a9,a9,15,a0).3h(R-15,E-a0)}13 h};am.2Z=14(i){11 e=am.1u(1f[1],"2g")?[0][21](1f[1]):1f,d=/\\{(\\d+)\\}/g;i&&am.1u(i,"2l")&&e[m]-1&&(i=i[1L](d,14(R,E){13 e[++E]==1h?aq:e[E]}));13 i||aq};am.aE=14(){11 i=ar.32,d;12(l.6J){ar.32=l.1u}1n{41{22 ar.32}4h(E){ar.32=d}}13 i};am.5i=1j[1c];13 am})();'
,
62
,
662
,
'|||||||||this||||||||||||||||||||||||||||||||||||||||||||||||||||||var|if|return|function|aX||case|width|aZ|break|aY|aV|height|attrs|arguments|stroke|null|for|bz|style|px|fill|else|node|type|aI|aG|path|_|is|font|top|paper|in|opacity|ba|rt|none|text|canvas|call|parentNode|bj|aQ|scale|aJ|aM|rect|Group|removed|clip|cx|aT|gradient|items|new|attr|bc|left|cy|next|prev|aP|delete|rotate|deg||bf|true|color|face|start|switch|coordsize|coordorigin|bottom|rotation|array|id|image|firstChild|bl|string|bh|000|sy|circle|absolute|on|255|ry|ellipse|position|removeChild|span|sx|rx|abs|insertBefore|translation|bi|bk|hex|cssText|shape|offset|getBBox|src|events|aW|while|default|getRGB|transformations|object|dasharray|toFixed|fonts|setBox|size|createElement|splice|format|weight|charAt|Raphael|bx|linecap|body||180||by|url|sqrt|glyphs|along|href|sin|display|translate|bg|svg|be|qy|qx|container|false|bu|aR|getElementsByTagName|stop|cos|xlink|length|VML|rvml|arcsize|match|jj|cursor|csv|title|vml|br|group|remove|rot|xebl|Rapha|family|pattern|constructor|getTotalLength|1000|error|filterMatrix|_path2string|PI|end|aK|substring|tx|http|bd|slice|try|defs|clipRect|ty|transform|linejoin|fy|fx|aU|getColor|miterlimit|bw|radial|linear|undefined|animate|catch|target|max|document|anchor|www|_id|middle|hsb2rgb|insertAfter|butt|safari|100|setAttributeNS|normal|filterOpacity|min|to|parsePathString|nextSibling|version|SVG|1000000000000|9999px|findDotsAtSegment|getPointAtLength|raphael|w3|org|offsetHeight|colour|offsetWidth|continue|bH|shift|bo|getElementById|div|filter|set|round|hs|rgb|align|bbx|bt|throw|bv|bn|bp||Error|bm|test|are|toString|innerHTML|number|easing_formulas|bq|bG|aO|com|el|unbind|hide|bF|name|show|400|_run|clmz|bb|aH|desc|clear|_oid|fn|units|per|em|alpha|bD|ig|bB|square|bA|join|textpath|line|navigator|margin|mouseover|mouseout|padding|class|setTimeout|microsoft|schemas|urn|namespaces|String|oval|attachEvent|roundrect|split|bC||inline|asin|push|colors|10e9|fontStyle|indexOf|tagName|fontWeight|fontSize|count|01|cache|fontFamily|Array|Microsoft|DXImageTransform|gi|progid|bs|method|70158|fff|svgns|Date|ms|easing|from|diff|2000|tspan|getPropertyValue|getComputedStyle|defaultView|callback|Your|browser|nYou|running|in_animation|animateWith|Arial|isNaN|bE|was|xmlns|342|pop|512|found|not|toBack|toFront|getAttribute|getFont|typeof|9999em|createTextNode|aL|dy|window|addEventListener|setWindow|ActiveXObject|htmlfile|write||close|createPopup|createTextRange|queryCommandValue|ForeColor|65280|16711680|000000|Colour|childNodes|endif|Picker|rgb2hsb|achlmqrstvxz|u25ba|rg|075|reset|achlmqstvz|BasicStructure|feature|SVG11|TR|atan|120|hasFeature|implementation|SVGAngle|0dev|tan|replace|pixelWidth|pixelHeight|you|calling|u201c|u201d|of|1999|createElementNS|_blank|supports|00001|Gradient|x1|y1|x2|y2|fillOpacity|patternTransform|Paper|clipPath|strokeWidth|patternUnits|userSpaceOnUse|img|M0|onload|raphaeljs|isFinite|finally|Infinity|getNumberOfChars|getExtentOfChar|preserveAspectRatio|Created|with|ahqtv|doesn|u2019t|support|10px|Falling|down|isAbsolute|Path|Alpha|tile|solid|joinstyle|miter|endcap|flat|shortdash|toUpperCase|shortdot|parseInt|shortdashdot|parseFloat|shortdashdotdot|setAttribute|dot|dash|longdash|dashdot|longdashdot|longdashdotdot|dashstyle|right|center|gradientradial|da|color2|value|pow|focus|aN|Object|focussize|focusposition|angle|270|360|block|textpathok|createStyleSheet|Math|addRule||toLowerCase|behavior|add|prototype|overflow|hidden|Apple|Google||hasOwnProperty|vendor|mouseup|userAgent|Version|mousemove|mousedown|dblclick|click|removeEventListener|event|detachEvent|un|hover|concat|unhover|apply|appendChild|unmouseover|unmouseout|about|blank|setSize|Matrix|M11|M12|M21|M22|Dx|Dy|sizingmethod|auto|expand|filtertype|bilinear|clone|getSubpathToLength|backIn|backOut|elastic|bounce|5625|9375|625|984375|animateAlong|onAnimation|u2019s|registerFont|mlcxtrv|bold|700||||||||||||lighter||300||bolder||800|||||||||||RegExp|||stretch|||print||bbox|baseline|descent||ninja|'
.
split
(
'|'
),
0
,{}))
\ No newline at end of file
raphael.js
View file @
c4bf67d1
...
@@ -59,7 +59,7 @@ window.Raphael = (function () {
...
@@ -59,7 +59,7 @@ window.Raphael = (function () {
toInt
=
parseInt
,
toInt
=
parseInt
,
upperCase
=
String
[
proto
].
toUpperCase
,
upperCase
=
String
[
proto
].
toUpperCase
,
availableAttrs
=
{
"clip-rect"
:
"0 0 10e9 10e9"
,
cursor
:
"default"
,
cx
:
0
,
cy
:
0
,
fill
:
"#fff"
,
"fill-opacity"
:
1
,
font
:
'10px "Arial"'
,
"font-family"
:
'"Arial"'
,
"font-size"
:
"10"
,
"font-style"
:
"normal"
,
"font-weight"
:
400
,
gradient
:
0
,
height
:
0
,
href
:
"http://raphaeljs.com/"
,
opacity
:
1
,
path
:
"M0,0"
,
r
:
0
,
rotation
:
0
,
rx
:
0
,
ry
:
0
,
scale
:
"1 1"
,
src
:
""
,
stroke
:
"#000"
,
"stroke-dasharray"
:
""
,
"stroke-linecap"
:
"butt"
,
"stroke-linejoin"
:
"butt"
,
"stroke-miterlimit"
:
0
,
"stroke-opacity"
:
1
,
"stroke-width"
:
1
,
target
:
"_blank"
,
"text-anchor"
:
"middle"
,
title
:
"Raphael"
,
translation
:
"0 0"
,
width
:
0
,
x
:
0
,
y
:
0
},
availableAttrs
=
{
"clip-rect"
:
"0 0 10e9 10e9"
,
cursor
:
"default"
,
cx
:
0
,
cy
:
0
,
fill
:
"#fff"
,
"fill-opacity"
:
1
,
font
:
'10px "Arial"'
,
"font-family"
:
'"Arial"'
,
"font-size"
:
"10"
,
"font-style"
:
"normal"
,
"font-weight"
:
400
,
gradient
:
0
,
height
:
0
,
href
:
"http://raphaeljs.com/"
,
opacity
:
1
,
path
:
"M0,0"
,
r
:
0
,
rotation
:
0
,
rx
:
0
,
ry
:
0
,
scale
:
"1 1"
,
src
:
""
,
stroke
:
"#000"
,
"stroke-dasharray"
:
""
,
"stroke-linecap"
:
"butt"
,
"stroke-linejoin"
:
"butt"
,
"stroke-miterlimit"
:
0
,
"stroke-opacity"
:
1
,
"stroke-width"
:
1
,
target
:
"_blank"
,
"text-anchor"
:
"middle"
,
title
:
"Raphael"
,
translation
:
"0 0"
,
width
:
0
,
x
:
0
,
y
:
0
},
availableAnimAttrs
=
{
"clip-rect"
:
"csv"
,
cx
:
nu
,
cy
:
nu
,
fill
:
"colour"
,
"fill-opacity"
:
nu
,
"font-size"
:
nu
,
height
:
nu
,
opacity
:
nu
,
path
:
"path"
,
r
:
nu
,
rotation
:
"csv"
,
rx
:
nu
,
ry
:
nu
,
scale
:
"csv"
,
stroke
:
"colour"
,
"stroke-opacity"
:
nu
,
"stroke-width"
:
nu
,
translation
:
"csv"
,
width
:
nu
,
x
:
nu
,
y
:
nu
},
availableAnimAttrs
=
{
along
:
"along"
,
"clip-rect"
:
"csv"
,
cx
:
nu
,
cy
:
nu
,
fill
:
"colour"
,
"fill-opacity"
:
nu
,
"font-size"
:
nu
,
height
:
nu
,
opacity
:
nu
,
path
:
"path"
,
r
:
nu
,
rotation
:
"csv"
,
rx
:
nu
,
ry
:
nu
,
scale
:
"csv"
,
stroke
:
"colour"
,
"stroke-opacity"
:
nu
,
"stroke-width"
:
nu
,
translation
:
"csv"
,
width
:
nu
,
x
:
nu
,
y
:
nu
},
rp
=
"replace"
;
rp
=
"replace"
;
R
.
version
=
"1.3.0dev"
;
R
.
version
=
"1.3.0dev"
;
R
.
type
=
(
win
.
SVGAngle
||
doc
.
implementation
.
hasFeature
(
"http://www.w3.org/TR/SVG11/feature#BasicStructure"
,
"1.1"
)
?
"SVG"
:
"VML"
);
R
.
type
=
(
win
.
SVGAngle
||
doc
.
implementation
.
hasFeature
(
"http://www.w3.org/TR/SVG11/feature#BasicStructure"
,
"1.1"
)
?
"SVG"
:
"VML"
);
...
@@ -337,7 +337,8 @@ window.Raphael = (function () {
...
@@ -337,7 +337,8 @@ window.Raphael = (function () {
ay
=
(
1
-
t
)
*
p1y
+
t
*
c1y
,
ay
=
(
1
-
t
)
*
p1y
+
t
*
c1y
,
cx
=
(
1
-
t
)
*
c2x
+
t
*
p2x
,
cx
=
(
1
-
t
)
*
c2x
+
t
*
p2x
,
cy
=
(
1
-
t
)
*
c2y
+
t
*
p2y
,
cy
=
(
1
-
t
)
*
c2y
+
t
*
p2y
,
alpha
=
(
90
-
math
.
atan
((
mx
-
nx
)
/
(
my
-
ny
))
*
180
/
math
.
PI
)
%
360
;
alpha
=
(
90
-
math
.
atan
((
mx
-
nx
)
/
(
my
-
ny
))
*
180
/
math
.
PI
);
(
mx
>
nx
||
my
<
ny
)
&&
(
alpha
+=
180
);
return
{
x
:
x
,
y
:
y
,
m
:
{
x
:
mx
,
y
:
my
},
n
:
{
x
:
nx
,
y
:
ny
},
start
:
{
x
:
ax
,
y
:
ay
},
end
:
{
x
:
cx
,
y
:
cy
},
alpha
:
alpha
};
return
{
x
:
x
,
y
:
y
,
m
:
{
x
:
mx
,
y
:
my
},
n
:
{
x
:
nx
,
y
:
ny
},
start
:
{
x
:
ax
,
y
:
ay
},
end
:
{
x
:
cx
,
y
:
cy
},
alpha
:
alpha
};
};
};
var
pathDimensions
=
cacher
(
function
(
path
)
{
var
pathDimensions
=
cacher
(
function
(
path
)
{
...
@@ -1479,8 +1480,7 @@ window.Raphael = (function () {
...
@@ -1479,8 +1480,7 @@ window.Raphael = (function () {
if
(
this
.
removed
)
{
if
(
this
.
removed
)
{
return
this
;
return
this
;
}
}
var
svg
=
this
.
paper
,
var
node
=
element
.
node
;
node
=
element
.
node
;
if
(
node
.
nextSibling
)
{
if
(
node
.
nextSibling
)
{
node
.
parentNode
.
insertBefore
(
this
.
node
,
node
.
nextSibling
);
node
.
parentNode
.
insertBefore
(
this
.
node
,
node
.
nextSibling
);
}
else
{
}
else
{
...
@@ -1498,19 +1498,6 @@ window.Raphael = (function () {
...
@@ -1498,19 +1498,6 @@ window.Raphael = (function () {
insertbefore
(
this
,
element
,
this
.
paper
);
insertbefore
(
this
,
element
,
this
.
paper
);
return
this
;
return
this
;
};
};
// Element[proto].getTotalLength = function () {
// if (this.type != "path") {
// return -1;
// }
// return this.node.getTotalLength();
// };
// Element[proto].getPointAtLength = function (length) {
// if (this.type != "path") {
// return -1;
// }
// var point = this.node.getPointAtLength(length);
// return {x: point.x, y: point.y};
// };
var
theCircle
=
function
(
svg
,
x
,
y
,
r
)
{
var
theCircle
=
function
(
svg
,
x
,
y
,
r
)
{
x
=
round
(
x
);
x
=
round
(
x
);
y
=
round
(
y
);
y
=
round
(
y
);
...
@@ -2528,7 +2515,7 @@ window.Raphael = (function () {
...
@@ -2528,7 +2515,7 @@ window.Raphael = (function () {
case
"rect"
:
case
"rect"
:
case
"image"
:
case
"image"
:
var
neww
=
a
.
width
*
dirx
*
kx
,
var
neww
=
a
.
width
*
dirx
*
kx
,
h
ewh
=
a
.
height
*
diry
*
ky
;
n
ewh
=
a
.
height
*
diry
*
ky
;
this
.
attr
({
this
.
attr
({
height
:
newh
,
height
:
newh
,
r
:
a
.
r
*
mmin
(
dirx
*
kx
,
diry
*
ky
),
r
:
a
.
r
*
mmin
(
dirx
*
kx
,
diry
*
ky
),
...
@@ -2625,12 +2612,12 @@ window.Raphael = (function () {
...
@@ -2625,12 +2612,12 @@ window.Raphael = (function () {
delete
attr
.
translation
;
delete
attr
.
translation
;
return
this
.
paper
[
this
.
type
]().
attr
(
attr
);
return
this
.
paper
[
this
.
type
]().
attr
(
attr
);
};
};
var
getLengthFactory
=
function
(
istotal
)
{
var
getLengthFactory
=
function
(
istotal
,
subpath
)
{
return
function
(
length
)
{
return
function
(
length
)
{
if
(
this
.
type
!=
"path"
)
{
if
(
this
.
type
!=
"path"
)
{
return
-
1
;
return
-
1
;
}
}
var
path
=
path2curve
(
this
.
attrs
.
path
),
x
,
y
,
p
,
l
,
var
path
=
path2curve
(
this
.
attrs
.
path
),
x
,
y
,
p
,
l
,
sp
=
""
,
subpaths
=
{},
len
=
0
;
len
=
0
;
for
(
var
i
=
0
,
ii
=
path
.
length
;
i
<
ii
;
i
++
)
{
for
(
var
i
=
0
,
ii
=
path
.
length
;
i
<
ii
;
i
++
)
{
p
=
path
[
i
];
p
=
path
[
i
];
...
@@ -2639,18 +2626,32 @@ window.Raphael = (function () {
...
@@ -2639,18 +2626,32 @@ window.Raphael = (function () {
y
=
+
p
[
2
];
y
=
+
p
[
2
];
}
else
{
}
else
{
l
=
segmentLength
(
x
,
y
,
p
[
1
],
p
[
2
],
p
[
3
],
p
[
4
],
p
[
5
],
p
[
6
]);
l
=
segmentLength
(
x
,
y
,
p
[
1
],
p
[
2
],
p
[
3
],
p
[
4
],
p
[
5
],
p
[
6
]);
if
(
!
istotal
&&
len
+
l
>
length
)
{
if
(
len
+
l
>
length
)
{
return
R
.
findDotsAtSegment
(
x
,
y
,
p
[
1
],
p
[
2
],
p
[
3
],
p
[
4
],
p
[
5
],
p
[
6
],
(
length
-
len
)
/
l
);
if
(
subpath
&&
!
subpaths
.
start
)
{
var
point
=
R
.
findDotsAtSegment
(
x
,
y
,
p
[
1
],
p
[
2
],
p
[
3
],
p
[
4
],
p
[
5
],
p
[
6
],
(
length
-
len
)
/
l
);
sp
+=
[
"C"
,
point
.
start
.
x
,
point
.
start
.
y
,
point
.
m
.
x
,
point
.
m
.
y
,
point
.
x
,
point
.
y
];
subpaths
.
start
=
sp
;
sp
=
[
"M"
,
point
.
x
,
point
.
y
,
"C"
,
point
.
n
.
x
,
point
.
n
.
y
,
point
.
end
.
x
,
point
.
end
.
y
,
p
[
5
],
p
[
6
]][
join
]();
len
+=
l
;
x
=
+
p
[
5
];
y
=
+
p
[
6
];
continue
;
}
if
(
!
istotal
&&
!
subpath
)
{
return
R
.
findDotsAtSegment
(
x
,
y
,
p
[
1
],
p
[
2
],
p
[
3
],
p
[
4
],
p
[
5
],
p
[
6
],
(
length
-
len
)
/
l
);
}
}
}
len
+=
l
;
len
+=
l
;
x
=
+
p
[
5
];
x
=
+
p
[
5
];
y
=
+
p
[
6
];
y
=
+
p
[
6
];
}
}
sp
+=
p
;
}
}
return
istotal
?
len
:
R
.
findDotsAtSegment
(
x
,
y
,
p
[
1
],
p
[
2
],
p
[
3
],
p
[
4
],
p
[
5
],
p
[
6
],
1
);
subpaths
.
end
=
sp
;
return
istotal
?
len
:
subpath
?
subpaths
:
R
.
findDotsAtSegment
(
x
,
y
,
p
[
1
],
p
[
2
],
p
[
3
],
p
[
4
],
p
[
5
],
p
[
6
],
1
);
};
};
},
},
segmentLength
=
function
(
p1x
,
p1y
,
c1x
,
c1y
,
c2x
,
c2y
,
p2x
,
p2y
)
{
segmentLength
=
cacher
(
function
(
p1x
,
p1y
,
c1x
,
c1y
,
c2x
,
c2y
,
p2x
,
p2y
)
{
var
old
=
{
x
:
0
,
y
:
0
},
var
old
=
{
x
:
0
,
y
:
0
},
len
=
0
;
len
=
0
;
for
(
var
i
=
0
;
i
<
1.01
;
i
+=
.
01
)
{
for
(
var
i
=
0
;
i
<
1.01
;
i
+=
.
01
)
{
...
@@ -2659,9 +2660,10 @@ window.Raphael = (function () {
...
@@ -2659,9 +2660,10 @@ window.Raphael = (function () {
old
=
dot
;
old
=
dot
;
}
}
return
len
;
return
len
;
};
}
)
;
Element
[
proto
].
getTotalLength
=
getLengthFactory
(
1
);
Element
[
proto
].
getTotalLength
=
getLengthFactory
(
1
);
Element
[
proto
].
getPointAtLength
=
getLengthFactory
();
Element
[
proto
].
getPointAtLength
=
getLengthFactory
();
Element
[
proto
].
getSubpathToLength
=
getLengthFactory
(
0
,
1
);
// animation easing formulas
// animation easing formulas
R
.
easing_formulas
=
{
R
.
easing_formulas
=
{
...
@@ -2749,6 +2751,15 @@ window.Raphael = (function () {
...
@@ -2749,6 +2751,15 @@ window.Raphael = (function () {
var
pos
=
R
.
easing_formulas
[
easing
]
?
R
.
easing_formulas
[
easing
](
time
/
ms
)
:
time
/
ms
;
var
pos
=
R
.
easing_formulas
[
easing
]
?
R
.
easing_formulas
[
easing
](
time
/
ms
)
:
time
/
ms
;
for
(
var
attr
in
from
)
if
(
from
[
has
](
attr
))
{
for
(
var
attr
in
from
)
if
(
from
[
has
](
attr
))
{
switch
(
availableAnimAttrs
[
attr
])
{
switch
(
availableAnimAttrs
[
attr
])
{
case
"along"
:
now
=
pos
*
ms
*
diff
[
attr
];
var
point
=
to
[
attr
].
getPointAtLength
(
now
);
that
.
translate
(
diff
.
sx
-
diff
.
x
||
0
,
diff
.
sy
-
diff
.
y
||
0
);
diff
.
x
=
point
.
x
;
diff
.
y
=
point
.
y
;
that
.
translate
(
point
.
x
-
diff
.
sx
,
point
.
y
-
diff
.
sy
);
to
.
rot
&&
that
.
rotate
(
diff
.
r
+
point
.
alpha
,
point
.
x
,
point
.
y
);
break
;
case
"number"
:
case
"number"
:
now
=
+
from
[
attr
]
+
pos
*
ms
*
diff
[
attr
];
now
=
+
from
[
attr
]
+
pos
*
ms
*
diff
[
attr
];
break
;
break
;
...
@@ -2801,6 +2812,11 @@ window.Raphael = (function () {
...
@@ -2801,6 +2812,11 @@ window.Raphael = (function () {
that
.
attr
(
set
);
that
.
attr
(
set
);
that
.
_run
&&
that
.
_run
.
call
(
that
);
that
.
_run
&&
that
.
_run
.
call
(
that
);
}
else
{
}
else
{
if
(
to
.
along
)
{
var
point
=
to
.
along
.
getPointAtLength
(
to
.
along
.
getTotalLength
());
that
.
translate
(
diff
.
sx
-
(
diff
.
x
||
0
)
+
point
.
x
-
diff
.
sx
,
diff
.
sy
-
(
diff
.
y
||
0
)
+
point
.
y
-
diff
.
sy
);
to
.
rot
&&
that
.
rotate
(
diff
.
r
+
point
.
alpha
,
point
.
x
,
point
.
y
);
}
(
t
.
x
||
t
.
y
)
&&
that
.
translate
(
-
t
.
x
,
-
t
.
y
);
(
t
.
x
||
t
.
y
)
&&
that
.
translate
(
-
t
.
x
,
-
t
.
y
);
to
.
scale
&&
(
to
.
scale
=
to
.
scale
+
E
);
to
.
scale
&&
(
to
.
scale
=
to
.
scale
+
E
);
that
.
attr
(
to
);
that
.
attr
(
to
);
...
@@ -2811,7 +2827,7 @@ window.Raphael = (function () {
...
@@ -2811,7 +2827,7 @@ window.Raphael = (function () {
}
}
e
.
prev
=
time
;
e
.
prev
=
time
;
}
}
R
.
svg
&&
that
.
paper
.
safari
();
R
.
svg
&&
that
&&
that
.
paper
.
safari
();
animationElements
[
length
]
&&
setTimeout
(
animation
);
animationElements
[
length
]
&&
setTimeout
(
animation
);
},
},
upto255
=
function
(
color
)
{
upto255
=
function
(
color
)
{
...
@@ -2846,8 +2862,21 @@ window.Raphael = (function () {
...
@@ -2846,8 +2862,21 @@ window.Raphael = (function () {
animationElements
[
element
.
id
]
&&
(
params
.
start
=
animationElements
[
element
.
id
].
start
);
animationElements
[
element
.
id
]
&&
(
params
.
start
=
animationElements
[
element
.
id
].
start
);
return
this
.
animate
(
params
,
ms
,
easing
,
callback
);
return
this
.
animate
(
params
,
ms
,
easing
,
callback
);
};
};
Element
[
proto
].
animateAlong
=
function
(
path
,
ms
,
rotate
,
callback
)
{
var
params
=
{};
R
.
is
(
rotate
,
"function"
)
?
(
callback
=
rotate
)
:
(
params
.
rot
=
rotate
);
if
(
R
.
is
(
path
,
"string"
)
&&
path
.
constructor
!=
Element
)
{
path
=
r
.
path
(
path
).
attr
({
stroke
:
"none"
});
var
f
=
function
()
{
path
.
remove
();
};
callback
=
R
.
is
(
callback
,
"function"
)
?
function
()
{
f
();
callback
.
call
(
this
);
}
:
f
;
}
path
.
constructor
==
Element
&&
(
params
.
along
=
path
);
return
this
.
animate
(
params
,
ms
,
callback
);
};
Element
[
proto
].
onAnimation
=
function
(
f
)
{
Element
[
proto
].
onAnimation
=
function
(
f
)
{
this
.
_run
=
f
||
null
;
this
.
_run
=
f
||
0
;
return
this
;
return
this
;
};
};
Element
[
proto
].
animate
=
function
(
params
,
ms
,
easing
,
callback
)
{
Element
[
proto
].
animate
=
function
(
params
,
ms
,
easing
,
callback
)
{
...
@@ -2863,6 +2892,17 @@ window.Raphael = (function () {
...
@@ -2863,6 +2892,17 @@ window.Raphael = (function () {
(
from
[
attr
]
==
null
)
&&
(
from
[
attr
]
=
availableAttrs
[
attr
]);
(
from
[
attr
]
==
null
)
&&
(
from
[
attr
]
=
availableAttrs
[
attr
]);
to
[
attr
]
=
params
[
attr
];
to
[
attr
]
=
params
[
attr
];
switch
(
availableAnimAttrs
[
attr
])
{
switch
(
availableAnimAttrs
[
attr
])
{
case
"along"
:
var
point
=
params
[
attr
].
getPointAtLength
(
0
),
bb
=
this
.
getBBox
();
diff
[
attr
]
=
params
[
attr
].
getTotalLength
()
/
ms
;
diff
.
tx
=
bb
.
x
;
diff
.
ty
=
bb
.
y
;
diff
.
sx
=
point
.
x
;
diff
.
sy
=
point
.
y
;
to
.
rot
=
params
.
rot
;
params
.
rot
&&
(
diff
.
r
=
toFloat
(
this
.
rotate
()));
break
;
case
"number"
:
case
"number"
:
diff
[
attr
]
=
(
to
[
attr
]
-
from
[
attr
])
/
ms
;
diff
[
attr
]
=
(
to
[
attr
]
-
from
[
attr
])
/
ms
;
break
;
break
;
...
...
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