Python SDK for IoT Data Exchange & Analytics Middleware
Project description
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
P
y
t
h
o
n
S
D
K
f
o
r
I
o
T
D
a
t
a
E
x
c
h
a
n
g
e
&
A
n
a
l
y
t
i
c
s
M
i
d
d
l
e
w
a
r
e
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
K
e
y
F
e
a
t
u
r
e
s
=
=
=
=
=
=
=
=
=
=
=
=
-
S
u
p
p
o
r
t
s
I
o
T
e
n
t
i
t
i
e
s
t
o
r
e
g
i
s
t
e
r
,
p
u
b
l
i
s
h
,
s
u
b
s
c
r
i
b
e
,
a
c
c
e
s
s
h
i
s
t
o
r
i
c
a
l
d
a
t
a
.
-
S
u
p
p
o
r
t
s
a
s
y
n
c
h
r
o
n
o
u
s
a
c
c
e
s
s
o
f
d
a
t
a
f
r
o
m
t
h
e
e
n
t
i
t
y
.
G
e
t
t
i
n
g
s
t
a
r
t
e
d
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
U
s
i
n
g
t
h
i
s
F
O
R
M
_
,
y
o
u
c
a
n
r
e
g
i
s
t
e
r
y
o
u
r
s
e
l
f
w
i
t
h
t
h
e
m
i
d
d
l
e
w
a
r
e
.
A
f
t
e
r
r
e
g
i
s
t
e
r
i
n
g
y
o
u
r
s
e
l
f
a
s
a
p
r
o
v
i
d
e
r
o
f
t
h
e
d
e
v
i
c
e
s
/
a
p
p
l
i
c
a
t
i
o
n
s
w
i
t
h
t
h
e
m
i
d
d
l
e
w
a
r
e
,
y
o
u
w
i
l
l
r
e
c
e
i
v
e
a
`
`
P
R
O
V
I
D
E
R
A
P
I
K
E
Y
`
`
.
R
e
g
i
s
t
e
r
-
-
-
-
-
-
-
-
T
o
*
*
r
e
g
i
s
t
e
r
*
*
a
n
e
w
e
n
t
i
t
y
w
i
t
h
t
h
e
(
I
D
E
A
M
)
M
i
d
d
l
e
w
a
r
e
,
y
o
u
n
e
e
d
a
`
`
U
N
I
Q
U
E
d
e
v
i
c
e
n
a
m
e
`
`
a
n
d
t
h
e
`
`
P
R
O
V
I
D
E
R
A
P
I
K
E
Y
`
`
:
.
.
c
o
d
e
-
b
l
o
c
k
:
:
p
y
t
h
o
n
>
>
>
f
r
o
m
i
d
e
a
m
.
e
n
t
i
t
y
i
m
p
o
r
t
E
n
t
i
t
y
>
>
>
d
e
v
i
c
e
H
a
n
d
l
e
r
=
E
n
t
i
t
y
(
"
n
e
w
-
d
e
v
i
c
e
-
n
a
m
e
"
,
"
P
R
O
V
I
D
E
R
-
A
P
I
-
K
E
Y
"
)
>
>
>
d
e
v
i
c
e
H
a
n
d
l
e
r
.
r
e
g
i
s
t
e
r
(
)
{
'
A
P
I
K
e
y
'
:
'
D
E
V
I
C
E
-
A
P
I
-
K
E
Y
'
,
'
S
u
b
s
c
r
i
p
t
i
o
n
Q
u
e
u
e
N
a
m
e
'
:
'
n
e
w
-
d
e
v
i
c
e
-
n
a
m
e
'
,
'
R
e
s
o
u
r
c
e
I
D
'
:
'
n
e
w
-
d
e
v
i
c
e
-
n
a
m
e
'
,
'
R
e
g
i
s
t
r
a
t
i
o
n
'
:
'
s
u
c
c
e
s
s
'
}
>
>
>
d
e
v
i
c
e
H
a
n
d
l
e
r
.
s
e
t
_
e
n
t
i
t
y
_
a
p
i
_
k
e
y
(
"
D
E
V
I
C
E
-
A
P
I
-
K
E
Y
"
)
D
E
V
I
C
E
-
A
P
I
-
K
E
Y
*
*
N
O
T
E
*
*
:
S
t
o
r
e
t
h
e
`
`
D
E
V
I
C
E
-
A
P
I
-
K
E
Y
`
`
o
b
t
a
i
n
e
d
i
n
t
h
e
r
e
s
p
o
n
s
e
,
i
n
a
s
a
f
e
p
l
a
c
e
.
T
h
i
s
`
`
D
E
V
I
C
E
-
A
P
I
-
K
E
Y
`
`
w
i
l
l
b
e
r
e
q
u
i
r
e
d
f
o
r
d
o
i
n
g
o
p
e
r
a
t
i
o
n
s
l
i
k
e
p
u
b
l
i
s
h
,
s
u
b
s
c
r
i
b
e
a
n
d
a
c
c
e
s
s
i
n
g
h
i
s
t
o
r
i
c
a
l
d
a
t
a
.
F
o
r
a
n
A
l
r
e
a
d
y
R
e
g
i
s
t
e
r
e
d
D
e
v
i
c
e
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
H
e
r
e
,
w
e
c
a
n
s
k
i
p
t
h
e
r
e
g
i
s
t
r
a
t
i
o
n
o
f
t
h
e
e
n
t
i
t
y
w
i
t
h
t
h
e
m
i
d
d
l
e
w
a
r
e
.
.
.
c
o
d
e
-
b
l
o
c
k
:
:
p
y
t
h
o
n
>
>
>
f
r
o
m
i
d
e
a
m
.
e
n
t
i
t
y
i
m
p
o
r
t
E
n
t
i
t
y
>
>
>
d
e
v
i
c
e
H
a
n
d
l
e
r
=
E
n
t
i
t
y
(
"
d
e
v
i
c
e
-
n
a
m
e
"
,
"
P
R
O
V
I
D
E
R
-
A
P
I
-
K
E
Y
"
)
>
>
>
d
e
v
i
c
e
H
a
n
d
l
e
r
.
s
e
t
_
e
n
t
i
t
y
_
a
p
i
_
k
e
y
(
"
D
E
V
I
C
E
-
A
P
I
-
K
E
Y
"
)
P
u
b
l
i
s
h
-
-
-
-
-
-
-
T
o
*
*
p
u
b
l
i
s
h
*
*
t
o
t
h
e
(
I
D
E
A
M
)
M
i
d
d
l
e
w
a
r
e
a
s
a
n
I
o
T
d
e
v
i
c
e
/
e
n
t
i
t
y
:
A
r
g
s
:
*
d
a
t
a
*
(
s
t
r
i
n
g
)
:
c
o
n
t
e
n
t
s
t
o
b
e
p
u
b
l
i
s
h
e
d
b
y
t
h
i
s
e
n
t
i
t
y
.
.
.
c
o
d
e
-
b
l
o
c
k
:
:
p
y
t
h
o
n
>
>
>
f
r
o
m
i
d
e
a
m
.
e
n
t
i
t
y
i
m
p
o
r
t
E
n
t
i
t
y
>
>
>
d
e
v
i
c
e
H
a
n
d
l
e
r
=
E
n
t
i
t
y
(
"
p
u
b
l
i
s
h
i
n
g
-
d
e
v
i
c
e
-
n
a
m
e
"
,
"
P
R
O
V
I
D
E
R
-
A
P
I
-
K
E
Y
"
)
>
>
>
d
e
v
i
c
e
H
a
n
d
l
e
r
.
s
e
t
_
e
n
t
i
t
y
_
a
p
i
_
k
e
y
(
"
P
U
B
L
I
S
H
I
N
G
-
D
E
V
I
C
E
-
A
P
I
-
K
E
Y
"
)
>
>
>
d
e
v
i
c
e
H
a
n
d
l
e
r
.
p
u
b
l
i
s
h
(
"
d
e
m
o
d
a
t
a
"
)
{
'
s
t
a
t
u
s
'
:
'
s
u
c
c
e
s
s
'
,
'
r
e
s
p
o
n
s
e
'
:
'
p
u
b
l
i
s
h
m
e
s
s
a
g
e
o
k
'
}
S
u
b
s
c
r
i
b
e
-
-
-
-
-
-
-
-
-
T
o
*
*
l
i
s
t
e
n
(
s
u
b
s
c
r
i
b
e
)
*
*
t
o
t
h
e
d
a
t
a
f
r
o
m
a
d
e
v
i
c
e
/
e
n
t
i
t
y
r
e
g
i
s
t
e
r
e
d
w
i
t
h
t
h
e
(
I
D
E
A
M
)
M
i
d
d
l
e
w
a
r
e
,
d
o
t
h
e
f
o
l
l
o
w
i
n
g
s
t
e
p
s
:
*
*
S
u
b
s
c
r
i
b
e
*
*
.
T
h
i
s
m
e
t
h
o
d
w
i
l
l
s
t
a
r
t
l
i
s
t
e
n
i
n
g
f
o
r
t
h
e
d
a
t
a
f
r
o
m
m
i
d
d
l
e
w
a
r
e
.
T
h
i
s
m
e
t
h
o
d
w
i
l
l
a
u
t
o
m
a
t
i
c
a
l
l
y
b
i
n
d
o
r
l
i
s
t
e
n
t
o
a
n
y
d
e
v
i
c
e
s
p
r
o
v
i
d
e
d
i
n
t
h
e
a
r
g
u
m
e
n
t
l
i
s
t
.
W
h
e
n
a
n
e
w
d
a
t
a
f
r
o
m
t
h
e
d
e
v
i
c
e
a
r
r
i
v
e
s
,
i
t
i
s
s
t
o
r
e
d
i
n
a
n
i
n
t
e
r
n
a
l
v
a
r
i
a
b
l
e
c
a
l
l
e
d
`
`
s
u
b
s
c
r
i
b
e
_
d
a
t
a
`
`
.
T
h
e
`
`
s
u
b
s
c
r
i
b
e
_
d
a
t
a
`
`
i
s
a
d
i
c
t
i
o
n
a
r
y
w
i
t
h
`
`
d
a
t
a
`
`
a
n
d
`
`
t
i
m
e
s
t
a
m
p
`
`
f
i
e
l
d
.
`
`
t
i
m
e
s
t
a
m
p
`
`
d
e
n
o
t
e
s
t
h
e
e
p
o
c
h
t
i
m
e
(
i
n
m
i
l
l
i
s
e
c
o
n
d
s
)
a
t
w
h
i
c
h
d
a
t
a
a
r
r
i
v
e
d
.
A
r
g
s
:
*
d
e
v
i
c
e
s
_
t
o
_
b
i
n
d
*
(
l
i
s
t
o
f
s
t
r
i
n
g
s
)
:
a
n
a
r
r
a
y
o
f
d
e
v
i
c
e
s
t
o
l
i
s
t
e
n
t
o
.
E
x
:
s
u
b
s
c
r
i
b
e
(
[
"
t
e
s
t
1
0
0
"
,
"
t
e
s
t
D
e
m
o
"
]
)
.
.
c
o
d
e
-
b
l
o
c
k
:
:
p
y
t
h
o
n
>
>
>
f
r
o
m
i
d
e
a
m
.
e
n
t
i
t
y
i
m
p
o
r
t
E
n
t
i
t
y
>
>
>
a
p
p
l
i
c
a
t
i
o
n
H
a
n
d
l
e
r
=
E
n
t
i
t
y
(
"
l
i
s
t
e
n
i
n
g
-
d
e
v
i
c
e
-
n
a
m
e
"
,
"
P
R
O
V
I
D
E
R
-
A
P
I
-
K
E
Y
"
)
>
>
>
a
p
p
l
i
c
a
t
i
o
n
H
a
n
d
l
e
r
.
s
e
t
_
e
n
t
i
t
y
_
a
p
i
_
k
e
y
(
"
L
I
S
T
E
N
I
N
G
-
D
E
V
I
C
E
-
A
P
I
-
K
E
Y
"
)
>
>
>
>
>
>
a
p
p
l
i
c
a
t
i
o
n
H
a
n
d
l
e
r
.
s
u
b
s
c
r
i
b
e
(
[
"
p
u
b
l
i
s
h
i
n
g
-
d
e
v
i
c
e
-
n
a
m
e
"
,
"
p
u
b
l
i
s
h
i
n
g
-
d
e
v
i
c
e
-
2
"
]
)
>
>
>
a
p
p
l
i
c
a
t
i
o
n
H
a
n
d
l
e
r
.
s
u
b
s
c
r
i
b
e
_
d
a
t
a
{
'
d
a
t
a
'
:
'
d
e
m
o
d
a
t
a
'
,
'
t
i
m
e
s
t
a
m
p
'
:
'
1
5
1
3
5
2
6
9
5
4
6
7
4
'
}
U
n
b
i
n
d
-
-
-
-
-
-
T
o
u
n
b
i
n
d
a
n
y
e
n
t
i
t
y
t
h
a
t
i
s
a
l
r
e
a
d
y
b
o
u
n
d
t
o
,
u
s
e
t
h
e
*
*
u
n
b
i
n
d
*
*
m
e
t
h
o
d
:
A
r
g
s
:
*
d
e
v
i
c
e
s
_
t
o
_
u
n
b
i
n
d
*
(
l
i
s
t
o
f
s
t
r
i
n
g
s
)
:
a
n
a
r
r
a
y
o
f
d
e
v
i
c
e
s
t
h
a
t
a
r
e
t
o
b
e
u
n
b
o
u
n
d
(
s
t
o
p
l
i
s
t
e
n
i
n
g
)
.
E
x
.
u
n
b
i
n
d
(
[
"
t
e
s
t
1
0
"
,
"
t
e
s
t
D
e
m
o
1
0
5
"
]
)
.
.
c
o
d
e
-
b
l
o
c
k
:
:
p
y
t
h
o
n
>
>
>
f
r
o
m
i
d
e
a
m
.
e
n
t
i
t
y
i
m
p
o
r
t
E
n
t
i
t
y
>
>
>
a
p
p
l
i
c
a
t
i
o
n
H
a
n
d
l
e
r
=
E
n
t
i
t
y
(
"
l
i
s
t
e
n
i
n
g
-
d
e
v
i
c
e
-
n
a
m
e
"
,
"
P
R
O
V
I
D
E
R
-
A
P
I
-
K
E
Y
"
)
>
>
>
a
p
p
l
i
c
a
t
i
o
n
H
a
n
d
l
e
r
.
s
e
t
_
e
n
t
i
t
y
_
a
p
i
_
k
e
y
(
"
L
I
S
T
E
N
I
N
G
-
D
E
V
I
C
E
-
A
P
I
-
K
E
Y
"
)
>
>
>
a
p
p
l
i
c
a
t
i
o
n
H
a
n
d
l
e
r
.
u
n
b
i
n
d
(
[
"
p
u
b
l
i
s
h
i
n
g
-
d
e
v
i
c
e
-
n
a
m
e
"
]
)
{
'
s
t
a
t
u
s
'
:
'
s
u
c
c
e
s
s
'
,
'
r
e
s
p
o
n
s
e
'
:
'
u
n
b
i
n
d
q
u
e
u
e
o
k
'
}
A
c
c
e
s
s
h
i
s
t
o
r
i
c
a
l
d
a
t
a
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
T
h
e
d
b
f
u
n
c
t
i
o
n
a
l
l
o
w
s
a
n
e
n
t
i
t
y
t
o
a
c
c
e
s
s
t
h
e
h
i
s
t
o
r
i
c
a
l
d
a
t
a
.
A
r
g
s
:
e
n
t
i
t
y
(
s
t
r
i
n
g
)
:
N
a
m
e
o
f
t
h
e
d
e
v
i
c
e
t
o
l
i
s
t
e
n
q
u
e
r
y
_
f
i
l
t
e
r
s
(
s
t
r
i
n
g
)
:
E
l
a
s
t
i
c
s
e
a
r
c
h
r
e
s
p
o
n
s
e
f
o
r
m
a
t
s
t
r
i
n
g
.
E
x
.
q
u
e
r
y
_
f
i
l
t
e
r
s
=
"
p
r
e
t
t
y
=
t
r
u
e
&
s
i
z
e
=
1
0
"
.
.
c
o
d
e
-
b
l
o
c
k
:
:
p
y
t
h
o
n
>
>
>
f
r
o
m
i
d
e
a
m
.
e
n
t
i
t
y
i
m
p
o
r
t
E
n
t
i
t
y
>
>
>
a
p
p
l
i
c
a
t
i
o
n
H
a
n
d
l
e
r
=
E
n
t
i
t
y
(
"
l
i
s
t
e
n
i
n
g
-
d
e
v
i
c
e
-
n
a
m
e
"
,
"
P
R
O
V
I
D
E
R
-
A
P
I
-
K
E
Y
"
)
>
>
>
a
p
p
l
i
c
a
t
i
o
n
H
a
n
d
l
e
r
.
s
e
t
_
e
n
t
i
t
y
_
a
p
i
_
k
e
y
(
"
L
I
S
T
E
N
I
N
G
-
D
E
V
I
C
E
-
A
P
I
-
K
E
Y
"
)
>
>
>
a
p
p
l
i
c
a
t
i
o
n
H
a
n
d
l
e
r
.
d
b
(
"
r
b
c
c
p
s
E
n
e
r
g
y
.
E
M
_
D
0
0
2
5
8
6
0
"
)
'
{
"
t
o
o
k
"
:
5
,
"
t
i
m
e
d
_
o
u
t
"
:
f
a
l
s
e
,
"
_
s
h
a
r
d
s
"
:
{
"
t
o
t
a
l
"
:
5
,
"
s
u
c
c
e
s
s
f
u
l
"
:
5
,
"
f
a
i
l
e
d
"
:
0
}
,
"
h
i
t
s
"
:
{
"
t
o
t
a
l
"
:
9
2
2
9
2
,
"
m
a
x
_
s
c
o
r
e
"
:
1
.
0
4
8
7
2
9
4
,
"
h
i
t
s
"
:
[
{
"
_
i
n
d
e
x
"
:
"
s
e
n
s
o
r
_
d
a
t
a
"
,
"
_
t
y
p
e
"
:
"
l
o
g
s
"
,
"
_
i
d
"
:
"
A
V
6
A
V
e
O
G
7
s
V
B
k
W
s
I
E
C
v
P
"
,
"
_
s
c
o
r
e
"
:
1
.
0
4
8
7
2
9
4
,
"
_
s
o
u
r
c
e
"
:
{
"
@
t
i
m
e
s
t
a
m
p
"
:
"
2
0
1
7
-
0
9
-
1
4
T
1
2
:
2
1
:
0
6
.
0
4
7
Z
"
,
"
d
a
t
a
"
:
"
{
\
\
"
Y
P
h
a
s
e
R
e
a
c
t
i
v
e
P
o
w
e
r
\
\
"
:
2
4
0
7
.
9
0
0
0
9
4
9
8
5
9
6
1
9
,
\
\
"
B
P
h
a
s
e
V
o
l
t
a
g
e
\
\
"
:
2
3
9
.
4
2
8
4
6
6
7
9
6
8
7
5
,
\
\
"
Y
P
h
a
s
e
A
p
p
a
r
e
n
t
P
o
w
e
r
\
\
"
:
3
2
6
3
.
2
9
9
9
4
2
0
1
6
6
0
1
6
,
\
\
"
Y
P
h
a
s
e
A
c
t
i
v
e
P
o
w
e
r
\
\
"
:
2
2
0
2
.
8
0
0
0
3
5
4
7
6
6
8
4
6
,
\
\
"
R
P
h
a
s
e
P
o
w
e
r
F
a
c
t
o
r
\
\
"
:
0
.
7
8
7
9
9
9
9
8
7
6
0
2
2
3
3
8
9
,
\
\
"
B
P
h
a
s
e
A
c
t
i
v
e
P
o
w
e
r
\
\
"
:
2
2
2
2
.
1
9
9
9
1
6
8
3
9
5
9
9
6
,
\
\
"
E
n
e
r
g
y
R
e
a
c
t
i
v
e
\
\
"
:
1
8
6
3
9
.
0
0
0
7
8
2
0
1
2
9
3
9
,
\
\
"
B
P
h
a
s
e
C
u
r
r
e
n
t
\
\
"
:
1
4
.
4
6
0
9
0
0
3
0
6
7
0
1
6
6
,
\
\
"
R
P
h
a
s
e
A
p
p
a
r
e
n
t
P
o
w
e
r
\
\
"
:
5
1
5
6
.
0
0
0
1
3
7
3
2
9
1
0
1
6
,
\
\
"
R
P
h
a
s
e
R
e
a
c
t
i
v
e
P
o
w
e
r
\
\
"
:
3
1
7
3
.
3
0
0
0
2
7
8
4
7
2
9
,
\
\
"
Y
P
h
a
s
e
P
o
w
e
r
F
a
c
t
o
r
\
\
"
:
0
.
6
7
4
0
0
0
0
2
4
7
9
5
5
3
2
2
3
,
\
\
"
R
P
h
a
s
e
V
o
l
t
a
g
e
\
\
"
:
2
3
4
.
5
8
6
1
9
6
8
9
9
4
1
4
0
6
,
\
\
"
B
P
h
a
s
e
R
e
a
c
t
i
v
e
P
o
w
e
r
\
\
"
:
2
6
5
4
.
9
9
9
9
7
1
3
8
9
7
7
0
5
,
\
\
"
B
P
h
a
s
e
P
o
w
e
r
F
a
c
t
o
r
\
\
"
:
0
.
6
4
0
9
9
9
9
7
2
8
2
0
2
8
1
9
8
,
\
\
"
R
P
h
a
s
e
A
c
t
i
v
e
P
o
w
e
r
\
\
"
:
4
0
6
6
.
8
9
9
7
7
6
4
5
8
7
4
0
2
,
\
\
"
Y
P
h
a
s
e
C
u
r
r
e
n
t
\
\
"
:
1
3
.
7
5
7
1
0
0
1
0
5
2
8
5
6
4
5
,
\
\
"
Y
P
h
a
s
e
V
o
l
t
a
g
e
\
\
"
:
2
3
7
.
2
1
0
4
0
3
4
4
2
3
8
2
8
1
,
\
\
"
R
P
h
a
s
e
C
u
r
r
e
n
t
\
\
"
:
2
1
.
9
7
9
2
9
9
5
4
5
2
8
8
0
8
6
,
\
\
"
B
P
h
a
s
e
A
p
p
a
r
e
n
t
P
o
w
e
r
\
\
"
:
3
4
6
2
.
3
0
0
0
6
2
1
7
9
5
6
5
4
,
\
\
"
d
a
t
a
S
a
m
p
l
i
n
g
I
n
s
t
a
n
t
\
\
"
:
1
5
0
5
1
3
8
5
5
6
.
0
,
\
\
"
E
n
e
r
g
y
A
c
t
i
v
e
\
\
"
:
2
0
0
3
8
.
0
}
"
,
"
@
v
e
r
s
i
o
n
"
:
"
1
"
,
"
r
o
u
t
i
n
g
-
k
e
y
"
:
"
r
b
c
c
p
s
E
n
e
r
g
y
.
E
M
_
D
0
0
2
5
8
6
0
"
,
"
k
e
y
"
:
"
r
b
c
c
p
s
E
n
e
r
g
y
.
E
M
_
D
0
0
2
5
8
6
0
"
}
}
,
{
"
_
i
n
d
e
x
"
:
"
s
e
n
s
o
r
_
d
a
t
a
"
,
"
_
t
y
p
e
"
:
"
l
o
g
s
"
,
"
_
i
d
"
:
"
A
V
6
A
Q
3
-
E
7
s
V
B
k
W
s
I
E
C
u
o
"
,
"
_
s
c
o
r
e
"
:
1
.
0
4
8
7
2
9
4
,
"
_
s
o
u
r
c
e
"
:
{
"
@
t
i
m
e
s
t
a
m
p
"
:
"
2
0
1
7
-
0
9
-
1
4
T
1
2
:
0
1
:
0
0
.
7
9
6
Z
"
,
"
d
a
t
a
"
:
"
{
\
\
"
Y
P
h
a
s
e
R
e
a
c
t
i
v
e
P
o
w
e
r
\
\
"
:
2
3
6
7
.
5
9
9
9
6
4
1
4
1
8
4
5
7
,
\
\
"
B
P
h
a
s
e
V
o
l
t
a
g
e
\
\
"
:
2
3
8
.
3
7
9
2
5
7
2
0
2
1
4
8
4
4
,
\
\
"
Y
P
h
a
s
e
A
p
p
a
r
e
n
t
P
o
w
e
r
\
\
"
:
3
2
4
8
.
5
0
0
1
0
8
7
1
8
8
7
2
1
,
\
\
"
Y
P
h
a
s
e
A
c
t
i
v
e
P
o
w
e
r
\
\
"
:
2
2
2
4
.
6
0
0
0
7
6
6
7
5
4
1
5
,
\
\
"
R
P
h
a
s
e
P
o
w
e
r
F
a
c
t
o
r
\
\
"
:
0
.
7
9
4
0
0
0
0
2
9
5
6
3
9
0
3
8
1
,
\
\
"
B
P
h
a
s
e
A
c
t
i
v
e
P
o
w
e
r
\
\
"
:
2
2
5
3
.
4
9
9
9
8
4
7
4
1
2
1
0
9
,
\
\
"
E
n
e
r
g
y
R
e
a
c
t
i
v
e
\
\
"
:
1
8
6
3
5
.
6
0
0
3
9
1
3
8
7
9
3
9
,
\
\
"
B
P
h
a
s
e
C
u
r
r
e
n
t
\
\
"
:
1
4
.
4
0
5
3
0
0
1
4
0
3
8
0
8
5
9
,
\
\
"
R
P
h
a
s
e
A
p
p
a
r
e
n
t
P
o
w
e
r
\
\
"
:
5
1
4
4
.
4
9
9
7
7
8
7
4
7
5
5
8
6
,
\
\
"
R
P
h
a
s
e
R
e
a
c
t
i
v
e
P
o
w
e
r
\
\
"
:
3
1
2
3
.
1
0
0
0
4
2
3
4
3
1
3
9
6
,
\
\
"
Y
P
h
a
s
e
P
o
w
e
r
F
a
c
t
o
r
\
\
"
:
0
.
6
8
4
0
0
0
0
1
5
2
5
8
7
8
9
0
6
,
\
\
"
R
P
h
a
s
e
V
o
l
t
a
g
e
\
\
"
:
2
3
3
.
8
4
3
3
0
7
4
9
5
1
1
7
1
9
,
\
\
"
B
P
h
a
s
e
R
e
a
c
t
i
v
e
P
o
w
e
r
\
\
"
:
2
5
9
0
.
8
9
9
9
4
4
3
0
5
4
1
9
9
,
\
\
"
B
P
h
a
s
e
P
o
w
e
r
F
a
c
t
o
r
\
\
"
:
0
.
6
5
6
0
0
0
0
1
8
1
1
9
8
1
2
0
1
,
\
\
"
R
P
h
a
s
e
A
c
t
i
v
e
P
o
w
e
r
\
\
"
:
4
0
9
1
.
1
9
9
8
7
4
8
7
7
9
2
9
7
,
\
\
"
Y
P
h
a
s
e
C
u
r
r
e
n
t
\
\
"
:
1
3
.
7
5
6
6
9
9
5
6
2
0
7
2
7
5
4
,
\
\
"
Y
P
h
a
s
e
V
o
l
t
a
g
e
\
\
"
:
2
3
6
.
1
4
1
0
6
7
5
0
4
8
8
2
8
1
,
\
\
"
R
P
h
a
s
e
C
u
r
r
e
n
t
\
\
"
:
2
2
.
0
,
\
\
"
B
P
h
a
s
e
A
p
p
a
r
e
n
t
P
o
w
e
r
\
\
"
:
3
4
3
3
.
9
0
0
1
1
7
8
7
4
1
4
5
5
,
\
\
"
d
a
t
a
S
a
m
p
l
i
n
g
I
n
s
t
a
n
t
\
\
"
:
1
5
0
5
1
3
7
3
2
4
.
0
,
\
\
"
E
n
e
r
g
y
A
c
t
i
v
e
\
\
"
:
2
0
0
3
4
.
2
0
1
1
7
1
8
7
5
}
"
,
"
@
v
e
r
s
i
o
n
"
:
"
1
"
,
"
r
o
u
t
i
n
g
-
k
e
y
"
:
"
r
b
c
c
p
s
E
n
e
r
g
y
.
E
M
_
D
0
0
2
5
8
6
0
"
,
"
k
e
y
"
:
"
r
b
c
c
p
s
E
n
e
r
g
y
.
E
M
_
D
0
0
2
5
8
6
0
"
}
}
,
{
"
_
i
n
d
e
x
"
:
"
s
e
n
s
o
r
_
d
a
t
a
"
,
"
_
t
y
p
e
"
:
"
l
o
g
s
"
,
"
_
i
d
"
:
"
A
V
6
A
V
B
B
2
7
s
V
B
k
W
s
I
E
C
v
K
"
,
"
_
s
c
o
r
e
"
:
1
.
0
4
8
7
2
9
4
,
"
_
s
o
u
r
c
e
"
:
{
"
@
t
i
m
e
s
t
a
m
p
"
:
"
2
0
1
7
-
0
9
-
1
4
T
1
2
:
1
9
:
0
6
.
4
7
9
Z
"
,
"
d
a
t
a
"
:
"
{
\
\
"
Y
P
h
a
s
e
R
e
a
c
t
i
v
e
P
o
w
e
r
\
\
"
:
0
.
0
,
\
\
"
B
P
h
a
s
e
V
o
l
t
a
g
e
\
\
"
:
0
.
0
,
\
\
"
Y
P
h
a
s
e
A
p
p
a
r
e
n
t
P
o
w
e
r
\
\
"
:
0
.
0
,
\
\
"
Y
P
h
a
s
e
A
c
t
i
v
e
P
o
w
e
r
\
\
"
:
0
.
0
,
\
\
"
R
P
h
a
s
e
P
o
w
e
r
F
a
c
t
o
r
\
\
"
:
0
.
0
,
\
\
"
B
P
h
a
s
e
A
c
t
i
v
e
P
o
w
e
r
\
\
"
:
0
.
0
,
\
\
"
E
n
e
r
g
y
R
e
a
c
t
i
v
e
\
\
"
:
0
.
0
,
\
\
"
B
P
h
a
s
e
C
u
r
r
e
n
t
\
\
"
:
0
.
0
,
\
\
"
R
P
h
a
s
e
A
p
p
a
r
e
n
t
P
o
w
e
r
\
\
"
:
0
.
0
,
\
\
"
R
P
h
a
s
e
R
e
a
c
t
i
v
e
P
o
w
e
r
\
\
"
:
0
.
0
,
\
\
"
Y
P
h
a
s
e
P
o
w
e
r
F
a
c
t
o
r
\
\
"
:
0
.
0
,
\
\
"
R
P
h
a
s
e
V
o
l
t
a
g
e
\
\
"
:
0
.
0
,
\
\
"
B
P
h
a
s
e
R
e
a
c
t
i
v
e
P
o
w
e
r
\
\
"
:
0
.
0
,
\
\
"
B
P
h
a
s
e
P
o
w
e
r
F
a
c
t
o
r
\
\
"
:
0
.
0
,
\
\
"
R
P
h
a
s
e
A
c
t
i
v
e
P
o
w
e
r
\
\
"
:
0
.
0
,
\
\
"
Y
P
h
a
s
e
C
u
r
r
e
n
t
\
\
"
:
0
.
0
,
\
\
"
Y
P
h
a
s
e
V
o
l
t
a
g
e
\
\
"
:
0
.
0
,
\
\
"
R
P
h
a
s
e
C
u
r
r
e
n
t
\
\
"
:
0
.
0
,
\
\
"
B
P
h
a
s
e
A
p
p
a
r
e
n
t
P
o
w
e
r
\
\
"
:
0
.
0
,
\
\
"
d
a
t
a
S
a
m
p
l
i
n
g
I
n
s
t
a
n
t
\
\
"
:
1
5
0
5
1
3
8
4
3
7
.
0
,
\
\
"
E
n
e
r
g
y
A
c
t
i
v
e
\
\
"
:
0
.
0
}
"
,
"
@
v
e
r
s
i
o
n
"
:
"
1
"
,
"
r
o
u
t
i
n
g
-
k
e
y
"
:
"
r
b
c
c
p
s
E
n
e
r
g
y
.
E
M
_
D
0
0
2
5
8
6
0
"
,
"
k
e
y
"
:
"
r
b
c
c
p
s
E
n
e
r
g
y
.
E
M
_
D
0
0
2
5
8
6
0
"
}
}
]
}
}
'
.
.
_
F
O
R
M
:
h
t
t
p
s
:
/
/
d
o
c
s
.
g
o
o
g
l
e
.
c
o
m
/
f
o
r
m
s
/
d
/
e
/
1
F
A
I
p
Q
L
S
c
-
L
_
k
M
a
y
Q
j
p
X
s
I
Z
5
B
U
_
U
C
B
F
I
_
v
6
d
N
P
r
B
c
m
Q
I
H
p
0
J
3
k
B
k
f
y
F
Q
/
v
i
e
w
f
o
r
m
?
c
=
0
&
w
=
1
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
P
y
t
h
o
n
S
D
K
f
o
r
I
o
T
D
a
t
a
E
x
c
h
a
n
g
e
&
A
n
a
l
y
t
i
c
s
M
i
d
d
l
e
w
a
r
e
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
K
e
y
F
e
a
t
u
r
e
s
=
=
=
=
=
=
=
=
=
=
=
=
-
S
u
p
p
o
r
t
s
I
o
T
e
n
t
i
t
i
e
s
t
o
r
e
g
i
s
t
e
r
,
p
u
b
l
i
s
h
,
s
u
b
s
c
r
i
b
e
,
a
c
c
e
s
s
h
i
s
t
o
r
i
c
a
l
d
a
t
a
.
-
S
u
p
p
o
r
t
s
a
s
y
n
c
h
r
o
n
o
u
s
a
c
c
e
s
s
o
f
d
a
t
a
f
r
o
m
t
h
e
e
n
t
i
t
y
.
G
e
t
t
i
n
g
s
t
a
r
t
e
d
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
U
s
i
n
g
t
h
i
s
F
O
R
M
_
,
y
o
u
c
a
n
r
e
g
i
s
t
e
r
y
o
u
r
s
e
l
f
w
i
t
h
t
h
e
m
i
d
d
l
e
w
a
r
e
.
A
f
t
e
r
r
e
g
i
s
t
e
r
i
n
g
y
o
u
r
s
e
l
f
a
s
a
p
r
o
v
i
d
e
r
o
f
t
h
e
d
e
v
i
c
e
s
/
a
p
p
l
i
c
a
t
i
o
n
s
w
i
t
h
t
h
e
m
i
d
d
l
e
w
a
r
e
,
y
o
u
w
i
l
l
r
e
c
e
i
v
e
a
`
`
P
R
O
V
I
D
E
R
A
P
I
K
E
Y
`
`
.
R
e
g
i
s
t
e
r
-
-
-
-
-
-
-
-
T
o
*
*
r
e
g
i
s
t
e
r
*
*
a
n
e
w
e
n
t
i
t
y
w
i
t
h
t
h
e
(
I
D
E
A
M
)
M
i
d
d
l
e
w
a
r
e
,
y
o
u
n
e
e
d
a
`
`
U
N
I
Q
U
E
d
e
v
i
c
e
n
a
m
e
`
`
a
n
d
t
h
e
`
`
P
R
O
V
I
D
E
R
A
P
I
K
E
Y
`
`
:
.
.
c
o
d
e
-
b
l
o
c
k
:
:
p
y
t
h
o
n
>
>
>
f
r
o
m
i
d
e
a
m
.
e
n
t
i
t
y
i
m
p
o
r
t
E
n
t
i
t
y
>
>
>
d
e
v
i
c
e
H
a
n
d
l
e
r
=
E
n
t
i
t
y
(
"
n
e
w
-
d
e
v
i
c
e
-
n
a
m
e
"
,
"
P
R
O
V
I
D
E
R
-
A
P
I
-
K
E
Y
"
)
>
>
>
d
e
v
i
c
e
H
a
n
d
l
e
r
.
r
e
g
i
s
t
e
r
(
)
{
'
A
P
I
K
e
y
'
:
'
D
E
V
I
C
E
-
A
P
I
-
K
E
Y
'
,
'
S
u
b
s
c
r
i
p
t
i
o
n
Q
u
e
u
e
N
a
m
e
'
:
'
n
e
w
-
d
e
v
i
c
e
-
n
a
m
e
'
,
'
R
e
s
o
u
r
c
e
I
D
'
:
'
n
e
w
-
d
e
v
i
c
e
-
n
a
m
e
'
,
'
R
e
g
i
s
t
r
a
t
i
o
n
'
:
'
s
u
c
c
e
s
s
'
}
>
>
>
d
e
v
i
c
e
H
a
n
d
l
e
r
.
s
e
t
_
e
n
t
i
t
y
_
a
p
i
_
k
e
y
(
"
D
E
V
I
C
E
-
A
P
I
-
K
E
Y
"
)
D
E
V
I
C
E
-
A
P
I
-
K
E
Y
*
*
N
O
T
E
*
*
:
S
t
o
r
e
t
h
e
`
`
D
E
V
I
C
E
-
A
P
I
-
K
E
Y
`
`
o
b
t
a
i
n
e
d
i
n
t
h
e
r
e
s
p
o
n
s
e
,
i
n
a
s
a
f
e
p
l
a
c
e
.
T
h
i
s
`
`
D
E
V
I
C
E
-
A
P
I
-
K
E
Y
`
`
w
i
l
l
b
e
r
e
q
u
i
r
e
d
f
o
r
d
o
i
n
g
o
p
e
r
a
t
i
o
n
s
l
i
k
e
p
u
b
l
i
s
h
,
s
u
b
s
c
r
i
b
e
a
n
d
a
c
c
e
s
s
i
n
g
h
i
s
t
o
r
i
c
a
l
d
a
t
a
.
F
o
r
a
n
A
l
r
e
a
d
y
R
e
g
i
s
t
e
r
e
d
D
e
v
i
c
e
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
H
e
r
e
,
w
e
c
a
n
s
k
i
p
t
h
e
r
e
g
i
s
t
r
a
t
i
o
n
o
f
t
h
e
e
n
t
i
t
y
w
i
t
h
t
h
e
m
i
d
d
l
e
w
a
r
e
.
.
.
c
o
d
e
-
b
l
o
c
k
:
:
p
y
t
h
o
n
>
>
>
f
r
o
m
i
d
e
a
m
.
e
n
t
i
t
y
i
m
p
o
r
t
E
n
t
i
t
y
>
>
>
d
e
v
i
c
e
H
a
n
d
l
e
r
=
E
n
t
i
t
y
(
"
d
e
v
i
c
e
-
n
a
m
e
"
,
"
P
R
O
V
I
D
E
R
-
A
P
I
-
K
E
Y
"
)
>
>
>
d
e
v
i
c
e
H
a
n
d
l
e
r
.
s
e
t
_
e
n
t
i
t
y
_
a
p
i
_
k
e
y
(
"
D
E
V
I
C
E
-
A
P
I
-
K
E
Y
"
)
P
u
b
l
i
s
h
-
-
-
-
-
-
-
T
o
*
*
p
u
b
l
i
s
h
*
*
t
o
t
h
e
(
I
D
E
A
M
)
M
i
d
d
l
e
w
a
r
e
a
s
a
n
I
o
T
d
e
v
i
c
e
/
e
n
t
i
t
y
:
A
r
g
s
:
*
d
a
t
a
*
(
s
t
r
i
n
g
)
:
c
o
n
t
e
n
t
s
t
o
b
e
p
u
b
l
i
s
h
e
d
b
y
t
h
i
s
e
n
t
i
t
y
.
.
.
c
o
d
e
-
b
l
o
c
k
:
:
p
y
t
h
o
n
>
>
>
f
r
o
m
i
d
e
a
m
.
e
n
t
i
t
y
i
m
p
o
r
t
E
n
t
i
t
y
>
>
>
d
e
v
i
c
e
H
a
n
d
l
e
r
=
E
n
t
i
t
y
(
"
p
u
b
l
i
s
h
i
n
g
-
d
e
v
i
c
e
-
n
a
m
e
"
,
"
P
R
O
V
I
D
E
R
-
A
P
I
-
K
E
Y
"
)
>
>
>
d
e
v
i
c
e
H
a
n
d
l
e
r
.
s
e
t
_
e
n
t
i
t
y
_
a
p
i
_
k
e
y
(
"
P
U
B
L
I
S
H
I
N
G
-
D
E
V
I
C
E
-
A
P
I
-
K
E
Y
"
)
>
>
>
d
e
v
i
c
e
H
a
n
d
l
e
r
.
p
u
b
l
i
s
h
(
"
d
e
m
o
d
a
t
a
"
)
{
'
s
t
a
t
u
s
'
:
'
s
u
c
c
e
s
s
'
,
'
r
e
s
p
o
n
s
e
'
:
'
p
u
b
l
i
s
h
m
e
s
s
a
g
e
o
k
'
}
S
u
b
s
c
r
i
b
e
-
-
-
-
-
-
-
-
-
T
o
*
*
l
i
s
t
e
n
(
s
u
b
s
c
r
i
b
e
)
*
*
t
o
t
h
e
d
a
t
a
f
r
o
m
a
d
e
v
i
c
e
/
e
n
t
i
t
y
r
e
g
i
s
t
e
r
e
d
w
i
t
h
t
h
e
(
I
D
E
A
M
)
M
i
d
d
l
e
w
a
r
e
,
d
o
t
h
e
f
o
l
l
o
w
i
n
g
s
t
e
p
s
:
*
*
S
u
b
s
c
r
i
b
e
*
*
.
T
h
i
s
m
e
t
h
o
d
w
i
l
l
s
t
a
r
t
l
i
s
t
e
n
i
n
g
f
o
r
t
h
e
d
a
t
a
f
r
o
m
m
i
d
d
l
e
w
a
r
e
.
T
h
i
s
m
e
t
h
o
d
w
i
l
l
a
u
t
o
m
a
t
i
c
a
l
l
y
b
i
n
d
o
r
l
i
s
t
e
n
t
o
a
n
y
d
e
v
i
c
e
s
p
r
o
v
i
d
e
d
i
n
t
h
e
a
r
g
u
m
e
n
t
l
i
s
t
.
W
h
e
n
a
n
e
w
d
a
t
a
f
r
o
m
t
h
e
d
e
v
i
c
e
a
r
r
i
v
e
s
,
i
t
i
s
s
t
o
r
e
d
i
n
a
n
i
n
t
e
r
n
a
l
v
a
r
i
a
b
l
e
c
a
l
l
e
d
`
`
s
u
b
s
c
r
i
b
e
_
d
a
t
a
`
`
.
T
h
e
`
`
s
u
b
s
c
r
i
b
e
_
d
a
t
a
`
`
i
s
a
d
i
c
t
i
o
n
a
r
y
w
i
t
h
`
`
d
a
t
a
`
`
a
n
d
`
`
t
i
m
e
s
t
a
m
p
`
`
f
i
e
l
d
.
`
`
t
i
m
e
s
t
a
m
p
`
`
d
e
n
o
t
e
s
t
h
e
e
p
o
c
h
t
i
m
e
(
i
n
m
i
l
l
i
s
e
c
o
n
d
s
)
a
t
w
h
i
c
h
d
a
t
a
a
r
r
i
v
e
d
.
A
r
g
s
:
*
d
e
v
i
c
e
s
_
t
o
_
b
i
n
d
*
(
l
i
s
t
o
f
s
t
r
i
n
g
s
)
:
a
n
a
r
r
a
y
o
f
d
e
v
i
c
e
s
t
o
l
i
s
t
e
n
t
o
.
E
x
:
s
u
b
s
c
r
i
b
e
(
[
"
t
e
s
t
1
0
0
"
,
"
t
e
s
t
D
e
m
o
"
]
)
.
.
c
o
d
e
-
b
l
o
c
k
:
:
p
y
t
h
o
n
>
>
>
f
r
o
m
i
d
e
a
m
.
e
n
t
i
t
y
i
m
p
o
r
t
E
n
t
i
t
y
>
>
>
a
p
p
l
i
c
a
t
i
o
n
H
a
n
d
l
e
r
=
E
n
t
i
t
y
(
"
l
i
s
t
e
n
i
n
g
-
d
e
v
i
c
e
-
n
a
m
e
"
,
"
P
R
O
V
I
D
E
R
-
A
P
I
-
K
E
Y
"
)
>
>
>
a
p
p
l
i
c
a
t
i
o
n
H
a
n
d
l
e
r
.
s
e
t
_
e
n
t
i
t
y
_
a
p
i
_
k
e
y
(
"
L
I
S
T
E
N
I
N
G
-
D
E
V
I
C
E
-
A
P
I
-
K
E
Y
"
)
>
>
>
>
>
>
a
p
p
l
i
c
a
t
i
o
n
H
a
n
d
l
e
r
.
s
u
b
s
c
r
i
b
e
(
[
"
p
u
b
l
i
s
h
i
n
g
-
d
e
v
i
c
e
-
n
a
m
e
"
,
"
p
u
b
l
i
s
h
i
n
g
-
d
e
v
i
c
e
-
2
"
]
)
>
>
>
a
p
p
l
i
c
a
t
i
o
n
H
a
n
d
l
e
r
.
s
u
b
s
c
r
i
b
e
_
d
a
t
a
{
'
d
a
t
a
'
:
'
d
e
m
o
d
a
t
a
'
,
'
t
i
m
e
s
t
a
m
p
'
:
'
1
5
1
3
5
2
6
9
5
4
6
7
4
'
}
U
n
b
i
n
d
-
-
-
-
-
-
T
o
u
n
b
i
n
d
a
n
y
e
n
t
i
t
y
t
h
a
t
i
s
a
l
r
e
a
d
y
b
o
u
n
d
t
o
,
u
s
e
t
h
e
*
*
u
n
b
i
n
d
*
*
m
e
t
h
o
d
:
A
r
g
s
:
*
d
e
v
i
c
e
s
_
t
o
_
u
n
b
i
n
d
*
(
l
i
s
t
o
f
s
t
r
i
n
g
s
)
:
a
n
a
r
r
a
y
o
f
d
e
v
i
c
e
s
t
h
a
t
a
r
e
t
o
b
e
u
n
b
o
u
n
d
(
s
t
o
p
l
i
s
t
e
n
i
n
g
)
.
E
x
.
u
n
b
i
n
d
(
[
"
t
e
s
t
1
0
"
,
"
t
e
s
t
D
e
m
o
1
0
5
"
]
)
.
.
c
o
d
e
-
b
l
o
c
k
:
:
p
y
t
h
o
n
>
>
>
f
r
o
m
i
d
e
a
m
.
e
n
t
i
t
y
i
m
p
o
r
t
E
n
t
i
t
y
>
>
>
a
p
p
l
i
c
a
t
i
o
n
H
a
n
d
l
e
r
=
E
n
t
i
t
y
(
"
l
i
s
t
e
n
i
n
g
-
d
e
v
i
c
e
-
n
a
m
e
"
,
"
P
R
O
V
I
D
E
R
-
A
P
I
-
K
E
Y
"
)
>
>
>
a
p
p
l
i
c
a
t
i
o
n
H
a
n
d
l
e
r
.
s
e
t
_
e
n
t
i
t
y
_
a
p
i
_
k
e
y
(
"
L
I
S
T
E
N
I
N
G
-
D
E
V
I
C
E
-
A
P
I
-
K
E
Y
"
)
>
>
>
a
p
p
l
i
c
a
t
i
o
n
H
a
n
d
l
e
r
.
u
n
b
i
n
d
(
[
"
p
u
b
l
i
s
h
i
n
g
-
d
e
v
i
c
e
-
n
a
m
e
"
]
)
{
'
s
t
a
t
u
s
'
:
'
s
u
c
c
e
s
s
'
,
'
r
e
s
p
o
n
s
e
'
:
'
u
n
b
i
n
d
q
u
e
u
e
o
k
'
}
A
c
c
e
s
s
h
i
s
t
o
r
i
c
a
l
d
a
t
a
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
T
h
e
d
b
f
u
n
c
t
i
o
n
a
l
l
o
w
s
a
n
e
n
t
i
t
y
t
o
a
c
c
e
s
s
t
h
e
h
i
s
t
o
r
i
c
a
l
d
a
t
a
.
A
r
g
s
:
e
n
t
i
t
y
(
s
t
r
i
n
g
)
:
N
a
m
e
o
f
t
h
e
d
e
v
i
c
e
t
o
l
i
s
t
e
n
q
u
e
r
y
_
f
i
l
t
e
r
s
(
s
t
r
i
n
g
)
:
E
l
a
s
t
i
c
s
e
a
r
c
h
r
e
s
p
o
n
s
e
f
o
r
m
a
t
s
t
r
i
n
g
.
E
x
.
q
u
e
r
y
_
f
i
l
t
e
r
s
=
"
p
r
e
t
t
y
=
t
r
u
e
&
s
i
z
e
=
1
0
"
.
.
c
o
d
e
-
b
l
o
c
k
:
:
p
y
t
h
o
n
>
>
>
f
r
o
m
i
d
e
a
m
.
e
n
t
i
t
y
i
m
p
o
r
t
E
n
t
i
t
y
>
>
>
a
p
p
l
i
c
a
t
i
o
n
H
a
n
d
l
e
r
=
E
n
t
i
t
y
(
"
l
i
s
t
e
n
i
n
g
-
d
e
v
i
c
e
-
n
a
m
e
"
,
"
P
R
O
V
I
D
E
R
-
A
P
I
-
K
E
Y
"
)
>
>
>
a
p
p
l
i
c
a
t
i
o
n
H
a
n
d
l
e
r
.
s
e
t
_
e
n
t
i
t
y
_
a
p
i
_
k
e
y
(
"
L
I
S
T
E
N
I
N
G
-
D
E
V
I
C
E
-
A
P
I
-
K
E
Y
"
)
>
>
>
a
p
p
l
i
c
a
t
i
o
n
H
a
n
d
l
e
r
.
d
b
(
"
r
b
c
c
p
s
E
n
e
r
g
y
.
E
M
_
D
0
0
2
5
8
6
0
"
)
'
{
"
t
o
o
k
"
:
5
,
"
t
i
m
e
d
_
o
u
t
"
:
f
a
l
s
e
,
"
_
s
h
a
r
d
s
"
:
{
"
t
o
t
a
l
"
:
5
,
"
s
u
c
c
e
s
s
f
u
l
"
:
5
,
"
f
a
i
l
e
d
"
:
0
}
,
"
h
i
t
s
"
:
{
"
t
o
t
a
l
"
:
9
2
2
9
2
,
"
m
a
x
_
s
c
o
r
e
"
:
1
.
0
4
8
7
2
9
4
,
"
h
i
t
s
"
:
[
{
"
_
i
n
d
e
x
"
:
"
s
e
n
s
o
r
_
d
a
t
a
"
,
"
_
t
y
p
e
"
:
"
l
o
g
s
"
,
"
_
i
d
"
:
"
A
V
6
A
V
e
O
G
7
s
V
B
k
W
s
I
E
C
v
P
"
,
"
_
s
c
o
r
e
"
:
1
.
0
4
8
7
2
9
4
,
"
_
s
o
u
r
c
e
"
:
{
"
@
t
i
m
e
s
t
a
m
p
"
:
"
2
0
1
7
-
0
9
-
1
4
T
1
2
:
2
1
:
0
6
.
0
4
7
Z
"
,
"
d
a
t
a
"
:
"
{
\
\
"
Y
P
h
a
s
e
R
e
a
c
t
i
v
e
P
o
w
e
r
\
\
"
:
2
4
0
7
.
9
0
0
0
9
4
9
8
5
9
6
1
9
,
\
\
"
B
P
h
a
s
e
V
o
l
t
a
g
e
\
\
"
:
2
3
9
.
4
2
8
4
6
6
7
9
6
8
7
5
,
\
\
"
Y
P
h
a
s
e
A
p
p
a
r
e
n
t
P
o
w
e
r
\
\
"
:
3
2
6
3
.
2
9
9
9
4
2
0
1
6
6
0
1
6
,
\
\
"
Y
P
h
a
s
e
A
c
t
i
v
e
P
o
w
e
r
\
\
"
:
2
2
0
2
.
8
0
0
0
3
5
4
7
6
6
8
4
6
,
\
\
"
R
P
h
a
s
e
P
o
w
e
r
F
a
c
t
o
r
\
\
"
:
0
.
7
8
7
9
9
9
9
8
7
6
0
2
2
3
3
8
9
,
\
\
"
B
P
h
a
s
e
A
c
t
i
v
e
P
o
w
e
r
\
\
"
:
2
2
2
2
.
1
9
9
9
1
6
8
3
9
5
9
9
6
,
\
\
"
E
n
e
r
g
y
R
e
a
c
t
i
v
e
\
\
"
:
1
8
6
3
9
.
0
0
0
7
8
2
0
1
2
9
3
9
,
\
\
"
B
P
h
a
s
e
C
u
r
r
e
n
t
\
\
"
:
1
4
.
4
6
0
9
0
0
3
0
6
7
0
1
6
6
,
\
\
"
R
P
h
a
s
e
A
p
p
a
r
e
n
t
P
o
w
e
r
\
\
"
:
5
1
5
6
.
0
0
0
1
3
7
3
2
9
1
0
1
6
,
\
\
"
R
P
h
a
s
e
R
e
a
c
t
i
v
e
P
o
w
e
r
\
\
"
:
3
1
7
3
.
3
0
0
0
2
7
8
4
7
2
9
,
\
\
"
Y
P
h
a
s
e
P
o
w
e
r
F
a
c
t
o
r
\
\
"
:
0
.
6
7
4
0
0
0
0
2
4
7
9
5
5
3
2
2
3
,
\
\
"
R
P
h
a
s
e
V
o
l
t
a
g
e
\
\
"
:
2
3
4
.
5
8
6
1
9
6
8
9
9
4
1
4
0
6
,
\
\
"
B
P
h
a
s
e
R
e
a
c
t
i
v
e
P
o
w
e
r
\
\
"
:
2
6
5
4
.
9
9
9
9
7
1
3
8
9
7
7
0
5
,
\
\
"
B
P
h
a
s
e
P
o
w
e
r
F
a
c
t
o
r
\
\
"
:
0
.
6
4
0
9
9
9
9
7
2
8
2
0
2
8
1
9
8
,
\
\
"
R
P
h
a
s
e
A
c
t
i
v
e
P
o
w
e
r
\
\
"
:
4
0
6
6
.
8
9
9
7
7
6
4
5
8
7
4
0
2
,
\
\
"
Y
P
h
a
s
e
C
u
r
r
e
n
t
\
\
"
:
1
3
.
7
5
7
1
0
0
1
0
5
2
8
5
6
4
5
,
\
\
"
Y
P
h
a
s
e
V
o
l
t
a
g
e
\
\
"
:
2
3
7
.
2
1
0
4
0
3
4
4
2
3
8
2
8
1
,
\
\
"
R
P
h
a
s
e
C
u
r
r
e
n
t
\
\
"
:
2
1
.
9
7
9
2
9
9
5
4
5
2
8
8
0
8
6
,
\
\
"
B
P
h
a
s
e
A
p
p
a
r
e
n
t
P
o
w
e
r
\
\
"
:
3
4
6
2
.
3
0
0
0
6
2
1
7
9
5
6
5
4
,
\
\
"
d
a
t
a
S
a
m
p
l
i
n
g
I
n
s
t
a
n
t
\
\
"
:
1
5
0
5
1
3
8
5
5
6
.
0
,
\
\
"
E
n
e
r
g
y
A
c
t
i
v
e
\
\
"
:
2
0
0
3
8
.
0
}
"
,
"
@
v
e
r
s
i
o
n
"
:
"
1
"
,
"
r
o
u
t
i
n
g
-
k
e
y
"
:
"
r
b
c
c
p
s
E
n
e
r
g
y
.
E
M
_
D
0
0
2
5
8
6
0
"
,
"
k
e
y
"
:
"
r
b
c
c
p
s
E
n
e
r
g
y
.
E
M
_
D
0
0
2
5
8
6
0
"
}
}
,
{
"
_
i
n
d
e
x
"
:
"
s
e
n
s
o
r
_
d
a
t
a
"
,
"
_
t
y
p
e
"
:
"
l
o
g
s
"
,
"
_
i
d
"
:
"
A
V
6
A
Q
3
-
E
7
s
V
B
k
W
s
I
E
C
u
o
"
,
"
_
s
c
o
r
e
"
:
1
.
0
4
8
7
2
9
4
,
"
_
s
o
u
r
c
e
"
:
{
"
@
t
i
m
e
s
t
a
m
p
"
:
"
2
0
1
7
-
0
9
-
1
4
T
1
2
:
0
1
:
0
0
.
7
9
6
Z
"
,
"
d
a
t
a
"
:
"
{
\
\
"
Y
P
h
a
s
e
R
e
a
c
t
i
v
e
P
o
w
e
r
\
\
"
:
2
3
6
7
.
5
9
9
9
6
4
1
4
1
8
4
5
7
,
\
\
"
B
P
h
a
s
e
V
o
l
t
a
g
e
\
\
"
:
2
3
8
.
3
7
9
2
5
7
2
0
2
1
4
8
4
4
,
\
\
"
Y
P
h
a
s
e
A
p
p
a
r
e
n
t
P
o
w
e
r
\
\
"
:
3
2
4
8
.
5
0
0
1
0
8
7
1
8
8
7
2
1
,
\
\
"
Y
P
h
a
s
e
A
c
t
i
v
e
P
o
w
e
r
\
\
"
:
2
2
2
4
.
6
0
0
0
7
6
6
7
5
4
1
5
,
\
\
"
R
P
h
a
s
e
P
o
w
e
r
F
a
c
t
o
r
\
\
"
:
0
.
7
9
4
0
0
0
0
2
9
5
6
3
9
0
3
8
1
,
\
\
"
B
P
h
a
s
e
A
c
t
i
v
e
P
o
w
e
r
\
\
"
:
2
2
5
3
.
4
9
9
9
8
4
7
4
1
2
1
0
9
,
\
\
"
E
n
e
r
g
y
R
e
a
c
t
i
v
e
\
\
"
:
1
8
6
3
5
.
6
0
0
3
9
1
3
8
7
9
3
9
,
\
\
"
B
P
h
a
s
e
C
u
r
r
e
n
t
\
\
"
:
1
4
.
4
0
5
3
0
0
1
4
0
3
8
0
8
5
9
,
\
\
"
R
P
h
a
s
e
A
p
p
a
r
e
n
t
P
o
w
e
r
\
\
"
:
5
1
4
4
.
4
9
9
7
7
8
7
4
7
5
5
8
6
,
\
\
"
R
P
h
a
s
e
R
e
a
c
t
i
v
e
P
o
w
e
r
\
\
"
:
3
1
2
3
.
1
0
0
0
4
2
3
4
3
1
3
9
6
,
\
\
"
Y
P
h
a
s
e
P
o
w
e
r
F
a
c
t
o
r
\
\
"
:
0
.
6
8
4
0
0
0
0
1
5
2
5
8
7
8
9
0
6
,
\
\
"
R
P
h
a
s
e
V
o
l
t
a
g
e
\
\
"
:
2
3
3
.
8
4
3
3
0
7
4
9
5
1
1
7
1
9
,
\
\
"
B
P
h
a
s
e
R
e
a
c
t
i
v
e
P
o
w
e
r
\
\
"
:
2
5
9
0
.
8
9
9
9
4
4
3
0
5
4
1
9
9
,
\
\
"
B
P
h
a
s
e
P
o
w
e
r
F
a
c
t
o
r
\
\
"
:
0
.
6
5
6
0
0
0
0
1
8
1
1
9
8
1
2
0
1
,
\
\
"
R
P
h
a
s
e
A
c
t
i
v
e
P
o
w
e
r
\
\
"
:
4
0
9
1
.
1
9
9
8
7
4
8
7
7
9
2
9
7
,
\
\
"
Y
P
h
a
s
e
C
u
r
r
e
n
t
\
\
"
:
1
3
.
7
5
6
6
9
9
5
6
2
0
7
2
7
5
4
,
\
\
"
Y
P
h
a
s
e
V
o
l
t
a
g
e
\
\
"
:
2
3
6
.
1
4
1
0
6
7
5
0
4
8
8
2
8
1
,
\
\
"
R
P
h
a
s
e
C
u
r
r
e
n
t
\
\
"
:
2
2
.
0
,
\
\
"
B
P
h
a
s
e
A
p
p
a
r
e
n
t
P
o
w
e
r
\
\
"
:
3
4
3
3
.
9
0
0
1
1
7
8
7
4
1
4
5
5
,
\
\
"
d
a
t
a
S
a
m
p
l
i
n
g
I
n
s
t
a
n
t
\
\
"
:
1
5
0
5
1
3
7
3
2
4
.
0
,
\
\
"
E
n
e
r
g
y
A
c
t
i
v
e
\
\
"
:
2
0
0
3
4
.
2
0
1
1
7
1
8
7
5
}
"
,
"
@
v
e
r
s
i
o
n
"
:
"
1
"
,
"
r
o
u
t
i
n
g
-
k
e
y
"
:
"
r
b
c
c
p
s
E
n
e
r
g
y
.
E
M
_
D
0
0
2
5
8
6
0
"
,
"
k
e
y
"
:
"
r
b
c
c
p
s
E
n
e
r
g
y
.
E
M
_
D
0
0
2
5
8
6
0
"
}
}
,
{
"
_
i
n
d
e
x
"
:
"
s
e
n
s
o
r
_
d
a
t
a
"
,
"
_
t
y
p
e
"
:
"
l
o
g
s
"
,
"
_
i
d
"
:
"
A
V
6
A
V
B
B
2
7
s
V
B
k
W
s
I
E
C
v
K
"
,
"
_
s
c
o
r
e
"
:
1
.
0
4
8
7
2
9
4
,
"
_
s
o
u
r
c
e
"
:
{
"
@
t
i
m
e
s
t
a
m
p
"
:
"
2
0
1
7
-
0
9
-
1
4
T
1
2
:
1
9
:
0
6
.
4
7
9
Z
"
,
"
d
a
t
a
"
:
"
{
\
\
"
Y
P
h
a
s
e
R
e
a
c
t
i
v
e
P
o
w
e
r
\
\
"
:
0
.
0
,
\
\
"
B
P
h
a
s
e
V
o
l
t
a
g
e
\
\
"
:
0
.
0
,
\
\
"
Y
P
h
a
s
e
A
p
p
a
r
e
n
t
P
o
w
e
r
\
\
"
:
0
.
0
,
\
\
"
Y
P
h
a
s
e
A
c
t
i
v
e
P
o
w
e
r
\
\
"
:
0
.
0
,
\
\
"
R
P
h
a
s
e
P
o
w
e
r
F
a
c
t
o
r
\
\
"
:
0
.
0
,
\
\
"
B
P
h
a
s
e
A
c
t
i
v
e
P
o
w
e
r
\
\
"
:
0
.
0
,
\
\
"
E
n
e
r
g
y
R
e
a
c
t
i
v
e
\
\
"
:
0
.
0
,
\
\
"
B
P
h
a
s
e
C
u
r
r
e
n
t
\
\
"
:
0
.
0
,
\
\
"
R
P
h
a
s
e
A
p
p
a
r
e
n
t
P
o
w
e
r
\
\
"
:
0
.
0
,
\
\
"
R
P
h
a
s
e
R
e
a
c
t
i
v
e
P
o
w
e
r
\
\
"
:
0
.
0
,
\
\
"
Y
P
h
a
s
e
P
o
w
e
r
F
a
c
t
o
r
\
\
"
:
0
.
0
,
\
\
"
R
P
h
a
s
e
V
o
l
t
a
g
e
\
\
"
:
0
.
0
,
\
\
"
B
P
h
a
s
e
R
e
a
c
t
i
v
e
P
o
w
e
r
\
\
"
:
0
.
0
,
\
\
"
B
P
h
a
s
e
P
o
w
e
r
F
a
c
t
o
r
\
\
"
:
0
.
0
,
\
\
"
R
P
h
a
s
e
A
c
t
i
v
e
P
o
w
e
r
\
\
"
:
0
.
0
,
\
\
"
Y
P
h
a
s
e
C
u
r
r
e
n
t
\
\
"
:
0
.
0
,
\
\
"
Y
P
h
a
s
e
V
o
l
t
a
g
e
\
\
"
:
0
.
0
,
\
\
"
R
P
h
a
s
e
C
u
r
r
e
n
t
\
\
"
:
0
.
0
,
\
\
"
B
P
h
a
s
e
A
p
p
a
r
e
n
t
P
o
w
e
r
\
\
"
:
0
.
0
,
\
\
"
d
a
t
a
S
a
m
p
l
i
n
g
I
n
s
t
a
n
t
\
\
"
:
1
5
0
5
1
3
8
4
3
7
.
0
,
\
\
"
E
n
e
r
g
y
A
c
t
i
v
e
\
\
"
:
0
.
0
}
"
,
"
@
v
e
r
s
i
o
n
"
:
"
1
"
,
"
r
o
u
t
i
n
g
-
k
e
y
"
:
"
r
b
c
c
p
s
E
n
e
r
g
y
.
E
M
_
D
0
0
2
5
8
6
0
"
,
"
k
e
y
"
:
"
r
b
c
c
p
s
E
n
e
r
g
y
.
E
M
_
D
0
0
2
5
8
6
0
"
}
}
]
}
}
'
.
.
_
F
O
R
M
:
h
t
t
p
s
:
/
/
d
o
c
s
.
g
o
o
g
l
e
.
c
o
m
/
f
o
r
m
s
/
d
/
e
/
1
F
A
I
p
Q
L
S
c
-
L
_
k
M
a
y
Q
j
p
X
s
I
Z
5
B
U
_
U
C
B
F
I
_
v
6
d
N
P
r
B
c
m
Q
I
H
p
0
J
3
k
B
k
f
y
F
Q
/
v
i
e
w
f
o
r
m
?
c
=
0
&
w
=
1
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ideam-0.0.2.tar.gz
(18.1 kB
view hashes)