mirror of
https://github.com/ansible/awx.git
synced 2026-01-09 23:12:08 -03:30
Imports prototype from ansible-network-ui
The ansible-network-ui prototype project builds a standalone Network UI outside of Tower as its own Django application. The original prototype code is located here: https://github.com/benthomasson/ansible-network-ui. The prototype provides a virtual canvas that supports placing networking devices onto 2D plane and connecting those devices together with connections called links. The point where the link connects to the network device is called an interface. The devices, interfaces, and links may all have their respective names. This models physical networking devices is a simple fashion. The prototype implements a pannable and zoomable 2D canvas in using SVG elements and AngularJS directives. This is done by adding event listeners for mouse and keyboard events to an SVG element that fills the entire browser window. Mouse and keyboard events are handled in a processing pipeline where the processing units are implemented as finite state machines that provide deterministic behavior to the UI. The finite state machines are built in a visual way that makes the states and transitions clearly evident. The visual tool for building FSM is located here: https://github.com/benthomasson/fsm-designer-svg. This tool is a fork of this project where the canvas is the same. The elements on the page are FSM states and the directional connections are called transitions. The bootstrapping of the FSM designer tool and network-ui happen in parallel. It was useful to try experiemental code in FSM designer and then import it into network-ui. The FSM designer tool provides a YAML description of the design which can be used to generate skeleton code and check the implementation against the design for discrepancies. Events supported: * Mouse click * Mouse scroll-wheel * Keyboard events * Touch events Interactions supported: * Pan canvas by clicking-and-dragging on the background * Zooming canvas by scrolling mousewheel * Adding devices and links by using hotkeys * Selecting devices, interaces, and links by clicking on their icon * Editing labels on devices, interfaces, and links by double-clicking on their icon * Moving devices around the canvas by clicking-and-dragging on their icon Device types supported: * router * switch * host * racks The database schema for the prototype is also developed with a visual tool that makes the relationships in the snowflake schema for the models quickly evident. This tool makes it very easy to build queries across multiple tables using Django's query builder. See: https://github.com/benthomasson/db-designer-svg The client and the server communicate asynchronously over a websocket. This allows the UI to be very responsive to user interaction since the full request/response cycle is not needed for every user interaction. The server provides persistence of the UI state in the database using event handlers for events generated in the UI. The UI processes mouse and keyboard events, updates the UI, and generates new types of events that are then sent to the server to be persisted in the database. UI elements are tracked by unique ids generated on the client when an element is first created. This allows the elements to be correctly tracked before they are stored in the database. The history of the UI is stored in the TopologyHistory model which is useful for tracking which client made which change and is useful for implementing undo/redo. Each message is given a unique id per client and has a known message type. Message types are pre-populated in the MessageType model using a database migration. A History message containing all the change messages for a topology is sent when the websocket is connected. This allows for undo/redo work across sessions. This prototype provides a server-side test runner for driving tests in the user interface. Events are emitted on the server to drive the UI. Test code coverage is measured using the istanbul library which produces instrumented client code. Code coverage for the server is is measured by the coverage library. The test code coverage for the Python code is 100%.
This commit is contained in:
parent
1595947ae2
commit
48d801271c
@ -6,3 +6,7 @@ channel_routing = [
|
||||
route("websocket.disconnect", "awx.main.consumers.ws_disconnect", path=r'^/websocket/$'),
|
||||
route("websocket.receive", "awx.main.consumers.ws_receive", path=r'^/websocket/$'),
|
||||
]
|
||||
|
||||
from awx.network_ui.routing import channel_routing as network_routing
|
||||
|
||||
channel_routing += network_routing
|
||||
|
||||
13
awx/network_ui/Makefile
Normal file
13
awx/network_ui/Makefile
Normal file
@ -0,0 +1,13 @@
|
||||
|
||||
|
||||
.PHONY: all models admin
|
||||
|
||||
all: models admin
|
||||
|
||||
models:
|
||||
jinja2 templates/models.pyt designs/models.yml > models.py
|
||||
autopep8 -i models.py
|
||||
|
||||
admin:
|
||||
jinja2 templates/admin.pyt designs/models.yml > admin.py
|
||||
autopep8 -i admin.py
|
||||
0
awx/network_ui/__init__.py
Normal file
0
awx/network_ui/__init__.py
Normal file
71
awx/network_ui/admin.py
Normal file
71
awx/network_ui/admin.py
Normal file
@ -0,0 +1,71 @@
|
||||
from django.contrib import admin
|
||||
|
||||
from awx.network_ui.models import Device
|
||||
|
||||
from awx.network_ui.models import Link
|
||||
|
||||
from awx.network_ui.models import Topology
|
||||
|
||||
from awx.network_ui.models import Client
|
||||
|
||||
from awx.network_ui.models import TopologyHistory
|
||||
|
||||
from awx.network_ui.models import MessageType
|
||||
|
||||
from awx.network_ui.models import Interface
|
||||
|
||||
|
||||
class DeviceAdmin(admin.ModelAdmin):
|
||||
fields = ('topology', 'name', 'x', 'y', 'id', 'type',)
|
||||
raw_id_fields = ('topology',)
|
||||
|
||||
|
||||
admin.site.register(Device, DeviceAdmin)
|
||||
|
||||
|
||||
class LinkAdmin(admin.ModelAdmin):
|
||||
fields = ('from_device', 'to_device', 'from_interface', 'to_interface', 'id', 'name',)
|
||||
raw_id_fields = ('from_device', 'to_device', 'from_interface', 'to_interface',)
|
||||
|
||||
|
||||
admin.site.register(Link, LinkAdmin)
|
||||
|
||||
|
||||
class TopologyAdmin(admin.ModelAdmin):
|
||||
fields = ('name', 'scale', 'panX', 'panY',)
|
||||
raw_id_fields = ()
|
||||
|
||||
|
||||
admin.site.register(Topology, TopologyAdmin)
|
||||
|
||||
|
||||
class ClientAdmin(admin.ModelAdmin):
|
||||
fields = ()
|
||||
raw_id_fields = ()
|
||||
|
||||
|
||||
admin.site.register(Client, ClientAdmin)
|
||||
|
||||
|
||||
class TopologyHistoryAdmin(admin.ModelAdmin):
|
||||
fields = ('topology', 'client', 'message_type', 'message_id', 'message_data', 'undone',)
|
||||
raw_id_fields = ('topology', 'client', 'message_type',)
|
||||
|
||||
|
||||
admin.site.register(TopologyHistory, TopologyHistoryAdmin)
|
||||
|
||||
|
||||
class MessageTypeAdmin(admin.ModelAdmin):
|
||||
fields = ('name',)
|
||||
raw_id_fields = ()
|
||||
|
||||
|
||||
admin.site.register(MessageType, MessageTypeAdmin)
|
||||
|
||||
|
||||
class InterfaceAdmin(admin.ModelAdmin):
|
||||
fields = ('device', 'name', 'id',)
|
||||
raw_id_fields = ('device',)
|
||||
|
||||
|
||||
admin.site.register(Interface, InterfaceAdmin)
|
||||
1
awx/network_ui/constraints.sql
Normal file
1
awx/network_ui/constraints.sql
Normal file
@ -0,0 +1 @@
|
||||
alter table prototype_device add constraint prototype_device_topology_id_unique unique (topology_id, id);
|
||||
779
awx/network_ui/consumers.py
Normal file
779
awx/network_ui/consumers.py
Normal file
@ -0,0 +1,779 @@
|
||||
# In consumers.py
|
||||
from channels import Group, Channel
|
||||
from channels.sessions import channel_session
|
||||
from awx.network_ui.models import Topology, Device, Link, Client, TopologyHistory, MessageType, Interface
|
||||
from awx.network_ui.serializers import yaml_serialize_topology
|
||||
import urlparse
|
||||
from django.db.models import Q
|
||||
from collections import defaultdict
|
||||
from django.conf import settings
|
||||
import math
|
||||
import random
|
||||
|
||||
from awx.network_ui.utils import transform_dict
|
||||
from pprint import pprint
|
||||
import dpath.util
|
||||
|
||||
import json
|
||||
import time
|
||||
# Connected to websocket.connect
|
||||
|
||||
HISTORY_MESSAGE_IGNORE_TYPES = ['DeviceSelected',
|
||||
'DeviceUnSelected',
|
||||
'LinkSelected',
|
||||
'LinkUnSelected',
|
||||
'Undo',
|
||||
'Redo',
|
||||
'MouseEvent',
|
||||
'MouseWheelEvent',
|
||||
'KeyEvent']
|
||||
|
||||
|
||||
SPACING = 200
|
||||
RACK_SPACING = 50
|
||||
settings.RECORDING = False
|
||||
|
||||
|
||||
def circular_layout(topology_id):
|
||||
n = Device.objects.filter(topology_id=topology_id).count()
|
||||
|
||||
r = 200
|
||||
if n > 0:
|
||||
arc_radians = 2 * math.pi / n
|
||||
else:
|
||||
arc_radians = 2 * math.pi
|
||||
|
||||
for i, device in enumerate(Device.objects.filter(topology_id=topology_id)):
|
||||
device.x = math.cos(arc_radians * i + math.pi / 4) * r
|
||||
device.y = math.sin(arc_radians * i + math.pi / 4) * r
|
||||
device.save()
|
||||
|
||||
send_snapshot(Group("topology-%s" % topology_id), topology_id)
|
||||
|
||||
|
||||
def v_distance(graph, grid, device):
|
||||
|
||||
d = 0
|
||||
for edge in graph['edges'][device]:
|
||||
d += math.sqrt(math.pow(device.x - edge.x, 2) + math.pow(device.y - edge.y, 2))
|
||||
|
||||
return d
|
||||
|
||||
|
||||
def reduce_distance(graph, grid):
|
||||
|
||||
devices = graph['vertices']
|
||||
|
||||
def sum_distances():
|
||||
distances = {x: v_distance(graph, grid, x) for x in grid.keys()}
|
||||
return sum(distances.values())
|
||||
|
||||
total_distance = sum_distances()
|
||||
|
||||
for i in xrange(10000):
|
||||
a = random.choice(devices)
|
||||
b = random.choice(devices)
|
||||
if a == b:
|
||||
continue
|
||||
else:
|
||||
swap(grid, a, b)
|
||||
place(grid, a)
|
||||
place(grid, b)
|
||||
new_total = sum_distances()
|
||||
if new_total < total_distance:
|
||||
print "New total", new_total
|
||||
total_distance = new_total
|
||||
a.save()
|
||||
b.save()
|
||||
else:
|
||||
swap(grid, a, b)
|
||||
place(grid, a)
|
||||
place(grid, b)
|
||||
|
||||
|
||||
def place(grid, device):
|
||||
device.x = grid[device][1] * SPACING
|
||||
device.y = grid[device][0] * SPACING
|
||||
|
||||
|
||||
def swap(grid, a, b):
|
||||
tmp = grid[a]
|
||||
grid[a] = grid[b]
|
||||
grid[b] = tmp
|
||||
|
||||
|
||||
def grid_layout(topology_id):
|
||||
n = Device.objects.filter(topology_id=topology_id).count()
|
||||
|
||||
cols = rows = int(math.ceil(math.sqrt(n)))
|
||||
|
||||
def device_seq_generator():
|
||||
for d in Device.objects.filter(topology_id=topology_id):
|
||||
yield d
|
||||
|
||||
device_seq = device_seq_generator()
|
||||
|
||||
grid = {}
|
||||
graph = dict(vertices=[], edges=defaultdict(list))
|
||||
|
||||
links = Link.objects.filter(Q(from_device__topology_id=topology_id) |
|
||||
Q(to_device__topology_id=topology_id))
|
||||
|
||||
for l in links:
|
||||
graph['edges'][l.from_device].append(l.to_device)
|
||||
graph['edges'][l.to_device].append(l.from_device)
|
||||
|
||||
for i in xrange(rows):
|
||||
for j in xrange(cols):
|
||||
try:
|
||||
device = next(device_seq)
|
||||
graph['vertices'].append(device)
|
||||
grid[device] = (i, j)
|
||||
place(grid, device)
|
||||
device.save()
|
||||
except StopIteration:
|
||||
pass
|
||||
|
||||
reduce_distance(graph, grid)
|
||||
|
||||
send_snapshot(Group("topology-%s" % topology_id), topology_id)
|
||||
|
||||
|
||||
def tier_layout(topology_id):
|
||||
|
||||
devices = list(Device.objects.filter(topology_id=topology_id))
|
||||
device_map = {x.pk: x for x in devices}
|
||||
links = Link.objects.filter(Q(from_device__topology_id=topology_id) |
|
||||
Q(to_device__topology_id=topology_id))
|
||||
|
||||
def guess_role(devices):
|
||||
|
||||
for device in devices:
|
||||
if getattr(device, "role", None):
|
||||
continue
|
||||
if device.type == "host":
|
||||
device.role = "host"
|
||||
continue
|
||||
if device.type == "switch":
|
||||
if 'leaf' in device.name.lower():
|
||||
device.role = "leaf"
|
||||
continue
|
||||
if 'spine' in device.name.lower():
|
||||
device.role = "spine"
|
||||
continue
|
||||
device.role = "unknown"
|
||||
|
||||
guess_role(devices)
|
||||
|
||||
edges = defaultdict(set)
|
||||
racks = []
|
||||
|
||||
for l in links:
|
||||
edges[device_map[l.from_device.pk]].add(device_map[l.to_device.pk])
|
||||
edges[device_map[l.to_device.pk]].add(device_map[l.from_device.pk])
|
||||
|
||||
pprint(devices)
|
||||
|
||||
similar_connections = defaultdict(list)
|
||||
|
||||
for device, connections in edges.iteritems():
|
||||
similar_connections[tuple(connections)].append(device)
|
||||
|
||||
pprint(dict(**similar_connections))
|
||||
|
||||
for connections, from_devices in similar_connections.iteritems():
|
||||
if len(from_devices) > 0 and from_devices[0].role == "host":
|
||||
racks.append(from_devices)
|
||||
|
||||
pprint(racks)
|
||||
pprint(devices)
|
||||
|
||||
tiers = defaultdict(list)
|
||||
|
||||
for device in devices:
|
||||
if getattr(device, 'tier', None):
|
||||
pass
|
||||
elif device.role == "leaf":
|
||||
device.tier = 1
|
||||
elif device.role == "spine":
|
||||
device.tier = 2
|
||||
elif device.role == "host":
|
||||
device.tier = 0
|
||||
else:
|
||||
device.tier = 3
|
||||
tiers[device.tier].append(device)
|
||||
|
||||
for rack in racks:
|
||||
rack.sort(key=lambda x: x.name)
|
||||
|
||||
racks.sort(key=lambda x: x[0].name)
|
||||
|
||||
for tier in tiers.values():
|
||||
tier.sort(key=lambda x: x.name)
|
||||
|
||||
pprint(tiers)
|
||||
|
||||
for device in devices:
|
||||
print device, getattr(device, 'tier', None)
|
||||
if getattr(device, 'tier', None) is None:
|
||||
device.y = 0
|
||||
device.x = 0
|
||||
else:
|
||||
device.y = SPACING * 3 - device.tier * SPACING
|
||||
device.x = 0 - (len(tiers[device.tier]) * SPACING) / 2 + tiers[device.tier].index(device) * SPACING
|
||||
device.save()
|
||||
|
||||
for j, rack in enumerate(racks):
|
||||
x = 0 - (len(racks) * SPACING) / 2 + j * SPACING
|
||||
for i, device in enumerate(rack):
|
||||
device.x = x
|
||||
device.y = SPACING * 3 + i * RACK_SPACING
|
||||
device.save()
|
||||
|
||||
send_snapshot(Group("topology-%s" % topology_id), topology_id)
|
||||
|
||||
|
||||
def parse_topology_id(data):
|
||||
topology_id = data.get('topology_id', ['null'])
|
||||
try:
|
||||
topology_id = int(topology_id[0])
|
||||
except ValueError:
|
||||
topology_id = None
|
||||
if not topology_id:
|
||||
topology_id = None
|
||||
return topology_id
|
||||
|
||||
|
||||
# Persistence
|
||||
|
||||
class _Persistence(object):
|
||||
|
||||
def handle(self, message):
|
||||
topology_id = message.get('topology')
|
||||
assert topology_id is not None, "No topology_id"
|
||||
client_id = message.get('client')
|
||||
assert client_id is not None, "No client_id"
|
||||
data = json.loads(message['text'])
|
||||
if isinstance(data[1], list):
|
||||
print "no sender"
|
||||
return
|
||||
if isinstance(data[1], dict) and client_id != data[1].get('sender'):
|
||||
print "client_id mismatch expected:", client_id, "actual:", data[1].get('sender')
|
||||
return
|
||||
message_type = data[0]
|
||||
message_value = data[1]
|
||||
message_type_id = MessageType.objects.get_or_create(name=message_type)[0].pk
|
||||
TopologyHistory(topology_id=topology_id,
|
||||
client_id=client_id,
|
||||
message_type_id=message_type_id,
|
||||
message_id=data[1].get('message_id', 0),
|
||||
message_data=message['text']).save()
|
||||
handler = self.get_handler(message_type)
|
||||
if handler is not None:
|
||||
handler(message_value, topology_id, client_id)
|
||||
else:
|
||||
print "Unsupported message ", message_type
|
||||
|
||||
def get_handler(self, message_type):
|
||||
return getattr(self, "on{0}".format(message_type), None)
|
||||
|
||||
def onDeviceCreate(self, device, topology_id, client_id):
|
||||
device = transform_dict(dict(x='x',
|
||||
y='y',
|
||||
name='name',
|
||||
type='type',
|
||||
id='id'), device)
|
||||
d, _ = Device.objects.get_or_create(topology_id=topology_id, id=device['id'], defaults=device)
|
||||
d.x = device['x']
|
||||
d.y = device['y']
|
||||
d.type = device['type']
|
||||
d.save()
|
||||
|
||||
def onDeviceDestroy(self, device, topology_id, client_id):
|
||||
Device.objects.filter(topology_id=topology_id, id=device['id']).delete()
|
||||
|
||||
def onDeviceMove(self, device, topology_id, client_id):
|
||||
Device.objects.filter(topology_id=topology_id, id=device['id']).update(x=device['x'], y=device['y'])
|
||||
|
||||
def onDeviceLabelEdit(self, device, topology_id, client_id):
|
||||
Device.objects.filter(topology_id=topology_id, id=device['id']).update(name=device['name'])
|
||||
|
||||
def onInterfaceLabelEdit(self, interface, topology_id, client_id):
|
||||
(Interface.objects
|
||||
.filter(device__topology_id=topology_id,
|
||||
id=interface['id'],
|
||||
device__id=interface['device_id'])
|
||||
.update(name=interface['name']))
|
||||
|
||||
def onLinkLabelEdit(self, link, topology_id, client_id):
|
||||
Link.objects.filter(from_device__topology_id=topology_id, id=link['id']).update(name=link['name'])
|
||||
|
||||
def onInterfaceCreate(self, interface, topology_id, client_id):
|
||||
Interface.objects.get_or_create(device_id=Device.objects.get(id=interface['device_id'],
|
||||
topology_id=topology_id).pk,
|
||||
id=interface['id'],
|
||||
defaults=dict(name=interface['name']))
|
||||
|
||||
def onLinkCreate(self, link, topology_id, client_id):
|
||||
device_map = dict(Device.objects
|
||||
.filter(topology_id=topology_id, id__in=[link['from_device_id'], link['to_device_id']])
|
||||
.values_list('id', 'pk'))
|
||||
Link.objects.get_or_create(id=link['id'],
|
||||
name=link['name'],
|
||||
from_device_id=device_map[link['from_device_id']],
|
||||
to_device_id=device_map[link['to_device_id']],
|
||||
from_interface_id=Interface.objects.get(device_id=device_map[link['from_device_id']],
|
||||
id=link['from_interface_id']).pk,
|
||||
to_interface_id=Interface.objects.get(device_id=device_map[link['to_device_id']],
|
||||
id=link['to_interface_id']).pk)
|
||||
|
||||
def onLinkDestroy(self, link, topology_id, client_id):
|
||||
device_map = dict(Device.objects
|
||||
.filter(topology_id=topology_id, id__in=[link['from_device_id'], link['to_device_id']])
|
||||
.values_list('id', 'pk'))
|
||||
Link.objects.filter(id=link['id'],
|
||||
from_device_id=device_map[link['from_device_id']],
|
||||
to_device_id=device_map[link['to_device_id']],
|
||||
from_interface_id=Interface.objects.get(device_id=device_map[link['from_device_id']],
|
||||
id=link['from_interface_id']).pk,
|
||||
to_interface_id=Interface.objects.get(device_id=device_map[link['to_device_id']],
|
||||
id=link['to_interface_id']).pk).delete()
|
||||
|
||||
def onDeviceSelected(self, message_value, topology_id, client_id):
|
||||
'Ignore DeviceSelected messages'
|
||||
pass
|
||||
|
||||
def onDeviceUnSelected(self, message_value, topology_id, client_id):
|
||||
'Ignore DeviceSelected messages'
|
||||
pass
|
||||
|
||||
def onLinkSelected(self, message_value, topology_id, client_id):
|
||||
'Ignore LinkSelected messages'
|
||||
pass
|
||||
|
||||
def onLinkUnSelected(self, message_value, topology_id, client_id):
|
||||
'Ignore LinkSelected messages'
|
||||
pass
|
||||
|
||||
def onUndo(self, message_value, topology_id, client_id):
|
||||
undo_persistence.handle(message_value['original_message'], topology_id, client_id)
|
||||
|
||||
def onRedo(self, message_value, topology_id, client_id):
|
||||
redo_persistence.handle(message_value['original_message'], topology_id, client_id)
|
||||
|
||||
def onMultipleMessage(self, message_value, topology_id, client_id):
|
||||
for message in message_value['messages']:
|
||||
handler = self.get_handler(message['msg_type'])
|
||||
if handler is not None:
|
||||
handler(message, topology_id, client_id)
|
||||
else:
|
||||
print "Unsupported message ", message['msg_type']
|
||||
|
||||
def onDeploy(self, message_value, topology_id, client_id):
|
||||
Group("workers").send({"text": json.dumps(["Deploy", topology_id, yaml_serialize_topology(topology_id)])})
|
||||
|
||||
def onDestroy(self, message_value, topology_id, client_id):
|
||||
Group("workers").send({"text": json.dumps(["Destroy", topology_id])})
|
||||
|
||||
def onDiscover(self, message_value, topology_id, client_id):
|
||||
Group("workers").send({"text": json.dumps(["Discover", topology_id, yaml_serialize_topology(topology_id)])})
|
||||
|
||||
def onLayout(self, message_value, topology_id, client_id):
|
||||
# circular_layout(topology_id)
|
||||
# grid_layout(topology_id)
|
||||
tier_layout(topology_id)
|
||||
|
||||
def onCoverageRequest(self, coverage, topology_id, client_id):
|
||||
pass
|
||||
|
||||
def onCoverage(self, coverage, topology_id, client_id):
|
||||
with open("coverage/coverage{0}.json".format(int(time.time())), "w") as f:
|
||||
f.write(json.dumps(coverage['coverage']))
|
||||
|
||||
def onStartRecording(self, recording, topology_id, client_id):
|
||||
settings.RECORDING = True
|
||||
|
||||
def onStopRecording(self, recording, topology_id, client_id):
|
||||
settings.RECORDING = False
|
||||
|
||||
def write_event(self, event, topology_id, client_id):
|
||||
if settings.RECORDING and event.get('save', True):
|
||||
with open("recording.log", "a") as f:
|
||||
f.write(json.dumps(event))
|
||||
f.write("\n")
|
||||
|
||||
onViewPort = write_event
|
||||
onMouseEvent = write_event
|
||||
onTouchEvent = write_event
|
||||
onMouseWheelEvent = write_event
|
||||
onKeyEvent = write_event
|
||||
|
||||
|
||||
persistence = _Persistence()
|
||||
|
||||
|
||||
class _UndoPersistence(object):
|
||||
|
||||
def handle(self, message, topology_id, client_id):
|
||||
message_type = message[0]
|
||||
message_value = message[1]
|
||||
TopologyHistory.objects.filter(topology_id=topology_id,
|
||||
client_id=message_value['sender'],
|
||||
message_id=message_value['message_id']).update(undone=True)
|
||||
handler = getattr(self, "on{0}".format(message_type), None)
|
||||
if handler is not None:
|
||||
handler(message_value, topology_id, client_id)
|
||||
else:
|
||||
print "Unsupported undo message ", message_type
|
||||
|
||||
def onSnapshot(self, snapshot, topology_id, client_id):
|
||||
pass
|
||||
|
||||
def onDeviceCreate(self, device, topology_id, client_id):
|
||||
persistence.onDeviceDestroy(device, topology_id, client_id)
|
||||
|
||||
def onDeviceDestroy(self, device, topology_id, client_id):
|
||||
inverted = device.copy()
|
||||
inverted['type'] = device['previous_type']
|
||||
inverted['name'] = device['previous_name']
|
||||
inverted['x'] = device['previous_x']
|
||||
inverted['y'] = device['previous_y']
|
||||
persistence.onDeviceCreate(inverted, topology_id, client_id)
|
||||
|
||||
def onDeviceMove(self, device, topology_id, client_id):
|
||||
inverted = device.copy()
|
||||
inverted['x'] = device['previous_x']
|
||||
inverted['y'] = device['previous_y']
|
||||
persistence.onDeviceMove(inverted, topology_id, client_id)
|
||||
|
||||
def onDeviceLabelEdit(self, device, topology_id, client_id):
|
||||
inverted = device.copy()
|
||||
inverted['name'] = device['previous_name']
|
||||
persistence.onDeviceLabelEdit(inverted, topology_id, client_id)
|
||||
|
||||
def onLinkCreate(self, link, topology_id, client_id):
|
||||
persistence.onLinkDestroy(link, topology_id, client_id)
|
||||
|
||||
def onLinkDestroy(self, link, topology_id, client_id):
|
||||
persistence.onLinkCreate(link, topology_id, client_id)
|
||||
|
||||
def onDeviceSelected(self, message_value, topology_id, client_id):
|
||||
'Ignore DeviceSelected messages'
|
||||
pass
|
||||
|
||||
def onDeviceUnSelected(self, message_value, topology_id, client_id):
|
||||
'Ignore DeviceSelected messages'
|
||||
pass
|
||||
|
||||
def onUndo(self, message_value, topology_id, client_id):
|
||||
pass
|
||||
|
||||
|
||||
undo_persistence = _UndoPersistence()
|
||||
|
||||
|
||||
class _RedoPersistence(object):
|
||||
|
||||
def handle(self, message, topology_id, client_id):
|
||||
message_type = message[0]
|
||||
message_value = message[1]
|
||||
TopologyHistory.objects.filter(topology_id=topology_id,
|
||||
client_id=message_value['sender'],
|
||||
message_id=message_value['message_id']).update(undone=False)
|
||||
handler_name = "on{0}".format(message_type)
|
||||
handler = getattr(self, handler_name, getattr(persistence, handler_name, None))
|
||||
if handler is not None:
|
||||
handler(message_value, topology_id, client_id)
|
||||
else:
|
||||
print "Unsupported redo message ", message_type
|
||||
|
||||
def onDeviceSelected(self, message_value, topology_id, client_id):
|
||||
'Ignore DeviceSelected messages'
|
||||
pass
|
||||
|
||||
def onDeviceUnSelected(self, message_value, topology_id, client_id):
|
||||
'Ignore DeviceSelected messages'
|
||||
pass
|
||||
|
||||
def onUndo(self, message_value, topology_id, client_id):
|
||||
'Ignore Undo messages'
|
||||
pass
|
||||
|
||||
def onRedo(self, message_value, topology_id, client_id):
|
||||
'Ignore Redo messages'
|
||||
pass
|
||||
|
||||
|
||||
redo_persistence = _RedoPersistence()
|
||||
|
||||
|
||||
class _Discovery(object):
|
||||
|
||||
def handle(self, message):
|
||||
topology_id = message.get('topology')
|
||||
data = json.loads(message['text'])
|
||||
message_type = data[0]
|
||||
message_value = data[1]
|
||||
handler = self.get_handler(message_type)
|
||||
if handler is not None:
|
||||
handler(message_value, topology_id)
|
||||
else:
|
||||
print "Unsupported message ", message_type
|
||||
|
||||
def get_handler(self, message_type):
|
||||
return getattr(self, "on{0}".format(message_type), None)
|
||||
|
||||
def onFacts(self, message, topology_id):
|
||||
send_updates = False
|
||||
print message['key']
|
||||
name = message['key']
|
||||
device, created = Device.objects.get_or_create(topology_id=topology_id,
|
||||
name=name,
|
||||
defaults=dict(x=0,
|
||||
y=0,
|
||||
type="switch",
|
||||
id=0))
|
||||
|
||||
if created:
|
||||
device.id = device.pk
|
||||
device.save()
|
||||
send_updates = True
|
||||
print "Created device ", device
|
||||
|
||||
interfaces = dpath.util.get(message, '/value/ansible_local/lldp/lldp') or []
|
||||
for interface in interfaces:
|
||||
pprint(interface)
|
||||
for inner_interface in interface.get('interface', []):
|
||||
name = inner_interface.get('name')
|
||||
if not name:
|
||||
continue
|
||||
interface, created = Interface.objects.get_or_create(device_id=device.pk,
|
||||
name=name,
|
||||
defaults=dict(id=0))
|
||||
if created:
|
||||
interface.id = interface.pk
|
||||
interface.save()
|
||||
send_updates = True
|
||||
print "Created interface ", interface
|
||||
|
||||
connected_interface = None
|
||||
connected_device = None
|
||||
|
||||
for chassis in inner_interface.get('chassis', []):
|
||||
name = chassis.get('name', [{}])[0].get('value')
|
||||
if not name:
|
||||
continue
|
||||
connected_device, created = Device.objects.get_or_create(topology_id=topology_id,
|
||||
name=name,
|
||||
defaults=dict(x=0,
|
||||
y=0,
|
||||
type="switch",
|
||||
id=0))
|
||||
if created:
|
||||
connected_device.id = connected_device.pk
|
||||
connected_device.save()
|
||||
send_updates = True
|
||||
print "Created device ", connected_device
|
||||
break
|
||||
|
||||
if connected_device:
|
||||
for port in inner_interface.get('port', []):
|
||||
for port_id in port.get('id', []):
|
||||
if port_id['type'] == 'ifname':
|
||||
name = port_id['value']
|
||||
break
|
||||
connected_interface, created = Interface.objects.get_or_create(device_id=connected_device.pk,
|
||||
name=name,
|
||||
defaults=dict(id=0))
|
||||
if created:
|
||||
connected_interface.id = connected_interface.pk
|
||||
connected_interface.save()
|
||||
print "Created interface ", connected_interface
|
||||
send_updates = True
|
||||
|
||||
if connected_device and connected_interface:
|
||||
exists = Link.objects.filter(Q(from_device_id=device.pk,
|
||||
to_device_id=connected_device.pk,
|
||||
from_interface_id=interface.pk,
|
||||
to_interface_id=connected_interface.pk) |
|
||||
Q(from_device_id=connected_device.pk,
|
||||
to_device_id=device.pk,
|
||||
from_interface_id=connected_interface.pk,
|
||||
to_interface_id=interface.pk)).count() > 0
|
||||
if not exists:
|
||||
link = Link(from_device_id=device.pk,
|
||||
to_device_id=connected_device.pk,
|
||||
from_interface_id=interface.pk,
|
||||
to_interface_id=connected_interface.pk,
|
||||
id=0)
|
||||
link.save()
|
||||
link.id = link.pk
|
||||
link.save()
|
||||
print "Created link ", link
|
||||
send_updates = True
|
||||
|
||||
if send_updates:
|
||||
send_snapshot(Group("topology-%s" % topology_id), topology_id)
|
||||
|
||||
|
||||
discovery = _Discovery()
|
||||
|
||||
# Ansible Connection Events
|
||||
|
||||
|
||||
@channel_session
|
||||
def ansible_connect(message):
|
||||
data = urlparse.parse_qs(message.content['query_string'])
|
||||
topology_id = parse_topology_id(data)
|
||||
message.channel_session['topology_id'] = topology_id
|
||||
|
||||
|
||||
@channel_session
|
||||
def ansible_message(message):
|
||||
# Channel('console_printer').send({"text": message['text']})
|
||||
Group("topology-%s" % message.channel_session['topology_id']).send({"text": message['text']})
|
||||
Channel('discovery').send({"text": message['text'],
|
||||
"topology": message.channel_session['topology_id']})
|
||||
|
||||
|
||||
@channel_session
|
||||
def ansible_disconnect(message):
|
||||
pass
|
||||
|
||||
|
||||
# UI Channel Events
|
||||
|
||||
@channel_session
|
||||
def ws_connect(message):
|
||||
# Accept connection
|
||||
data = urlparse.parse_qs(message.content['query_string'])
|
||||
topology_id = parse_topology_id(data)
|
||||
topology, created = Topology.objects.get_or_create(
|
||||
topology_id=topology_id, defaults=dict(name="topology", scale=1.0, panX=0, panY=0))
|
||||
topology_id = topology.topology_id
|
||||
message.channel_session['topology_id'] = topology_id
|
||||
Group("topology-%s" % topology_id).add(message.reply_channel)
|
||||
client = Client()
|
||||
client.save()
|
||||
message.channel_session['client_id'] = client.pk
|
||||
message.reply_channel.send({"text": json.dumps(["id", client.pk])})
|
||||
message.reply_channel.send({"text": json.dumps(["topology_id", topology_id])})
|
||||
topology_data = transform_dict(dict(topology_id='topology_id',
|
||||
name='name',
|
||||
panX='panX',
|
||||
panY='panY',
|
||||
scale='scale'), topology.__dict__)
|
||||
|
||||
message.reply_channel.send({"text": json.dumps(["Topology", topology_data])})
|
||||
send_snapshot(message.reply_channel, topology_id)
|
||||
send_history(message.reply_channel, topology_id)
|
||||
|
||||
|
||||
def send_snapshot(channel, topology_id):
|
||||
interfaces = defaultdict(list)
|
||||
|
||||
for i in (Interface.objects
|
||||
.filter(device__topology_id=topology_id)
|
||||
.values()):
|
||||
interfaces[i['device_id']].append(i)
|
||||
devices = list(Device.objects
|
||||
.filter(topology_id=topology_id).values())
|
||||
for device in devices:
|
||||
device['interfaces'] = interfaces[device['device_id']]
|
||||
|
||||
links = [dict(id=x['id'],
|
||||
name=x['name'],
|
||||
from_device_id=x['from_device__id'],
|
||||
to_device_id=x['to_device__id'],
|
||||
from_interface_id=x['from_interface__id'],
|
||||
to_interface_id=x['to_interface__id'])
|
||||
for x in list(Link.objects
|
||||
.filter(Q(from_device__topology_id=topology_id) |
|
||||
Q(to_device__topology_id=topology_id))
|
||||
.values('id',
|
||||
'name',
|
||||
'from_device__id',
|
||||
'to_device__id',
|
||||
'from_interface__id',
|
||||
'to_interface__id'))]
|
||||
snapshot = dict(sender=0,
|
||||
devices=devices,
|
||||
links=links)
|
||||
channel.send({"text": json.dumps(["Snapshot", snapshot])})
|
||||
|
||||
|
||||
def send_history(channel, topology_id):
|
||||
history = list(TopologyHistory.objects
|
||||
.filter(topology_id=topology_id)
|
||||
.exclude(message_type__name__in=HISTORY_MESSAGE_IGNORE_TYPES)
|
||||
.exclude(undone=True)
|
||||
.order_by('pk')
|
||||
.values_list('message_data', flat=True)[:1000])
|
||||
channel.send({"text": json.dumps(["History", history])})
|
||||
|
||||
|
||||
@channel_session
|
||||
def ws_message(message):
|
||||
# Send to debug printer
|
||||
# Channel('console_printer').send({"text": message['text']})
|
||||
# Send to all clients editing the topology
|
||||
Group("topology-%s" % message.channel_session['topology_id']).send({"text": message['text']})
|
||||
# Send to persistence handler
|
||||
Channel('persistence').send({"text": message['text'],
|
||||
"topology": message.channel_session['topology_id'],
|
||||
"client": message.channel_session['client_id']})
|
||||
|
||||
|
||||
@channel_session
|
||||
def ws_disconnect(message):
|
||||
Group("topology-%s" % message.channel_session['topology_id']).discard(message.reply_channel)
|
||||
|
||||
|
||||
def console_printer(message):
|
||||
print message['text'] # pragma: no cover
|
||||
|
||||
# Worker channel events
|
||||
|
||||
|
||||
@channel_session
|
||||
def worker_connect(message):
|
||||
Group("workers").add(message.reply_channel)
|
||||
|
||||
|
||||
@channel_session
|
||||
def worker_message(message):
|
||||
# Channel('console_printer').send({"text": message['text']})
|
||||
pass
|
||||
|
||||
|
||||
@channel_session
|
||||
def worker_disconnect(message):
|
||||
pass
|
||||
|
||||
|
||||
# Tester channel events
|
||||
|
||||
@channel_session
|
||||
def tester_connect(message):
|
||||
data = urlparse.parse_qs(message.content['query_string'])
|
||||
topology_id = parse_topology_id(data)
|
||||
message.channel_session['topology_id'] = topology_id
|
||||
client = Client()
|
||||
client.save()
|
||||
message.channel_session['client_id'] = client.pk
|
||||
message.reply_channel.send({"text": json.dumps(["id", client.pk])})
|
||||
message.reply_channel.send({"text": json.dumps(["topology_id", topology_id])})
|
||||
|
||||
|
||||
@channel_session
|
||||
def tester_message(message):
|
||||
# Channel('console_printer').send({"text": message['text']})
|
||||
Group("topology-%s" % message.channel_session['topology_id']).send({"text": message['text']})
|
||||
Channel('persistence').send({"text": message['text'],
|
||||
"topology": message.channel_session['topology_id'],
|
||||
"client": message.channel_session['client_id']})
|
||||
|
||||
|
||||
@channel_session
|
||||
def tester_disconnect(message):
|
||||
pass
|
||||
142
awx/network_ui/designs/models.yml
Normal file
142
awx/network_ui/designs/models.yml
Normal file
@ -0,0 +1,142 @@
|
||||
app: prototype
|
||||
external_models: []
|
||||
models:
|
||||
- display: name
|
||||
fields:
|
||||
- name: device_id
|
||||
pk: true
|
||||
type: AutoField
|
||||
- name: topology
|
||||
ref: Topology
|
||||
ref_field: topology_id
|
||||
type: ForeignKey
|
||||
- len: 200
|
||||
name: name
|
||||
type: CharField
|
||||
- name: x
|
||||
type: IntegerField
|
||||
- name: y
|
||||
type: IntegerField
|
||||
- name: id
|
||||
type: IntegerField
|
||||
- len: 200
|
||||
name: type
|
||||
type: CharField
|
||||
name: Device
|
||||
x: 348
|
||||
y: 124
|
||||
- fields:
|
||||
- name: link_id
|
||||
pk: true
|
||||
type: AutoField
|
||||
- name: from_device
|
||||
ref: Device
|
||||
ref_field: device_id
|
||||
related_name: from_link
|
||||
type: ForeignKey
|
||||
- name: to_device
|
||||
ref: Device
|
||||
ref_field: device_id
|
||||
related_name: to_link
|
||||
type: ForeignKey
|
||||
- name: from_interface
|
||||
ref: Interface
|
||||
ref_field: interface_id
|
||||
related_name: from_link
|
||||
type: ForeignKey
|
||||
- name: to_interface
|
||||
ref: Interface
|
||||
ref_field: interface_id
|
||||
related_name: to_link
|
||||
type: ForeignKey
|
||||
- name: id
|
||||
type: IntegerField
|
||||
- len: 200
|
||||
name: name
|
||||
type: CharField
|
||||
name: Link
|
||||
x: 837
|
||||
y: 10
|
||||
- display: name
|
||||
fields:
|
||||
- name: topology_id
|
||||
pk: true
|
||||
type: AutoField
|
||||
- len: 200
|
||||
name: name
|
||||
type: CharField
|
||||
- name: scale
|
||||
type: FloatField
|
||||
- name: panX
|
||||
type: FloatField
|
||||
- name: panY
|
||||
type: FloatField
|
||||
name: Topology
|
||||
x: 111
|
||||
y: 127
|
||||
- fields:
|
||||
- name: client_id
|
||||
pk: true
|
||||
type: AutoField
|
||||
name: Client
|
||||
x: -455
|
||||
y: 109
|
||||
- fields:
|
||||
- name: topology_history_id
|
||||
pk: true
|
||||
type: AutoField
|
||||
- name: topology
|
||||
ref: Topology
|
||||
ref_field: topology_id
|
||||
type: ForeignKey
|
||||
- name: client
|
||||
ref: Client
|
||||
ref_field: client_id
|
||||
type: ForeignKey
|
||||
- name: message_type
|
||||
ref: MessageType
|
||||
ref_field: message_type_id
|
||||
type: ForeignKey
|
||||
- name: message_id
|
||||
type: IntegerField
|
||||
- name: message_data
|
||||
type: TextField
|
||||
- default: false
|
||||
name: undone
|
||||
type: BooleanField
|
||||
name: TopologyHistory
|
||||
x: -205
|
||||
y: 282
|
||||
- display: name
|
||||
fields:
|
||||
- name: message_type_id
|
||||
pk: true
|
||||
type: AutoField
|
||||
- len: 200
|
||||
name: name
|
||||
type: CharField
|
||||
name: MessageType
|
||||
x: -509
|
||||
y: 383
|
||||
- display: name
|
||||
fields:
|
||||
- name: interface_id
|
||||
pk: true
|
||||
type: AutoField
|
||||
- name: device
|
||||
ref: Device
|
||||
ref_field: device_id
|
||||
type: ForeignKey
|
||||
- len: 200
|
||||
name: name
|
||||
type: CharField
|
||||
- name: id
|
||||
type: IntegerField
|
||||
name: Interface
|
||||
x: 600
|
||||
y: 243
|
||||
modules: []
|
||||
view:
|
||||
panX: 213.72955551921206
|
||||
panY: 189.44695909464298
|
||||
scaleXY: 0.6900000000000002
|
||||
0
awx/network_ui/management/__init__.py
Normal file
0
awx/network_ui/management/__init__.py
Normal file
0
awx/network_ui/management/commands/__init__.py
Normal file
0
awx/network_ui/management/commands/__init__.py
Normal file
@ -0,0 +1,147 @@
|
||||
from django.core.management.base import BaseCommand
|
||||
from awx.network_ui.models import Topology, Device, Link, Interface
|
||||
|
||||
from collections import defaultdict
|
||||
|
||||
|
||||
def natural_numbers():
|
||||
i = 1
|
||||
while True:
|
||||
yield i
|
||||
i += 1
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = '''Creates a 2 tier clos topology with n nodes in the 1st tier and m nodes
|
||||
in the 2nd tier and h hosts per pair of switches'''
|
||||
|
||||
def add_arguments(self, parser):
|
||||
parser.add_argument('n', type=int)
|
||||
parser.add_argument('m', type=int)
|
||||
parser.add_argument('h', type=int)
|
||||
|
||||
def handle(self, *args, **options):
|
||||
|
||||
n = options['n']
|
||||
m = options['m']
|
||||
h = options['h']
|
||||
|
||||
print "n", n
|
||||
print "m", m
|
||||
|
||||
topology = Topology(name="test_{0}".format(n), scale=1.0, panX=0, panY=0)
|
||||
topology.save()
|
||||
|
||||
devices = []
|
||||
hosts_per_leaf = []
|
||||
leaves = []
|
||||
spines = []
|
||||
|
||||
id_seq = natural_numbers()
|
||||
|
||||
tier2 = 100
|
||||
tier1 = 500
|
||||
tier0 = 900
|
||||
spacing = 200
|
||||
|
||||
tier2_centering = ((n - m) * 200) / 2
|
||||
|
||||
for i in xrange(n):
|
||||
device = Device(name="Leaf{0}".format(i),
|
||||
x=i * spacing,
|
||||
y=tier1,
|
||||
id=next(id_seq),
|
||||
type="switch",
|
||||
topology_id=topology.pk)
|
||||
devices.append(device)
|
||||
leaves.append(device)
|
||||
|
||||
for i in xrange(m):
|
||||
device = Device(name="Spine{0}".format(i),
|
||||
x=(i * spacing) + tier2_centering,
|
||||
y=tier2,
|
||||
id=next(id_seq),
|
||||
type="switch",
|
||||
topology_id=topology.pk)
|
||||
devices.append(device)
|
||||
spines.append(device)
|
||||
|
||||
for i in xrange(n / 2):
|
||||
hosts = []
|
||||
for j in xrange(h):
|
||||
device = Device(name="Host{0}-{1}".format(i, j),
|
||||
x=(i * 2 * spacing) + spacing / 2,
|
||||
y=tier0 + (j * 40),
|
||||
id=next(id_seq),
|
||||
type="host",
|
||||
topology_id=topology.pk)
|
||||
devices.append(device)
|
||||
hosts.append(device)
|
||||
hosts_per_leaf.append(hosts)
|
||||
|
||||
print "leaves", leaves
|
||||
print "spines", spines
|
||||
print "hosts_per_leaf", hosts_per_leaf
|
||||
|
||||
Device.objects.bulk_create(devices)
|
||||
|
||||
devices = {x.id: x for x in Device.objects.filter(topology_id=topology.pk)}
|
||||
|
||||
links = []
|
||||
interfaces = defaultdict(list)
|
||||
|
||||
for leaf in leaves:
|
||||
for spine in spines:
|
||||
from_interface = Interface(device=devices[leaf.id],
|
||||
name="swp" + str(len(interfaces[leaf.id]) + 1),
|
||||
id=(len(interfaces[leaf.id]) + 1))
|
||||
from_interface.save()
|
||||
interfaces[leaf.id].append(from_interface)
|
||||
to_interface = Interface(device=devices[spine.id],
|
||||
name="swp" + str(len(interfaces[spine.id]) + 1),
|
||||
id=(len(interfaces[spine.id]) + 1))
|
||||
to_interface.save()
|
||||
interfaces[spine.id].append(to_interface)
|
||||
link = Link(from_device=devices[leaf.id],
|
||||
to_device=devices[spine.id],
|
||||
from_interface=from_interface,
|
||||
to_interface=to_interface)
|
||||
links.append(link)
|
||||
for i, hosts in enumerate(hosts_per_leaf):
|
||||
leaf1 = leaves[2 * i]
|
||||
leaf2 = leaves[2 * i + 1]
|
||||
for j, host in enumerate(hosts):
|
||||
from_interface = Interface(device=devices[leaf1.id],
|
||||
name="swp" + str(len(interfaces[leaf1.id]) + 1),
|
||||
id=(len(interfaces[leaf1.id]) + 1))
|
||||
from_interface.save()
|
||||
interfaces[leaf1.id].append(from_interface)
|
||||
to_interface = Interface(device=devices[host.id],
|
||||
name="eth" + str(len(interfaces[host.id]) + 1),
|
||||
id=(len(interfaces[host.id]) + 1))
|
||||
to_interface.save()
|
||||
interfaces[host.id].append(to_interface)
|
||||
link = Link(from_device=devices[leaf1.id],
|
||||
to_device=devices[host.id],
|
||||
from_interface=from_interface,
|
||||
to_interface=to_interface)
|
||||
links.append(link)
|
||||
from_interface = Interface(device=devices[leaf2.id],
|
||||
name="swp" + str(len(interfaces[leaf2.id]) + 1),
|
||||
id=(len(interfaces[leaf2.id]) + 1))
|
||||
from_interface.save()
|
||||
interfaces[leaf2.id].append(from_interface)
|
||||
to_interface = Interface(device=devices[host.id],
|
||||
name="eth" + str(len(interfaces[host.id]) + 1),
|
||||
id=(len(interfaces[host.id]) + 1))
|
||||
to_interface.save()
|
||||
interfaces[host.id].append(to_interface)
|
||||
link = Link(from_device=devices[leaf2.id],
|
||||
to_device=devices[host.id],
|
||||
from_interface=from_interface,
|
||||
to_interface=to_interface)
|
||||
links.append(link)
|
||||
|
||||
Link.objects.bulk_create(links)
|
||||
|
||||
print "Topology: ", topology.pk
|
||||
@ -0,0 +1,54 @@
|
||||
from django.core.management.base import BaseCommand
|
||||
from awx.network_ui.models import Topology, Device, Link
|
||||
|
||||
import math
|
||||
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = 'Creates a fully connected topology with n nodes'
|
||||
|
||||
def add_arguments(self, parser):
|
||||
parser.add_argument('n', type=int)
|
||||
|
||||
def handle(self, *args, **options):
|
||||
|
||||
n = options['n']
|
||||
|
||||
topology = Topology(name="test_{0}".format(n), scale=1.0, panX=0, panY=0)
|
||||
topology.save()
|
||||
|
||||
devices = []
|
||||
|
||||
r = 1000
|
||||
if n > 0:
|
||||
arc_radians = 2 * math.pi / n
|
||||
else:
|
||||
arc_radians = 2 * math.pi
|
||||
|
||||
|
||||
for i in xrange(n):
|
||||
device = Device(name="R{0}".format(i),
|
||||
x=math.cos(arc_radians*i)*r,
|
||||
y=math.sin(arc_radians*i)*r,
|
||||
id=i,
|
||||
type="router",
|
||||
topology_id=topology.pk)
|
||||
devices.append(device)
|
||||
|
||||
Device.objects.bulk_create(devices)
|
||||
|
||||
devices = {x.id: x for x in Device.objects.filter(topology_id=topology.pk)}
|
||||
|
||||
links = []
|
||||
|
||||
for i in xrange(n):
|
||||
for j in xrange(i):
|
||||
if i == j:
|
||||
continue
|
||||
link = Link(from_device=devices[i],
|
||||
to_device=devices[j])
|
||||
links.append(link)
|
||||
Link.objects.bulk_create(links)
|
||||
|
||||
print "Topology: ", topology.pk
|
||||
16
awx/network_ui/management/commands/dump_topology.py
Normal file
16
awx/network_ui/management/commands/dump_topology.py
Normal file
@ -0,0 +1,16 @@
|
||||
from django.core.management.base import BaseCommand
|
||||
|
||||
from awx.network_ui.serializers import yaml_serialize_topology
|
||||
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = 'Dumps data of a topology to a yaml file'
|
||||
|
||||
def add_arguments(self, parser):
|
||||
parser.add_argument('topology_id', type=int)
|
||||
|
||||
def handle(self, *args, **options):
|
||||
topology_id = options['topology_id']
|
||||
|
||||
print yaml_serialize_topology(topology_id)
|
||||
23
awx/network_ui/management/commands/find_duplicates.py
Normal file
23
awx/network_ui/management/commands/find_duplicates.py
Normal file
@ -0,0 +1,23 @@
|
||||
|
||||
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.db.models import Count
|
||||
|
||||
from awx.network_ui.models import Device
|
||||
from pprint import pprint
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
|
||||
def handle(self, *args, **options):
|
||||
dups = list(Device.objects
|
||||
.values('topology_id', 'id')
|
||||
.annotate(Count('pk'))
|
||||
.order_by()
|
||||
.filter(pk__count__gt=1))
|
||||
pprint(dups)
|
||||
for dup in dups:
|
||||
del dup['pk__count']
|
||||
pprint(list(Device.objects
|
||||
.filter(**dup)
|
||||
.values()))
|
||||
52
awx/network_ui/management/commands/replay_recording.py
Normal file
52
awx/network_ui/management/commands/replay_recording.py
Normal file
@ -0,0 +1,52 @@
|
||||
from django.core.management.base import BaseCommand
|
||||
|
||||
from websocket import create_connection
|
||||
from ui_test import MessageHandler, _Time
|
||||
from awx.network_ui.models import Device, TopologyHistory
|
||||
|
||||
import json
|
||||
|
||||
time = _Time()
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
|
||||
def add_arguments(self, parser):
|
||||
parser.add_argument('topology_id', type=int)
|
||||
parser.add_argument('recording')
|
||||
parser.add_argument('--time-scale', dest="time_scale", default=1.0, type=float)
|
||||
parser.add_argument('--delete-topology-at-start', dest="delete_topolgy", action="store_true", default=False)
|
||||
|
||||
def handle(self, *args, **options):
|
||||
print options['topology_id']
|
||||
print options['recording']
|
||||
topology_id = options['topology_id']
|
||||
if options['delete_topolgy'] is True:
|
||||
TopologyHistory.objects.filter(topology_id=topology_id).delete()
|
||||
Device.objects.filter(topology_id=topology_id).delete()
|
||||
time.scale = options.get('time_scale', 1.0)
|
||||
ui = MessageHandler(create_connection("ws://localhost:8001/network_ui/topology?topology_id={0}".format(options['topology_id'])))
|
||||
ui.recv()
|
||||
ui.recv()
|
||||
ui.send('StopRecording')
|
||||
ui.send('StartReplay')
|
||||
if options['delete_topolgy'] is True:
|
||||
ui.send_message(['History', []])
|
||||
ui.send('Snapshot', sender=ui.client_id, devices=[], links=[])
|
||||
messages = []
|
||||
with open(options['recording']) as f:
|
||||
for line in f.readlines():
|
||||
messages.append(json.loads(line))
|
||||
messages = sorted(messages, key=lambda x: x['message_id'])
|
||||
|
||||
for message in messages:
|
||||
message['sender'] = ui.client_id
|
||||
message['save'] = False
|
||||
ui.send_message([message['msg_type'], message])
|
||||
if message['msg_type'] == "ViewPort":
|
||||
time.sleep(10)
|
||||
else:
|
||||
time.sleep(1)
|
||||
ui.send('StopReplay')
|
||||
ui.send('CoverageRequest')
|
||||
ui.close()
|
||||
537
awx/network_ui/management/commands/ui_test.py
Normal file
537
awx/network_ui/management/commands/ui_test.py
Normal file
@ -0,0 +1,537 @@
|
||||
from django.core.management.base import BaseCommand
|
||||
import unittest
|
||||
from websocket import create_connection
|
||||
import json
|
||||
import yaml
|
||||
import time as real_time
|
||||
import requests
|
||||
|
||||
|
||||
class _Time(object):
|
||||
|
||||
def __init__(self, scale=1.0):
|
||||
self.scale = scale
|
||||
|
||||
def sleep(self, n):
|
||||
real_time.sleep(n * self.scale)
|
||||
|
||||
|
||||
time = _Time()
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
|
||||
def add_arguments(self, parser):
|
||||
parser.add_argument('--time-scale', dest="time_scale", default=1.0, type=float)
|
||||
parser.add_argument('--verbose', dest="verbose", action="store_true", default=False)
|
||||
parser.add_argument('-q', '--quiet', dest="quiet", action="store_true", default=False)
|
||||
parser.add_argument('-f', '--failfast', dest="failfast", action="store_true", default=False)
|
||||
parser.add_argument('-b', '--buffer', dest="buffer", action="store_true", default=False)
|
||||
parser.add_argument('suites', nargs="*")
|
||||
|
||||
def handle(self, *args, **options):
|
||||
time.scale = options.get('time_scale', 1.0)
|
||||
loader = unittest.TestLoader()
|
||||
test_suites = [TestUI,
|
||||
TestUIWebSocket,
|
||||
TestUndoPersistence,
|
||||
TestRedoPersistence,
|
||||
TestPersistence,
|
||||
TestViews,
|
||||
TestWorkerWebSocket,
|
||||
TestAnsibleWebSocket,
|
||||
TestInvalidValues]
|
||||
if options.get('suites'):
|
||||
test_suites = [x for x in test_suites if x.__name__ in options['suites']]
|
||||
tests = [loader.loadTestsFromTestCase(x) for x in test_suites]
|
||||
unittest.TextTestRunner(failfast=options.get('failfast'),
|
||||
verbosity=0 if options.get('quiet') else 2 if options.get('verbose') else 1,
|
||||
buffer=options.get('buffer')).run(unittest.TestSuite(tests))
|
||||
|
||||
ui = MessageHandler(create_connection("ws://localhost:8001/network_ui/topology?topology_id=143"))
|
||||
ui.recv()
|
||||
ui.recv()
|
||||
ui.send('CoverageRequest')
|
||||
ui.close()
|
||||
|
||||
|
||||
class TestViews(unittest.TestCase):
|
||||
|
||||
def test_index(self):
|
||||
requests.get("http://localhost:8001/network_ui")
|
||||
|
||||
|
||||
class MessageHandler(object):
|
||||
|
||||
def __init__(self, ws):
|
||||
self.ws = ws
|
||||
self.client_id = None
|
||||
self.topology_id = None
|
||||
self.receieved_messages = []
|
||||
self.message_id = 0
|
||||
|
||||
def handle_message(self, message):
|
||||
message = json.loads(message)
|
||||
self.receieved_messages.append(message)
|
||||
if message[0] == "id":
|
||||
self.client_id = message[1]
|
||||
if message[0] == "topology_id":
|
||||
self.topology_id = message[1]
|
||||
|
||||
def make_message(self, msg_type, **kwargs):
|
||||
kwargs['sender'] = self.client_id
|
||||
kwargs['msg_type'] = msg_type
|
||||
kwargs['message_id'] = self.message_id
|
||||
self.message_id += 1
|
||||
return [msg_type, kwargs]
|
||||
|
||||
def send(self, msg_type, **kwargs):
|
||||
self.ws.send(json.dumps(self.make_message(msg_type, **kwargs)))
|
||||
|
||||
def send_message(self, message):
|
||||
self.ws.send(json.dumps(message))
|
||||
|
||||
def send_multiple(self, messages):
|
||||
self.ws.send(json.dumps(['MultipleMessage', dict(sender=self.client_id, messages=messages)]))
|
||||
|
||||
def recv(self):
|
||||
msg = self.ws.recv()
|
||||
self.handle_message(msg)
|
||||
return msg
|
||||
|
||||
def close(self):
|
||||
self.ws.close()
|
||||
|
||||
|
||||
class TestWorkerWebSocket(unittest.TestCase):
|
||||
|
||||
def test(self):
|
||||
self.worker = MessageHandler(create_connection("ws://localhost:8001/network_ui/worker?topology_id=143"))
|
||||
self.ui = MessageHandler(create_connection("ws://localhost:8001/network_ui/tester?topology_id=143"))
|
||||
self.ui.recv()
|
||||
self.ui.recv()
|
||||
self.ui.send("Deploy")
|
||||
self.assertTrue(self.worker.recv())
|
||||
self.ui.send("Destroy")
|
||||
self.assertTrue(self.worker.recv())
|
||||
self.worker.send("Hi")
|
||||
|
||||
def tearDown(self):
|
||||
self.worker.close()
|
||||
self.ui.close()
|
||||
|
||||
|
||||
class TestAnsibleWebSocket(unittest.TestCase):
|
||||
|
||||
def test(self):
|
||||
self.ws = MessageHandler(create_connection("ws://localhost:8001/network_ui/ansible?topology_id=143"))
|
||||
self.ws.send('Facts', foo=5)
|
||||
|
||||
def tearDown(self):
|
||||
self.ws.close()
|
||||
|
||||
|
||||
class TestPersistence(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.ws = MessageHandler(create_connection("ws://localhost:8001/network_ui/tester?topology_id=143"))
|
||||
self.ws.recv()
|
||||
self.ws.recv()
|
||||
|
||||
def tearDown(self):
|
||||
self.ws.close()
|
||||
|
||||
def test_DeviceCreate(self):
|
||||
self.ws.send('DeviceCreate', name="TestSwitch", x=0, y=500, type="switch", id=100)
|
||||
time.sleep(1)
|
||||
self.ws.send('DeviceDestroy',
|
||||
previous_name="TestSwitch",
|
||||
previous_x=0,
|
||||
previous_y=500,
|
||||
previous_type="switch",
|
||||
id=100)
|
||||
|
||||
def test_DeviceLabelEdit(self):
|
||||
self.ws.send('DeviceCreate', name="TestSwitch", x=0, y=500, type="switch", id=100)
|
||||
time.sleep(1)
|
||||
self.ws.send('DeviceLabelEdit', name="Foo", previous_name="TestSwitch", id=100)
|
||||
self.ws.send('DeviceDestroy',
|
||||
previous_name="TestSwitch",
|
||||
previous_x=0,
|
||||
previous_y=500,
|
||||
previous_type="switch",
|
||||
id=100)
|
||||
|
||||
def test_DeviceMove(self):
|
||||
#self.ws.send('DeviceCreate', name="TestSwitch", x=0, y=500, type="switch", id=100)
|
||||
self.ws.send_multiple([
|
||||
dict(msg_type='DeviceCreate', name="TestSwitchA", x=100, y=100, type="switch", id=100),
|
||||
dict(msg_type='DeviceCreate', name="TestSwitchB", x=900, y=100, type="switch", id=101),
|
||||
dict(msg_type='InterfaceCreate', name="swp1", id=1, device_id=100),
|
||||
dict(msg_type='InterfaceCreate', name="swp1", id=1, device_id=101),
|
||||
dict(msg_type='LinkCreate', id=100, name="A to B", from_device_id=100, to_device_id=101, from_interface_id=1, to_interface_id=1)])
|
||||
time.sleep(1)
|
||||
for i in xrange(1, 1000):
|
||||
time.sleep(0.01)
|
||||
self.ws.send('DeviceMove', x=i, y=500, previous_x=i - 1, previous_y=500, id=100)
|
||||
time.sleep(1)
|
||||
self.ws.send('DeviceDestroy',
|
||||
previous_name="TestSwitch",
|
||||
previous_x=0,
|
||||
previous_y=500,
|
||||
previous_type="switch",
|
||||
id=100)
|
||||
|
||||
def test_LinkEdit_InterfaceEdit_LinkDestroy(self):
|
||||
self.ws.send_multiple([
|
||||
dict(msg_type='DeviceCreate', name="TestSwitchA", x=100, y=100, type="switch", id=100),
|
||||
dict(msg_type='DeviceCreate', name="TestSwitchB", x=900, y=100, type="switch", id=101),
|
||||
dict(msg_type='InterfaceCreate', name="swp1", id=1, device_id=100),
|
||||
dict(msg_type='InterfaceCreate', name="swp1", id=1, device_id=101),
|
||||
dict(msg_type='LinkCreate', id=100, name="A to B", from_device_id=100, to_device_id=101, from_interface_id=1, to_interface_id=1)])
|
||||
time.sleep(1)
|
||||
self.ws.send('InterfaceLabelEdit', id=1, device_id=100, name="swp2", previous_name="swp1")
|
||||
time.sleep(1)
|
||||
self.ws.send('LinkLabelEdit', id=100, name="B to A", previous_name="A to B")
|
||||
time.sleep(1)
|
||||
self.ws.send('LinkDestroy', id=100, from_device_id=100, to_device_id=101, from_interface_id=1, to_interface_id=1)
|
||||
self.ws.send('DeviceDestroy',
|
||||
previous_name="TestSwitch",
|
||||
previous_x=0,
|
||||
previous_y=500,
|
||||
previous_type="switch",
|
||||
id=100)
|
||||
self.ws.send('DeviceDestroy',
|
||||
previous_name="TestSwitch",
|
||||
previous_x=0,
|
||||
previous_y=500,
|
||||
previous_type="switch",
|
||||
id=101)
|
||||
|
||||
|
||||
class TestUndoPersistence(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.ws = MessageHandler(create_connection("ws://localhost:8001/network_ui/tester?topology_id=143"))
|
||||
self.ws.recv()
|
||||
self.ws.recv()
|
||||
|
||||
def test_unsupported(self):
|
||||
self.ws.send("Undo", original_message=['NotSupported', dict(sender=0, message_id=-1)])
|
||||
|
||||
def test_undo(self):
|
||||
self.ws.send("Undo", original_message=['Undo', dict(sender=0, message_id=-1)])
|
||||
|
||||
def test_redo(self):
|
||||
self.ws.send("Undo", original_message=['Redo', dict(sender=0, message_id=-1)])
|
||||
|
||||
def test_DeviceCreate(self):
|
||||
msg = self.ws.make_message('DeviceCreate', name="TestSwitch", x=0, y=500, type="switch", id=100)
|
||||
self.ws.send_message(msg)
|
||||
self.ws.send("Undo", original_message=msg)
|
||||
|
||||
def test_DeviceDestroy(self):
|
||||
msg = self.ws.make_message('DeviceCreate', name="TestSwitch", x=0, y=500, type="switch", id=100)
|
||||
self.ws.send_message(msg)
|
||||
msg = self.ws.make_message('DeviceDestroy',
|
||||
previous_name="TestSwitch",
|
||||
previous_x=0,
|
||||
previous_y=500,
|
||||
previous_type="switch",
|
||||
id=100)
|
||||
self.ws.send_message(msg)
|
||||
self.ws.send("Undo", original_message=msg)
|
||||
|
||||
def test_DeviceMove(self):
|
||||
msg = self.ws.make_message('DeviceCreate', name="TestSwitch", x=0, y=500, type="switch", id=100)
|
||||
self.ws.send_message(msg)
|
||||
msg = self.ws.make_message('DeviceMove', x=100, y=100, previous_x=0, previous_y=500, id=100)
|
||||
self.ws.send_message(msg)
|
||||
self.ws.send("Undo", original_message=msg)
|
||||
|
||||
def test_DeviceLabelEdit(self):
|
||||
msg = self.ws.make_message('DeviceCreate', name="TestSwitch", x=0, y=500, type="switch", id=100)
|
||||
self.ws.send_message(msg)
|
||||
msg = self.ws.make_message('DeviceLabelEdit', name="Foo", previous_name="TestSwitch", id=100)
|
||||
self.ws.send_message(msg)
|
||||
self.ws.send("Undo", original_message=msg)
|
||||
|
||||
def test_DeviceSelected_DeviceUnSelected(self):
|
||||
self.ws.send("Undo", original_message=['DeviceSelected', dict(sender=0, message_id=-1)])
|
||||
self.ws.send("Undo", original_message=['DeviceUnSelected', dict(sender=0, message_id=-1)])
|
||||
|
||||
def test_Snapshot(self):
|
||||
self.ws.send("Undo", original_message=['Snapshot', dict(sender=0, message_id=-1)])
|
||||
|
||||
def tearDown(self):
|
||||
self.ws.close()
|
||||
|
||||
def test_LinkEdit_InterfaceEdit_LinkDestroy(self):
|
||||
self.ws.send_multiple([
|
||||
dict(msg_type='DeviceCreate', name="TestSwitchA", x=100, y=100, type="switch", id=100),
|
||||
dict(msg_type='DeviceCreate', name="TestSwitchB", x=900, y=100, type="switch", id=101),
|
||||
dict(msg_type='InterfaceCreate', name="swp1", id=1, device_id=100),
|
||||
dict(msg_type='InterfaceCreate', name="swp1", id=1, device_id=101)])
|
||||
|
||||
time.sleep(1)
|
||||
|
||||
msg = self.ws.make_message('LinkCreate', id=100, name="A to B", from_device_id=100, to_device_id=101, from_interface_id=1, to_interface_id=1)
|
||||
self.ws.send_message(msg)
|
||||
self.ws.send('Undo', original_message=msg)
|
||||
time.sleep(1)
|
||||
self.ws.send('Redo', original_message=msg)
|
||||
time.sleep(1)
|
||||
msg = self.ws.make_message('LinkDestroy', id=100, name="A to B", from_device_id=100, to_device_id=101, from_interface_id=1, to_interface_id=1)
|
||||
time.sleep(1)
|
||||
self.ws.send_message(msg)
|
||||
self.ws.send('Undo', original_message=msg)
|
||||
time.sleep(1)
|
||||
|
||||
self.ws.send('DeviceDestroy',
|
||||
previous_name="TestSwitch",
|
||||
previous_x=0,
|
||||
previous_y=500,
|
||||
previous_type="switch",
|
||||
id=100)
|
||||
self.ws.send('DeviceDestroy',
|
||||
previous_name="TestSwitch",
|
||||
previous_x=0,
|
||||
previous_y=500,
|
||||
previous_type="switch",
|
||||
id=101)
|
||||
|
||||
|
||||
class TestRedoPersistence(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.ws = MessageHandler(create_connection("ws://localhost:8001/network_ui/tester?topology_id=143"))
|
||||
self.ws.recv()
|
||||
self.ws.recv()
|
||||
|
||||
def test_unsupported(self):
|
||||
self.ws.send("Redo", original_message=['NotSupported', dict(sender=0, message_id=-1)])
|
||||
|
||||
def test_undo(self):
|
||||
self.ws.send("Redo", original_message=['Undo', dict(sender=0, message_id=-1)])
|
||||
|
||||
def test_redo(self):
|
||||
self.ws.send("Redo", original_message=['Redo', dict(sender=0, message_id=-1)])
|
||||
|
||||
def test_DeviceSelected_DeviceUnSelected(self):
|
||||
self.ws.send("Redo", original_message=['DeviceSelected', dict(sender=0, message_id=-1)])
|
||||
self.ws.send("Redo", original_message=['DeviceUnSelected', dict(sender=0, message_id=-1)])
|
||||
|
||||
def test_Snapshot(self):
|
||||
self.ws.send("Redo", original_message=['Snapshot', dict(sender=0, message_id=-1)])
|
||||
|
||||
def tearDown(self):
|
||||
self.ws.close()
|
||||
|
||||
|
||||
class TestUIWebSocket(unittest.TestCase):
|
||||
|
||||
def test(self):
|
||||
self.ui = MessageHandler(create_connection("ws://localhost:8001/network_ui/topology?topology_id=143"))
|
||||
self.ui.recv()
|
||||
self.ui.recv()
|
||||
self.ui.send("Hello")
|
||||
|
||||
def tearDown(self):
|
||||
self.ui.close()
|
||||
|
||||
|
||||
class TestUI(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.ws = MessageHandler(create_connection("ws://localhost:8001/network_ui/tester?topology_id=143"))
|
||||
self.ui = MessageHandler(create_connection("ws://localhost:8001/network_ui/topology?topology_id=143"))
|
||||
self.ws.recv()
|
||||
self.ws.recv()
|
||||
self.ui.recv()
|
||||
self.ui.recv()
|
||||
|
||||
def tearDown(self):
|
||||
self.ui.close()
|
||||
self.ws.close()
|
||||
|
||||
def test_DeviceStatus(self):
|
||||
self.ws.send('DeviceCreate', name="TestSwitch", x=0, y=500, type="switch", id=100)
|
||||
self.ws.send('DeviceMove', x=100, y=100, previous_x=0, previous_y=500, id=100)
|
||||
self.ws.send('DeviceStatus', name="TestSwitch", working=True, status=None)
|
||||
time.sleep(1)
|
||||
self.ws.send('DeviceStatus', name="TestSwitch", working=False, status="pass")
|
||||
time.sleep(1)
|
||||
self.ws.send('DeviceDestroy',
|
||||
previous_name="TestSwitch",
|
||||
previous_x=0,
|
||||
previous_y=500,
|
||||
previous_type="switch",
|
||||
id=100)
|
||||
|
||||
def test_TaskStatus(self):
|
||||
self.ws.send('DeviceCreate', name="TestSwitch", x=0, y=500, type="switch", id=100)
|
||||
self.ws.send('DeviceMove', x=100, y=100, previous_x=0, previous_y=500, id=100)
|
||||
self.ws.send('TaskStatus', device_name="TestSwitch", task_id="1", working=True, status=None)
|
||||
time.sleep(1)
|
||||
self.ws.send('TaskStatus', device_name="TestSwitch", task_id="1", working=False, status="pass")
|
||||
time.sleep(1)
|
||||
self.ws.send('DeviceDestroy',
|
||||
previous_name="TestSwitch",
|
||||
previous_x=0,
|
||||
previous_y=500,
|
||||
previous_type="switch",
|
||||
id=100)
|
||||
|
||||
def test_DeviceSelect(self):
|
||||
self.ws.send('DeviceCreate', name="TestSwitch", x=0, y=500, type="switch", id=100)
|
||||
self.ws.send('DeviceMove', x=100, y=100, previous_x=0, previous_y=500, id=100)
|
||||
self.ws.send('DeviceSelected', id=100)
|
||||
time.sleep(1)
|
||||
self.ws.send('DeviceUnSelected', id=100)
|
||||
time.sleep(1)
|
||||
self.ws.send('DeviceDestroy',
|
||||
previous_name="TestSwitch",
|
||||
previous_x=0,
|
||||
previous_y=500,
|
||||
previous_type="switch",
|
||||
id=100)
|
||||
|
||||
def test_LinkSelect(self):
|
||||
self.ws.send('DeviceCreate', name="TestSwitchA", x=100, y=100, type="switch", id=100)
|
||||
self.ws.send('DeviceCreate', name="TestSwitchB", x=900, y=100, type="switch", id=101)
|
||||
self.ws.send('InterfaceCreate', name="swp1", id=1, device_id=100)
|
||||
self.ws.send('InterfaceCreate', name="swp1", id=1, device_id=101)
|
||||
time.sleep(1)
|
||||
self.ws.send('LinkCreate', id=100, name="A to B", from_device_id=100, to_device_id=101, from_interface_id=1, to_interface_id=1)
|
||||
self.ws.send('LinkSelected', id=100)
|
||||
time.sleep(1)
|
||||
self.ws.send('LinkUnSelected', id=100)
|
||||
time.sleep(1)
|
||||
self.ws.send('DeviceDestroy',
|
||||
previous_name="TestSwitch",
|
||||
previous_x=0,
|
||||
previous_y=500,
|
||||
previous_type="switch",
|
||||
id=100)
|
||||
self.ws.send('DeviceDestroy',
|
||||
previous_name="TestSwitch",
|
||||
previous_x=0,
|
||||
previous_y=500,
|
||||
previous_type="switch",
|
||||
id=101)
|
||||
|
||||
def test_LinkSelect2(self):
|
||||
self.ws.send_multiple([
|
||||
dict(msg_type='DeviceCreate', name="TestSwitchA", x=100, y=100, type="switch", id=100),
|
||||
dict(msg_type='DeviceCreate', name="TestSwitchB", x=900, y=100, type="switch", id=101),
|
||||
dict(msg_type='InterfaceCreate', name="swp1", id=1, device_id=100),
|
||||
dict(msg_type='InterfaceCreate', name="swp1", id=1, device_id=101),
|
||||
dict(msg_type='LinkCreate', id=100, name="A to B", from_device_id=100, to_device_id=101, from_interface_id=1, to_interface_id=1)])
|
||||
self.ws.send('LinkSelected', id=100)
|
||||
time.sleep(1)
|
||||
self.ws.send('LinkUnSelected', id=100)
|
||||
time.sleep(1)
|
||||
self.ws.send('DeviceDestroy',
|
||||
previous_name="TestSwitch",
|
||||
previous_x=0,
|
||||
previous_y=500,
|
||||
previous_type="switch",
|
||||
id=100)
|
||||
self.ws.send('DeviceDestroy',
|
||||
previous_name="TestSwitch",
|
||||
previous_x=0,
|
||||
previous_y=500,
|
||||
previous_type="switch",
|
||||
id=101)
|
||||
|
||||
def test_Facts(self):
|
||||
self.ws.send('DeviceCreate', name="TestSwitchA", x=100, y=100, type="switch", id=100)
|
||||
self.ws.send('DeviceCreate', name="TestSwitchB", x=900, y=100, type="switch", id=101)
|
||||
self.ws.send('InterfaceCreate', name="swp1", id=1, device_id=100)
|
||||
self.ws.send('InterfaceCreate', name="swp1", id=1, device_id=101)
|
||||
time.sleep(1)
|
||||
self.ws.send('LinkCreate', id=100, name="A to B", from_device_id=100, to_device_id=101, from_interface_id=1, to_interface_id=1)
|
||||
time.sleep(1)
|
||||
self.ws.send('Facts', key="TestSwitchA", value=dict(ansible_local=dict(ptm={'port': "swp1", 'cbl status': 'fail'})))
|
||||
time.sleep(1)
|
||||
self.ws.send('Facts', key="TestSwitchA", value=dict(ansible_local=dict(ptm={'port': "swp1", 'cbl status': 'pass'})))
|
||||
time.sleep(1)
|
||||
self.ws.send('DeviceDestroy',
|
||||
previous_name="TestSwitch",
|
||||
previous_x=0,
|
||||
previous_y=500,
|
||||
previous_type="switch",
|
||||
id=100)
|
||||
self.ws.send('DeviceDestroy',
|
||||
previous_name="TestSwitch",
|
||||
previous_x=0,
|
||||
previous_y=500,
|
||||
previous_type="switch",
|
||||
id=101)
|
||||
|
||||
def test_Snapshot(self):
|
||||
self.ws.send('Snapshot', **yaml.load('''
|
||||
devices:
|
||||
- id: 116
|
||||
interfaces:
|
||||
- id: 1
|
||||
name: swp1
|
||||
network: 186105
|
||||
remote_device_name: Switch2
|
||||
remote_interface_name: swp1
|
||||
name: Switch1
|
||||
type: switch
|
||||
x: -1969
|
||||
y: -320
|
||||
- id: 117
|
||||
interfaces:
|
||||
- id: 1
|
||||
name: swp1
|
||||
network: 186105
|
||||
remote_device_name: Switch1
|
||||
remote_interface_name: swp1
|
||||
name: Switch2
|
||||
type: switch
|
||||
x: -1711
|
||||
y: -323
|
||||
links:
|
||||
- from_device: Switch2
|
||||
from_device_id: 117
|
||||
from_interface: swp1
|
||||
from_interface_id: 1
|
||||
network: 186105
|
||||
to_device: Switch1
|
||||
to_device_id: 116
|
||||
to_interface: swp1
|
||||
to_interface_id: 1
|
||||
name: topology
|
||||
topology_id: 143
|
||||
'''))
|
||||
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
class TestInvalidValues(unittest.TestCase):
|
||||
|
||||
def test_bad_topology_id1(self):
|
||||
self.ws = MessageHandler(create_connection("ws://localhost:8001/network_ui/tester?topology_id=0"))
|
||||
self.ws.close()
|
||||
|
||||
def test_bad_topology_id2(self):
|
||||
self.ws = MessageHandler(create_connection("ws://localhost:8001/network_ui/tester?topology_id=foo"))
|
||||
self.ws.close()
|
||||
|
||||
def test_bad_sender(self):
|
||||
self.ws = MessageHandler(create_connection("ws://localhost:8001/network_ui/tester?topology_id=143"))
|
||||
self.ws.ws.send(json.dumps(['DeviceCreate', dict(sender=-1, name="TestSwitchA", x=100, y=100, type="switch", id=100)]))
|
||||
self.ws.ws.send(json.dumps(['DeviceDestroy', dict(sender=-1, previous_name="TestSwitchA",
|
||||
previous_x=100, previous_y=100, previous_type="switch", id=100)]))
|
||||
self.ws.close()
|
||||
|
||||
def test_unsupported_command(self):
|
||||
self.ws = MessageHandler(create_connection("ws://localhost:8001/network_ui/tester?topology_id=143"))
|
||||
self.ws.recv()
|
||||
self.ws.recv()
|
||||
self.ws.send("NotSupported")
|
||||
self.ws.send_multiple([dict(msg_type="NotSupported")])
|
||||
self.ws.close()
|
||||
47
awx/network_ui/migrations/0001_initial.py
Normal file
47
awx/network_ui/migrations/0001_initial.py
Normal file
@ -0,0 +1,47 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Device',
|
||||
fields=[
|
||||
('device_id', models.AutoField(serialize=False, primary_key=True)),
|
||||
('name', models.CharField(max_length=200)),
|
||||
('x', models.IntegerField()),
|
||||
('y', models.IntegerField()),
|
||||
('id', models.IntegerField()),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Link',
|
||||
fields=[
|
||||
('link_id', models.AutoField(serialize=False, primary_key=True)),
|
||||
('from_device', models.ForeignKey(related_name='+', to='network_ui.Device')),
|
||||
('to_device', models.ForeignKey(related_name='+', to='network_ui.Device')),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Topology',
|
||||
fields=[
|
||||
('topology_id', models.AutoField(serialize=False, primary_key=True)),
|
||||
('name', models.CharField(max_length=200)),
|
||||
('id', models.IntegerField()),
|
||||
('scale', models.FloatField()),
|
||||
('panX', models.FloatField()),
|
||||
('panY', models.FloatField()),
|
||||
],
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='device',
|
||||
name='topology',
|
||||
field=models.ForeignKey(to='network_ui.Topology'),
|
||||
),
|
||||
]
|
||||
18
awx/network_ui/migrations/0002_remove_topology_id.py
Normal file
18
awx/network_ui/migrations/0002_remove_topology_id.py
Normal file
@ -0,0 +1,18 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('network_ui', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='topology',
|
||||
name='id',
|
||||
),
|
||||
]
|
||||
20
awx/network_ui/migrations/0003_device_type.py
Normal file
20
awx/network_ui/migrations/0003_device_type.py
Normal file
@ -0,0 +1,20 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('network_ui', '0002_remove_topology_id'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='device',
|
||||
name='type',
|
||||
field=models.CharField(default='', max_length=200),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@ -0,0 +1,38 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('network_ui', '0003_device_type'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Client',
|
||||
fields=[
|
||||
('client_id', models.AutoField(serialize=False, primary_key=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='MessageType',
|
||||
fields=[
|
||||
('message_type_id', models.AutoField(serialize=False, primary_key=True)),
|
||||
('name', models.CharField(max_length=200)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='TopologyHistory',
|
||||
fields=[
|
||||
('topology_history_id', models.AutoField(serialize=False, primary_key=True)),
|
||||
('message_id', models.IntegerField()),
|
||||
('message_data', models.TextField()),
|
||||
('client', models.ForeignKey(to='network_ui.Client')),
|
||||
('message_type', models.ForeignKey(to='network_ui.MessageType')),
|
||||
('topology', models.ForeignKey(to='network_ui.Topology')),
|
||||
],
|
||||
),
|
||||
]
|
||||
19
awx/network_ui/migrations/0005_topologyhistory_undone.py
Normal file
19
awx/network_ui/migrations/0005_topologyhistory_undone.py
Normal file
@ -0,0 +1,19 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('network_ui', '0004_client_messagetype_topologyhistory'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='topologyhistory',
|
||||
name='undone',
|
||||
field=models.BooleanField(default=b'False'),
|
||||
),
|
||||
]
|
||||
19
awx/network_ui/migrations/0006_auto_20170321_1236.py
Normal file
19
awx/network_ui/migrations/0006_auto_20170321_1236.py
Normal file
@ -0,0 +1,19 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('network_ui', '0005_topologyhistory_undone'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='topologyhistory',
|
||||
name='undone',
|
||||
field=models.BooleanField(default=False),
|
||||
),
|
||||
]
|
||||
44
awx/network_ui/migrations/0007_auto_20170328_1655.py
Normal file
44
awx/network_ui/migrations/0007_auto_20170328_1655.py
Normal file
@ -0,0 +1,44 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
def forwards_func(apps, schema_editor):
|
||||
Topology = apps.get_model("network_ui", "Topology")
|
||||
Topology.objects.get_or_create(name="Unknown", topology_id=-1, panX=0, panY=0, scale=1.0)
|
||||
Device = apps.get_model("network_ui", "Device")
|
||||
Device.objects.get_or_create(name="Unknown", device_id=-1, x=0, y=0, type="unknown", id=-1, topology_id=-1)
|
||||
Interface = apps.get_model("network_ui", "Interface")
|
||||
Interface.objects.get_or_create(name="Unknown", device_id=-1, interface_id=-1)
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('network_ui', '0006_auto_20170321_1236'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Interface',
|
||||
fields=[
|
||||
('interface_id', models.AutoField(serialize=False, primary_key=True)),
|
||||
('name', models.CharField(max_length=200)),
|
||||
('device', models.ForeignKey(to='network_ui.Device')),
|
||||
],
|
||||
),
|
||||
migrations.RunPython(forwards_func),
|
||||
migrations.AddField(
|
||||
model_name='link',
|
||||
name='from_interface',
|
||||
field=models.ForeignKey(related_name='+', default=-1, to='network_ui.Interface'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='link',
|
||||
name='to_interface',
|
||||
field=models.ForeignKey(related_name='+', default=-1, to='network_ui.Interface'),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
20
awx/network_ui/migrations/0008_interface_id.py
Normal file
20
awx/network_ui/migrations/0008_interface_id.py
Normal file
@ -0,0 +1,20 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('network_ui', '0007_auto_20170328_1655'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='interface',
|
||||
name='id',
|
||||
field=models.IntegerField(default=0),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
34
awx/network_ui/migrations/0009_auto_20170403_1912.py
Normal file
34
awx/network_ui/migrations/0009_auto_20170403_1912.py
Normal file
@ -0,0 +1,34 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('network_ui', '0008_interface_id'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='link',
|
||||
name='from_device',
|
||||
field=models.ForeignKey(related_name='from_link', to='network_ui.Device'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='link',
|
||||
name='from_interface',
|
||||
field=models.ForeignKey(related_name='from_link', to='network_ui.Interface'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='link',
|
||||
name='to_device',
|
||||
field=models.ForeignKey(related_name='to_link', to='network_ui.Device'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='link',
|
||||
name='to_interface',
|
||||
field=models.ForeignKey(related_name='to_link', to='network_ui.Interface'),
|
||||
),
|
||||
]
|
||||
20
awx/network_ui/migrations/0010_link_id.py
Normal file
20
awx/network_ui/migrations/0010_link_id.py
Normal file
@ -0,0 +1,20 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('network_ui', '0009_auto_20170403_1912'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='link',
|
||||
name='id',
|
||||
field=models.IntegerField(default=0),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
20
awx/network_ui/migrations/0011_link_name.py
Normal file
20
awx/network_ui/migrations/0011_link_name.py
Normal file
@ -0,0 +1,20 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('network_ui', '0010_link_id'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='link',
|
||||
name='name',
|
||||
field=models.CharField(default='', max_length=200),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
0
awx/network_ui/migrations/__init__.py
Normal file
0
awx/network_ui/migrations/__init__.py
Normal file
74
awx/network_ui/models.py
Normal file
74
awx/network_ui/models.py
Normal file
@ -0,0 +1,74 @@
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Device(models.Model):
|
||||
|
||||
device_id = models.AutoField(primary_key=True,)
|
||||
topology = models.ForeignKey('Topology',)
|
||||
name = models.CharField(max_length=200, )
|
||||
x = models.IntegerField()
|
||||
y = models.IntegerField()
|
||||
id = models.IntegerField()
|
||||
type = models.CharField(max_length=200, )
|
||||
|
||||
def __unicode__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class Link(models.Model):
|
||||
|
||||
link_id = models.AutoField(primary_key=True,)
|
||||
from_device = models.ForeignKey('Device', related_name='from_link', )
|
||||
to_device = models.ForeignKey('Device', related_name='to_link', )
|
||||
from_interface = models.ForeignKey('Interface', related_name='from_link', )
|
||||
to_interface = models.ForeignKey('Interface', related_name='to_link', )
|
||||
id = models.IntegerField()
|
||||
name = models.CharField(max_length=200, )
|
||||
|
||||
|
||||
class Topology(models.Model):
|
||||
|
||||
topology_id = models.AutoField(primary_key=True,)
|
||||
name = models.CharField(max_length=200, )
|
||||
scale = models.FloatField()
|
||||
panX = models.FloatField()
|
||||
panY = models.FloatField()
|
||||
|
||||
def __unicode__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class Client(models.Model):
|
||||
|
||||
client_id = models.AutoField(primary_key=True,)
|
||||
|
||||
|
||||
class TopologyHistory(models.Model):
|
||||
|
||||
topology_history_id = models.AutoField(primary_key=True,)
|
||||
topology = models.ForeignKey('Topology',)
|
||||
client = models.ForeignKey('Client',)
|
||||
message_type = models.ForeignKey('MessageType',)
|
||||
message_id = models.IntegerField()
|
||||
message_data = models.TextField()
|
||||
undone = models.BooleanField(default=False)
|
||||
|
||||
|
||||
class MessageType(models.Model):
|
||||
|
||||
message_type_id = models.AutoField(primary_key=True,)
|
||||
name = models.CharField(max_length=200, )
|
||||
|
||||
def __unicode__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class Interface(models.Model):
|
||||
|
||||
interface_id = models.AutoField(primary_key=True,)
|
||||
device = models.ForeignKey('Device',)
|
||||
name = models.CharField(max_length=200, )
|
||||
id = models.IntegerField()
|
||||
|
||||
def __unicode__(self):
|
||||
return self.name
|
||||
23
awx/network_ui/routing.py
Normal file
23
awx/network_ui/routing.py
Normal file
@ -0,0 +1,23 @@
|
||||
from channels.routing import route
|
||||
from awx.network_ui.consumers import ws_connect, ws_message, ws_disconnect, console_printer, persistence, discovery
|
||||
from awx.network_ui.consumers import ansible_connect, ansible_message, ansible_disconnect
|
||||
from awx.network_ui.consumers import worker_connect, worker_message, worker_disconnect
|
||||
from awx.network_ui.consumers import tester_connect, tester_message, tester_disconnect
|
||||
|
||||
channel_routing = [
|
||||
route("websocket.connect", ws_connect, path=r"^/network_ui/topology"),
|
||||
route("websocket.receive", ws_message, path=r"^/network_ui/topology"),
|
||||
route("websocket.disconnect", ws_disconnect, path=r"^/network_ui/topology"),
|
||||
route("websocket.connect", ansible_connect, path=r"^/network_ui/ansible"),
|
||||
route("websocket.receive", ansible_message, path=r"^/network_ui/ansible"),
|
||||
route("websocket.disconnect", ansible_disconnect, path=r"^/network_ui/ansible"),
|
||||
route("websocket.connect", worker_connect, path=r"^/network_ui/worker"),
|
||||
route("websocket.receive", worker_message, path=r"^/network_ui/worker"),
|
||||
route("websocket.disconnect", worker_disconnect, path=r"^/network_ui/worker"),
|
||||
route("websocket.connect", tester_connect, path=r"^/network_ui/tester"),
|
||||
route("websocket.receive", tester_message, path=r"^/network_ui/tester"),
|
||||
route("websocket.disconnect", tester_disconnect, path=r"^/network_ui/tester"),
|
||||
route("console_printer", console_printer),
|
||||
route("persistence", persistence.handle),
|
||||
route("discovery", discovery.handle),
|
||||
]
|
||||
58
awx/network_ui/serializers.py
Normal file
58
awx/network_ui/serializers.py
Normal file
@ -0,0 +1,58 @@
|
||||
|
||||
from awx.network_ui.models import Topology, Device, Link, Interface
|
||||
from django.db.models import Q
|
||||
import yaml
|
||||
|
||||
NetworkAnnotatedInterface = Interface.objects.values('name',
|
||||
'id',
|
||||
'from_link__pk',
|
||||
'to_link__pk',
|
||||
'from_link__to_device__name',
|
||||
'to_link__from_device__name',
|
||||
'from_link__to_interface__name',
|
||||
'to_link__from_interface__name')
|
||||
|
||||
|
||||
def yaml_serialize_topology(topology_id):
|
||||
|
||||
data = dict(devices=[],
|
||||
links=[])
|
||||
|
||||
topology = Topology.objects.get(pk=topology_id)
|
||||
|
||||
data['name'] = topology.name
|
||||
data['topology_id'] = topology_id
|
||||
|
||||
links = list(Link.objects
|
||||
.filter(Q(from_device__topology_id=topology_id) |
|
||||
Q(to_device__topology_id=topology_id)))
|
||||
|
||||
interfaces = Interface.objects.filter(device__topology_id=topology_id)
|
||||
|
||||
for device in Device.objects.filter(topology_id=topology_id).order_by('name'):
|
||||
interfaces = list(NetworkAnnotatedInterface.filter(device_id=device.pk).order_by('name'))
|
||||
interfaces = [dict(name=x['name'],
|
||||
network=x['from_link__pk'] or x['to_link__pk'],
|
||||
remote_device_name=x['from_link__to_device__name'] or x['to_link__from_device__name'],
|
||||
remote_interface_name=x['from_link__to_interface__name'] or x['to_link__from_interface__name'],
|
||||
id=x['id'],
|
||||
) for x in interfaces]
|
||||
data['devices'].append(dict(name=device.name,
|
||||
type=device.type,
|
||||
x=device.x,
|
||||
y=device.y,
|
||||
id=device.id,
|
||||
interfaces=interfaces))
|
||||
|
||||
for link in links:
|
||||
data['links'].append(dict(from_device=link.from_device.name,
|
||||
to_device=link.to_device.name,
|
||||
from_interface=link.from_interface.name,
|
||||
to_interface=link.to_interface.name,
|
||||
from_device_id=link.from_device.id,
|
||||
to_device_id=link.to_device.id,
|
||||
from_interface_id=link.from_interface.id,
|
||||
to_interface_id=link.to_interface.id,
|
||||
network=link.pk))
|
||||
|
||||
return yaml.safe_dump(data, default_flow_style=False)
|
||||
8
awx/network_ui/static/network_ui/.gitignore
vendored
Normal file
8
awx/network_ui/static/network_ui/.gitignore
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
/bundle.js
|
||||
/node_modules
|
||||
/style.css
|
||||
/extract.js
|
||||
/css
|
||||
/js
|
||||
/src-instrumented
|
||||
/index-instrumented.html
|
||||
47
awx/network_ui/static/network_ui/.jshintrc
Normal file
47
awx/network_ui/static/network_ui/.jshintrc
Normal file
@ -0,0 +1,47 @@
|
||||
{
|
||||
"browser": true,
|
||||
"node": true,
|
||||
"jquery": true,
|
||||
"esnext": true,
|
||||
"globalstrict": true,
|
||||
"curly": true,
|
||||
"immed": true,
|
||||
"latedef": "nofunc",
|
||||
"noarg": true,
|
||||
"nonew": true,
|
||||
"maxerr": 10000,
|
||||
"notypeof": true,
|
||||
"globals": {
|
||||
"$ENV": true,
|
||||
"require": true,
|
||||
"global": true,
|
||||
"beforeEach": false,
|
||||
"inject": false,
|
||||
"module": false,
|
||||
"angular":false,
|
||||
"alert":false,
|
||||
"$AnsibleConfig":true,
|
||||
"$basePath":true,
|
||||
"jsyaml":false,
|
||||
"_":false,
|
||||
"d3":false,
|
||||
"Donut3D":false,
|
||||
"nv":false,
|
||||
"it": false,
|
||||
"xit": false,
|
||||
"expect": false,
|
||||
"context": false,
|
||||
"describe": false,
|
||||
"moment": false,
|
||||
"spyOn": false,
|
||||
"jasmine": false
|
||||
},
|
||||
"strict": false,
|
||||
"quotmark": false,
|
||||
"trailing": true,
|
||||
"undef": true,
|
||||
"unused": true,
|
||||
"eqeqeq": true,
|
||||
"indent": 4,
|
||||
"newcap": false
|
||||
}
|
||||
25
awx/network_ui/static/network_ui/Makefile
Normal file
25
awx/network_ui/static/network_ui/Makefile
Normal file
@ -0,0 +1,25 @@
|
||||
.PHONY: all main lint lessc
|
||||
|
||||
all: clean lessc lint main istanbul
|
||||
|
||||
clean:
|
||||
rm -rf src-instrumented
|
||||
rm -f js/bundle.js
|
||||
rm -f css/style.css
|
||||
|
||||
main:
|
||||
webpack src/main.js js/bundle.js
|
||||
cp vendor/*.js js/
|
||||
|
||||
lint:
|
||||
jshint --verbose src/*js
|
||||
|
||||
lessc:
|
||||
lessc src/style.less css/style.css
|
||||
|
||||
istanbul:
|
||||
istanbul instrument --output src-instrumented src
|
||||
webpack src-instrumented/main.js js/bundle-instrumented.js
|
||||
cp index.html index-instrumented.html
|
||||
sed -i "" "s/bundle.js/bundle-instrumented.js/g" index-instrumented.html
|
||||
cp vendor/*.js js/
|
||||
1
awx/network_ui/static/network_ui/css/README
Normal file
1
awx/network_ui/static/network_ui/css/README
Normal file
@ -0,0 +1 @@
|
||||
Build directory for css files.
|
||||
34
awx/network_ui/static/network_ui/designs/button.yml
Normal file
34
awx/network_ui/static/network_ui/designs/button.yml
Normal file
@ -0,0 +1,34 @@
|
||||
app: button
|
||||
panX: 53
|
||||
panY: -52
|
||||
scaleXY: 1
|
||||
states:
|
||||
- label: Start
|
||||
size: 100
|
||||
x: 468
|
||||
y: 170
|
||||
- label: Ready
|
||||
size: 100
|
||||
x: 471
|
||||
y: 376
|
||||
- label: Pressed
|
||||
size: 100
|
||||
x: 606
|
||||
y: 563
|
||||
- label: Clicked
|
||||
size: 100
|
||||
x: 331
|
||||
y: 568
|
||||
transitions:
|
||||
- from_state: Start
|
||||
label: start
|
||||
to_state: Ready
|
||||
- from_state: Ready
|
||||
label: onMouseDown
|
||||
to_state: Pressed
|
||||
- from_state: Pressed
|
||||
label: onMouseUp
|
||||
to_state: Clicked
|
||||
- from_state: Clicked
|
||||
label: start
|
||||
to_state: Ready
|
||||
27
awx/network_ui/static/network_ui/designs/buttons.yml
Normal file
27
awx/network_ui/static/network_ui/designs/buttons.yml
Normal file
@ -0,0 +1,27 @@
|
||||
app: buttons
|
||||
panX: 133
|
||||
panY: 41
|
||||
scaleXY: 1
|
||||
states:
|
||||
- label: Start
|
||||
size: 100
|
||||
x: 392
|
||||
y: 88
|
||||
- label: Ready
|
||||
size: 100
|
||||
x: 392
|
||||
y: 281
|
||||
- label: ButtonPressed
|
||||
size: 100
|
||||
x: 394
|
||||
y: 491
|
||||
transitions:
|
||||
- from_state: Start
|
||||
label: ''
|
||||
to_state: Ready
|
||||
- from_state: Ready
|
||||
label: onMouseDown
|
||||
to_state: ButtonPressed
|
||||
- from_state: ButtonPressed
|
||||
label: onMouseUp
|
||||
to_state: Ready
|
||||
41
awx/network_ui/static/network_ui/designs/link.yml
Normal file
41
awx/network_ui/static/network_ui/designs/link.yml
Normal file
@ -0,0 +1,41 @@
|
||||
app: link
|
||||
panX: -15
|
||||
panY: 0
|
||||
scaleXY: 1
|
||||
states:
|
||||
- label: Ready
|
||||
size: 100
|
||||
x: 540
|
||||
y: 307
|
||||
- label: Start
|
||||
size: 100
|
||||
x: 533
|
||||
y: 96
|
||||
- label: Selecting
|
||||
size: 100
|
||||
x: 780
|
||||
y: 299
|
||||
- label: Connecting
|
||||
size: 100
|
||||
x: 782
|
||||
y: 541
|
||||
- label: Connected
|
||||
size: 100
|
||||
x: 546
|
||||
y: 543
|
||||
transitions:
|
||||
- from_state: Start
|
||||
label: start
|
||||
to_state: Ready
|
||||
- from_state: Ready
|
||||
label: onNewLink
|
||||
to_state: Selecting
|
||||
- from_state: Selecting
|
||||
label: onMouseUp
|
||||
to_state: Connecting
|
||||
- from_state: Connecting
|
||||
label: onMouseUp
|
||||
to_state: Connected
|
||||
- from_state: Connected
|
||||
label: free
|
||||
to_state: Ready
|
||||
64
awx/network_ui/static/network_ui/designs/move.yml
Normal file
64
awx/network_ui/static/network_ui/designs/move.yml
Normal file
@ -0,0 +1,64 @@
|
||||
app: move
|
||||
panX: 285.92999999999995
|
||||
panY: -151.52999999999997
|
||||
scaleXY: 0.8700000000000001
|
||||
states:
|
||||
- label: Start
|
||||
size: 100
|
||||
x: 533
|
||||
y: 121
|
||||
- label: Ready
|
||||
size: 100
|
||||
x: 531
|
||||
y: 320
|
||||
- label: Selected1
|
||||
size: 100
|
||||
x: 226
|
||||
y: 325
|
||||
- label: Selected2
|
||||
size: 100
|
||||
x: 230
|
||||
y: 582
|
||||
- label: Move
|
||||
size: 100
|
||||
x: -54
|
||||
y: 587
|
||||
- label: EditLabel
|
||||
size: 100
|
||||
x: 535.7126436781609
|
||||
y: 583.367816091954
|
||||
- label: Selected3
|
||||
size: 100
|
||||
x: 231.11494252873567
|
||||
y: 867.2758620689654
|
||||
transitions:
|
||||
- from_state: Start
|
||||
label: start
|
||||
to_state: Ready
|
||||
- from_state: Ready
|
||||
label: onMouseDown
|
||||
to_state: Selected1
|
||||
- from_state: Selected1
|
||||
label: onMouseUp
|
||||
to_state: Selected2
|
||||
- from_state: Selected1
|
||||
label: onMouseMove
|
||||
to_state: Move
|
||||
- from_state: Selected2
|
||||
label: onMouseDown
|
||||
to_state: Ready
|
||||
- from_state: Move
|
||||
label: onMouseUp
|
||||
to_state: Selected2
|
||||
- from_state: EditLabel
|
||||
label: onMouseDown
|
||||
to_state: Ready
|
||||
- from_state: Selected2
|
||||
label: onMouseDown
|
||||
to_state: Selected3
|
||||
- from_state: Selected3
|
||||
label: onMouseMove
|
||||
to_state: Move
|
||||
- from_state: Selected3
|
||||
label: onMouseUp
|
||||
to_state: EditLabel
|
||||
27
awx/network_ui/static/network_ui/designs/time.yml
Normal file
27
awx/network_ui/static/network_ui/designs/time.yml
Normal file
@ -0,0 +1,27 @@
|
||||
app: time
|
||||
panX: 0
|
||||
panY: 0
|
||||
scaleXY: 1
|
||||
states:
|
||||
- label: Start
|
||||
size: 100
|
||||
x: 634
|
||||
y: 117
|
||||
- label: Present
|
||||
size: 100
|
||||
x: 632
|
||||
y: 379
|
||||
- label: Past
|
||||
size: 100
|
||||
x: 367
|
||||
y: 369
|
||||
transitions:
|
||||
- from_state: Start
|
||||
label: start
|
||||
to_state: Present
|
||||
- from_state: Present
|
||||
label: onMouseWheel
|
||||
to_state: Past
|
||||
- from_state: Past
|
||||
label: onMouseWheel
|
||||
to_state: Present
|
||||
47
awx/network_ui/static/network_ui/designs/view.yml
Normal file
47
awx/network_ui/static/network_ui/designs/view.yml
Normal file
@ -0,0 +1,47 @@
|
||||
app: view
|
||||
panX: 1
|
||||
panY: -67
|
||||
scaleXY: 1
|
||||
states:
|
||||
- label: Start
|
||||
size: 100
|
||||
x: 498
|
||||
y: 175
|
||||
- label: Ready
|
||||
size: 100
|
||||
x: 506
|
||||
y: 395
|
||||
- label: Scale
|
||||
size: 100
|
||||
x: 310
|
||||
y: 626
|
||||
- label: Pan
|
||||
size: 100
|
||||
x: 741
|
||||
y: 631
|
||||
- label: Pressed
|
||||
size: 100
|
||||
x: 739
|
||||
y: 392
|
||||
transitions:
|
||||
- from_state: Start
|
||||
label: start
|
||||
to_state: Ready
|
||||
- from_state: Ready
|
||||
label: onMouseWheel
|
||||
to_state: Scale
|
||||
- from_state: Scale
|
||||
label: onTimeout
|
||||
to_state: Ready
|
||||
- from_state: Ready
|
||||
label: onMouseDown
|
||||
to_state: Pressed
|
||||
- from_state: Pressed
|
||||
label: onMouseMove
|
||||
to_state: Pan
|
||||
- from_state: Pressed
|
||||
label: onMouseUp
|
||||
to_state: Ready
|
||||
- from_state: Pan
|
||||
label: onMouseUp
|
||||
to_state: Ready
|
||||
111
awx/network_ui/static/network_ui/index.html
Normal file
111
awx/network_ui/static/network_ui/index.html
Normal file
@ -0,0 +1,111 @@
|
||||
<!DOCTYPE html>
|
||||
<html ng-app="triangular">
|
||||
<head>
|
||||
<link rel="stylesheet" href="css/style.css" />
|
||||
<script data-require="angular.js@1.6.2" src="js/angular.js" data-semver="1.6.2"></script>
|
||||
<script src="js/reconnecting-websocket.js"></script>
|
||||
<script src="js/bundle.js"></script>
|
||||
<script src="js/hamster.js"></script>
|
||||
<script src="js/ngTouch.js"></script>
|
||||
<script src="js/mousewheel.js"></script>
|
||||
</head>
|
||||
<body ng-controller="MainCtrl" id="Main">
|
||||
<svg id="frame"
|
||||
ng-attr-height="{{graph.height}}"
|
||||
ng-attr-width="{{graph.width}}"
|
||||
ng-mousedown="onMouseDown($event)"
|
||||
ng-mouseup="onMouseUp($event)"
|
||||
ng-mouseenter="onMouseEnter($event)"
|
||||
ng-mouseleave="onMouseLeave($event)"
|
||||
ng-mousemove="onMouseMove($event)"
|
||||
ng-mouseover="onMouseOver($event)"
|
||||
ng-touchstart="onTouchStart($event)"
|
||||
ng-touchmove="onTouchMove($event)"
|
||||
ng-touchend="onTouchEnd($event)"
|
||||
ng-tap="onTap($event)"
|
||||
msd-wheel="onMouseWheel($event, $delta, $deltaX, $deltaY)">
|
||||
<defs>
|
||||
<filter x="0" y="0" width="1" height="1" id="selected">
|
||||
<feFlood flood-color="#b3d8fd"/>
|
||||
<feComposite in="SourceGraphic" operator="xor"/>
|
||||
</filter>
|
||||
<filter x="0" y="0" width="1" height="1" id="background">
|
||||
<feFlood flood-color="#ffffff"/>
|
||||
<feComposite in="SourceGraphic" operator="xor"/>
|
||||
</filter>
|
||||
</defs>
|
||||
<g transform="scale(1.0)" id="frame_g">
|
||||
<g ng-repeat="link in links">
|
||||
<g link></g>
|
||||
</g>
|
||||
<g ng-repeat="link in links">
|
||||
<g ng-if="link.selected || link.to_interface.selected || link.from_interface.selected" link></g>
|
||||
</g>
|
||||
<g ng-repeat="device in devices"
|
||||
ng-attr-transform="translate({{device.x}},{{device.y}})"
|
||||
ng-attr-class="{{device.type}}"
|
||||
ng-switch on="device.type">
|
||||
<g ng-switch-when="router"><!-- begin router -->
|
||||
<g router></g>
|
||||
</g> <!-- end router -->
|
||||
|
||||
<g ng-switch-when="switch"> <!-- begin switch -->
|
||||
<g switch> </g>
|
||||
</g> <!-- end switch -->
|
||||
|
||||
<g ng-switch-when="host"> <!-- begin host -->
|
||||
<g host> </g>
|
||||
|
||||
</g> <!-- end host -->
|
||||
|
||||
<g ng-switch-when="rack"> <!-- begin rack -->
|
||||
<g rack> </g>
|
||||
</g> <!-- end rack -->
|
||||
|
||||
<g ng-switch-default> <!-- begin default -->
|
||||
<g default></g>
|
||||
</g> <!-- end default -->
|
||||
<g status-light></g>
|
||||
<g task-status></g>
|
||||
</g> <!-- end devices -->
|
||||
<g ng-attr-transform="translate({{scaledX}},{{scaledY}})" ng-attr-class="{{debug.hidden && 'hidden' || ''}} debug-cursor" >
|
||||
<line x1="-5" y1="0" x2="5" y2="0"/>
|
||||
<line x1="0" y1="-5" x2="0" y2="5"/>
|
||||
</g>
|
||||
<g quadrants>
|
||||
</g>
|
||||
</g>
|
||||
<g ng-if="!hide_buttons">
|
||||
<g> <!-- buttons -->
|
||||
<g ng-repeat="button in buttons"
|
||||
ng-attr-transform="translate({{button.x}},{{button.y}})"
|
||||
ng-attr-class="{{button.is_pressed ? 'button-pressed' : button.mouse_over ? 'button-hover' : 'button'}}">
|
||||
<g button></g>
|
||||
</g>
|
||||
</g> <!-- end buttons -->
|
||||
|
||||
<g> <!-- stencils -->
|
||||
<g ng-repeat="stencil in stencils"
|
||||
ng-attr-transform="translate({{stencil.x}},{{stencil.y}})"
|
||||
class="button">
|
||||
<g stencil></g>
|
||||
</g>
|
||||
</g> <!-- end stencils -->
|
||||
|
||||
<g> <!-- layers -->
|
||||
<g ng-repeat="layer in layers"
|
||||
ng-attr-transform="translate({{layer.x}},{{layer.y}})"
|
||||
class="button">
|
||||
<g layer> </g>
|
||||
</g>
|
||||
</g> <!-- end layers -->
|
||||
</g>
|
||||
<g debug></g>
|
||||
<g cursor></g>
|
||||
<g ng-repeat="touch in touches">
|
||||
<g touch></g>
|
||||
</g>
|
||||
</svg>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
1
awx/network_ui/static/network_ui/js/README
Normal file
1
awx/network_ui/static/network_ui/js/README
Normal file
@ -0,0 +1 @@
|
||||
Build directory for javascript files
|
||||
24
awx/network_ui/static/network_ui/package.json
Normal file
24
awx/network_ui/static/network_ui/package.json
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "network_ui",
|
||||
"version": "1.0.0",
|
||||
"description": "Ansible Tower Networking UI",
|
||||
"main": "app.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"author": "Ben Thomasson",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"webpack": "",
|
||||
"browserify": "",
|
||||
"inherits": "",
|
||||
"require": "",
|
||||
"jshint": "",
|
||||
"less": "",
|
||||
"mathjs": ""
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^3.17.1",
|
||||
"eslint-config-google": "^0.7.1"
|
||||
}
|
||||
}
|
||||
3
awx/network_ui/static/network_ui/run.sh
Executable file
3
awx/network_ui/static/network_ui/run.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash -ex
|
||||
|
||||
python -m SimpleHTTPServer
|
||||
1124
awx/network_ui/static/network_ui/src/app.js
Normal file
1124
awx/network_ui/static/network_ui/src/app.js
Normal file
File diff suppressed because it is too large
Load Diff
76
awx/network_ui/static/network_ui/src/button.js
Normal file
76
awx/network_ui/static/network_ui/src/button.js
Normal file
@ -0,0 +1,76 @@
|
||||
var inherits = require('inherits');
|
||||
var fsm = require('./fsm.js');
|
||||
|
||||
function _State () {
|
||||
}
|
||||
inherits(_State, fsm._State);
|
||||
|
||||
function _Ready () {
|
||||
this.name = 'Ready';
|
||||
}
|
||||
inherits(_Ready, _State);
|
||||
var Ready = new _Ready();
|
||||
exports.Ready = Ready;
|
||||
|
||||
function _Start () {
|
||||
this.name = 'Start';
|
||||
}
|
||||
inherits(_Start, _State);
|
||||
var Start = new _Start();
|
||||
exports.Start = Start;
|
||||
|
||||
function _Clicked () {
|
||||
this.name = 'Clicked';
|
||||
}
|
||||
inherits(_Clicked, _State);
|
||||
var Clicked = new _Clicked();
|
||||
exports.Clicked = Clicked;
|
||||
|
||||
function _Pressed () {
|
||||
this.name = 'Pressed';
|
||||
}
|
||||
inherits(_Pressed, _State);
|
||||
var Pressed = new _Pressed();
|
||||
exports.Pressed = Pressed;
|
||||
|
||||
|
||||
|
||||
_Ready.prototype.onMouseDown = function (controller) {
|
||||
|
||||
controller.changeState(Pressed);
|
||||
|
||||
};
|
||||
_Ready.prototype.onMouseDown.transitions = ['Pressed'];
|
||||
|
||||
_Ready.prototype.onTouchStart = _Ready.prototype.onMouseDown;
|
||||
|
||||
|
||||
_Start.prototype.start = function (controller) {
|
||||
|
||||
controller.changeState(Ready);
|
||||
|
||||
};
|
||||
_Start.prototype.start.transitions = ['Ready'];
|
||||
|
||||
|
||||
_Clicked.prototype.start = function (controller) {
|
||||
|
||||
controller.scope.callback(controller.scope);
|
||||
controller.scope.is_pressed = false;
|
||||
controller.changeState(Ready);
|
||||
};
|
||||
_Clicked.prototype.start.transitions = ['Ready'];
|
||||
|
||||
|
||||
_Pressed.prototype.start = function (controller) {
|
||||
controller.scope.is_pressed = true;
|
||||
};
|
||||
|
||||
_Pressed.prototype.onMouseUp = function (controller) {
|
||||
|
||||
controller.changeState(Clicked);
|
||||
|
||||
};
|
||||
_Pressed.prototype.onMouseUp.transitions = ['Clicked'];
|
||||
|
||||
_Pressed.prototype.onTouchEnd = _Pressed.prototype.onMouseUp;
|
||||
100
awx/network_ui/static/network_ui/src/buttons.js
Normal file
100
awx/network_ui/static/network_ui/src/buttons.js
Normal file
@ -0,0 +1,100 @@
|
||||
var inherits = require('inherits');
|
||||
var fsm = require('./fsm.js');
|
||||
|
||||
function _State () {
|
||||
}
|
||||
inherits(_State, fsm._State);
|
||||
|
||||
|
||||
function _Ready () {
|
||||
this.name = 'Ready';
|
||||
}
|
||||
inherits(_Ready, _State);
|
||||
var Ready = new _Ready();
|
||||
exports.Ready = Ready;
|
||||
|
||||
function _Start () {
|
||||
this.name = 'Start';
|
||||
}
|
||||
inherits(_Start, _State);
|
||||
var Start = new _Start();
|
||||
exports.Start = Start;
|
||||
|
||||
function _ButtonPressed () {
|
||||
this.name = 'ButtonPressed';
|
||||
}
|
||||
inherits(_ButtonPressed, _State);
|
||||
var ButtonPressed = new _ButtonPressed();
|
||||
exports.ButtonPressed = ButtonPressed;
|
||||
|
||||
|
||||
|
||||
|
||||
_Ready.prototype.onMouseDown = function (controller, msg_type, $event) {
|
||||
|
||||
var i = 0;
|
||||
var buttons = controller.scope.buttons;
|
||||
var button = null;
|
||||
for (i = 0; i < buttons.length; i++) {
|
||||
button = buttons[i];
|
||||
if (button.is_selected(controller.scope.mouseX, controller.scope.mouseY)) {
|
||||
button.fsm.handle_message(msg_type, $event);
|
||||
controller.changeState(ButtonPressed);
|
||||
break;
|
||||
}
|
||||
button = null;
|
||||
}
|
||||
if (button === null) {
|
||||
controller.next_controller.handle_message(msg_type, $event);
|
||||
}
|
||||
|
||||
};
|
||||
_Ready.prototype.onMouseDown.transitions = ['ButtonPressed'];
|
||||
|
||||
_Ready.prototype.onTouchStart = _Ready.prototype.onMouseDown;
|
||||
|
||||
_Ready.prototype.onMouseMove = function (controller, msg_type, $event) {
|
||||
|
||||
if (!controller.scope.hide_buttons) {
|
||||
|
||||
var i = 0;
|
||||
var buttons = controller.scope.buttons;
|
||||
var button = null;
|
||||
for (i = 0; i < buttons.length; i++) {
|
||||
button = buttons[i];
|
||||
button.mouse_over = false;
|
||||
if (button.is_selected(controller.scope.mouseX, controller.scope.mouseY)) {
|
||||
button.mouse_over = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
controller.next_controller.handle_message(msg_type, $event);
|
||||
};
|
||||
|
||||
|
||||
_Start.prototype.start = function (controller) {
|
||||
|
||||
controller.changeState(Ready);
|
||||
|
||||
};
|
||||
_Start.prototype.start.transitions = ['Ready'];
|
||||
|
||||
|
||||
|
||||
_ButtonPressed.prototype.onMouseUp = function (controller, msg_type, $event) {
|
||||
|
||||
var i = 0;
|
||||
var buttons = controller.scope.buttons;
|
||||
var button = null;
|
||||
for (i = 0; i < buttons.length; i++) {
|
||||
button = buttons[i];
|
||||
button.fsm.handle_message(msg_type, $event);
|
||||
}
|
||||
controller.changeState(Ready);
|
||||
|
||||
};
|
||||
_ButtonPressed.prototype.onMouseUp.transitions = ['Ready'];
|
||||
|
||||
_ButtonPressed.prototype.onTouchEnd = _ButtonPressed.prototype.onMouseUp;
|
||||
|
||||
46
awx/network_ui/static/network_ui/src/fsm.js
Normal file
46
awx/network_ui/static/network_ui/src/fsm.js
Normal file
@ -0,0 +1,46 @@
|
||||
function FSMController (scope, initial_state, next_controller) {
|
||||
this.scope = scope;
|
||||
this.state = initial_state;
|
||||
this.state.start(this);
|
||||
this.next_controller = next_controller;
|
||||
}
|
||||
exports.FSMController = FSMController;
|
||||
|
||||
FSMController.prototype.changeState = function (state) {
|
||||
if(this.state !== null) {
|
||||
this.state.end(this);
|
||||
}
|
||||
this.state = state;
|
||||
if(state !== null) {
|
||||
state.start(this);
|
||||
}
|
||||
};
|
||||
|
||||
FSMController.prototype.handle_message = function(msg_type, message) {
|
||||
|
||||
var handler_name = 'on' + msg_type;
|
||||
if (typeof(this.state[handler_name]) !== "undefined") {
|
||||
this.state[handler_name](this, msg_type, message);
|
||||
} else {
|
||||
this.default_handler(msg_type, message);
|
||||
}
|
||||
};
|
||||
|
||||
FSMController.prototype.default_handler = function(msg_type, message) {
|
||||
if (this.next_controller !== null) {
|
||||
this.next_controller.handle_message(msg_type, message);
|
||||
}
|
||||
};
|
||||
|
||||
function _State () {
|
||||
}
|
||||
|
||||
_State.prototype.start = function () {
|
||||
};
|
||||
|
||||
_State.prototype.end = function () {
|
||||
};
|
||||
|
||||
var State = new _State();
|
||||
exports.State = State;
|
||||
exports._State = _State;
|
||||
146
awx/network_ui/static/network_ui/src/link.js
Normal file
146
awx/network_ui/static/network_ui/src/link.js
Normal file
@ -0,0 +1,146 @@
|
||||
var inherits = require('inherits');
|
||||
var fsm = require('./fsm.js');
|
||||
var models = require('./models.js');
|
||||
var messages = require('./messages.js');
|
||||
|
||||
function _State () {
|
||||
}
|
||||
inherits(_State, fsm._State);
|
||||
|
||||
|
||||
function _Ready () {
|
||||
this.name = 'Ready';
|
||||
}
|
||||
inherits(_Ready, _State);
|
||||
var Ready = new _Ready();
|
||||
exports.Ready = Ready;
|
||||
|
||||
function _Start () {
|
||||
this.name = 'Start';
|
||||
}
|
||||
inherits(_Start, _State);
|
||||
var Start = new _Start();
|
||||
exports.Start = Start;
|
||||
|
||||
function _Connected () {
|
||||
this.name = 'Connected';
|
||||
}
|
||||
inherits(_Connected, _State);
|
||||
var Connected = new _Connected();
|
||||
exports.Connected = Connected;
|
||||
|
||||
function _Connecting () {
|
||||
this.name = 'Connecting';
|
||||
}
|
||||
inherits(_Connecting, _State);
|
||||
var Connecting = new _Connecting();
|
||||
exports.Connecting = Connecting;
|
||||
|
||||
function _Selecting () {
|
||||
this.name = 'Selecting';
|
||||
}
|
||||
inherits(_Selecting, _State);
|
||||
var Selecting = new _Selecting();
|
||||
exports.Selecting = Selecting;
|
||||
|
||||
|
||||
|
||||
|
||||
_Ready.prototype.onKeyDown = function(controller, msg_type, $event) {
|
||||
|
||||
if ($event.key === 'l') {
|
||||
controller.handle_message("NewLink", $event);
|
||||
}
|
||||
|
||||
controller.next_controller.handle_message(msg_type, $event);
|
||||
};
|
||||
|
||||
_Ready.prototype.onNewLink = function (controller) {
|
||||
|
||||
controller.scope.clear_selections();
|
||||
controller.changeState(Selecting);
|
||||
};
|
||||
|
||||
|
||||
|
||||
_Start.prototype.start = function (controller) {
|
||||
|
||||
controller.changeState(Ready);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
_Connected.prototype.start = function (controller) {
|
||||
|
||||
controller.scope.clear_selections();
|
||||
controller.changeState(Ready);
|
||||
};
|
||||
|
||||
|
||||
_Connecting.prototype.onMouseDown = function () {
|
||||
};
|
||||
|
||||
_Connecting.prototype.onMouseUp = function (controller) {
|
||||
|
||||
var selected_device = controller.scope.select_items(false).last_selected_device;
|
||||
var to_device_interface = null;
|
||||
var from_device_interface = null;
|
||||
var i = 0;
|
||||
if (selected_device !== null) {
|
||||
controller.scope.new_link.to_device = selected_device;
|
||||
i = controller.scope.new_link.to_device.interface_seq();
|
||||
to_device_interface = new models.Interface(i, "swp" + i);
|
||||
controller.scope.new_link.to_device.interfaces.push(to_device_interface);
|
||||
i = controller.scope.new_link.from_device.interface_seq();
|
||||
from_device_interface = new models.Interface(i, "swp" + i);
|
||||
controller.scope.new_link.from_device.interfaces.push(from_device_interface);
|
||||
to_device_interface.link = controller.scope.new_link;
|
||||
from_device_interface.link = controller.scope.new_link;
|
||||
to_device_interface.device = controller.scope.new_link.to_device;
|
||||
from_device_interface.device = controller.scope.new_link.from_device;
|
||||
controller.scope.new_link.to_interface = to_device_interface;
|
||||
controller.scope.new_link.from_interface = from_device_interface;
|
||||
to_device_interface.dot();
|
||||
from_device_interface.dot();
|
||||
controller.scope.send_control_message(new messages.MultipleMessage(controller.scope.client_id, [
|
||||
new messages.InterfaceCreate(controller.scope.client_id,
|
||||
controller.scope.new_link.from_device.id,
|
||||
from_device_interface.id,
|
||||
from_device_interface.name),
|
||||
new messages.InterfaceCreate(controller.scope.client_id,
|
||||
controller.scope.new_link.to_device.id,
|
||||
to_device_interface.id,
|
||||
to_device_interface.name),
|
||||
new messages.LinkCreate(controller.scope.client_id,
|
||||
controller.scope.new_link.id,
|
||||
controller.scope.new_link.from_device.id,
|
||||
controller.scope.new_link.to_device.id,
|
||||
from_device_interface.id,
|
||||
to_device_interface.id)]));
|
||||
controller.scope.new_link = null;
|
||||
controller.changeState(Connected);
|
||||
} else {
|
||||
var index = controller.scope.links.indexOf(controller.scope.new_link);
|
||||
if (index !== -1) {
|
||||
controller.scope.links.splice(index, 1);
|
||||
}
|
||||
controller.scope.new_link = null;
|
||||
controller.changeState(Ready);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
_Selecting.prototype.onMouseDown = function () {
|
||||
};
|
||||
|
||||
_Selecting.prototype.onMouseUp = function (controller) {
|
||||
|
||||
var selected_device = controller.scope.select_items(false).last_selected_device;
|
||||
if (selected_device !== null) {
|
||||
controller.scope.new_link = new models.Link(controller.scope.link_id_seq(), selected_device, null, null, null, true);
|
||||
controller.scope.links.push(controller.scope.new_link);
|
||||
controller.changeState(Connecting);
|
||||
}
|
||||
};
|
||||
|
||||
2
awx/network_ui/static/network_ui/src/main.js
Normal file
2
awx/network_ui/static/network_ui/src/main.js
Normal file
@ -0,0 +1,2 @@
|
||||
var app = require('./app.js');
|
||||
exports.app = app;
|
||||
241
awx/network_ui/static/network_ui/src/messages.js
Normal file
241
awx/network_ui/static/network_ui/src/messages.js
Normal file
@ -0,0 +1,241 @@
|
||||
|
||||
|
||||
function serialize(message) {
|
||||
return JSON.stringify([message.constructor.name, message]);
|
||||
}
|
||||
exports.serialize = serialize;
|
||||
|
||||
function DeviceMove(sender, id, x, y, previous_x, previous_y) {
|
||||
this.msg_type = "DeviceMove";
|
||||
this.sender = sender;
|
||||
this.id = id;
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.previous_x = previous_x;
|
||||
this.previous_y = previous_y;
|
||||
}
|
||||
exports.DeviceMove = DeviceMove;
|
||||
|
||||
function DeviceCreate(sender, id, x, y, name, type) {
|
||||
this.msg_type = "DeviceCreate";
|
||||
this.sender = sender;
|
||||
this.id = id;
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.name = name;
|
||||
this.type = type;
|
||||
}
|
||||
exports.DeviceCreate = DeviceCreate;
|
||||
|
||||
function DeviceDestroy(sender, id, previous_x, previous_y, previous_name, previous_type) {
|
||||
this.msg_type = "DeviceDestroy";
|
||||
this.sender = sender;
|
||||
this.id = id;
|
||||
this.previous_x = previous_x;
|
||||
this.previous_y = previous_y;
|
||||
this.previous_name = previous_name;
|
||||
this.previous_type = previous_type;
|
||||
}
|
||||
exports.DeviceDestroy = DeviceDestroy;
|
||||
|
||||
function DeviceLabelEdit(sender, id, name, previous_name) {
|
||||
this.msg_type = "DeviceLabelEdit";
|
||||
this.sender = sender;
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.previous_name = previous_name;
|
||||
}
|
||||
exports.DeviceLabelEdit = DeviceLabelEdit;
|
||||
|
||||
function DeviceSelected(sender, id) {
|
||||
this.msg_type = "DeviceSelected";
|
||||
this.sender = sender;
|
||||
this.id = id;
|
||||
}
|
||||
exports.DeviceSelected = DeviceSelected;
|
||||
|
||||
function DeviceUnSelected(sender, id) {
|
||||
this.msg_type = "DeviceUnSelected";
|
||||
this.sender = sender;
|
||||
this.id = id;
|
||||
}
|
||||
exports.DeviceUnSelected = DeviceUnSelected;
|
||||
|
||||
function InterfaceCreate(sender, device_id, id, name) {
|
||||
this.msg_type = "InterfaceCreate";
|
||||
this.sender = sender;
|
||||
this.device_id = device_id;
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
}
|
||||
exports.InterfaceCreate = InterfaceCreate;
|
||||
|
||||
function InterfaceLabelEdit(sender, id, device_id, name, previous_name) {
|
||||
this.msg_type = "InterfaceLabelEdit";
|
||||
this.sender = sender;
|
||||
this.id = id;
|
||||
this.device_id = device_id;
|
||||
this.name = name;
|
||||
this.previous_name = previous_name;
|
||||
}
|
||||
exports.InterfaceLabelEdit = InterfaceLabelEdit;
|
||||
|
||||
function LinkLabelEdit(sender, id, name, previous_name) {
|
||||
this.msg_type = "LinkLabelEdit";
|
||||
this.sender = sender;
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.previous_name = previous_name;
|
||||
}
|
||||
exports.LinkLabelEdit = LinkLabelEdit;
|
||||
|
||||
function LinkCreate(sender, id, from_device_id, to_device_id, from_interface_id, to_interface_id) {
|
||||
this.msg_type = "LinkCreate";
|
||||
this.id = id;
|
||||
this.sender = sender;
|
||||
this.name = '';
|
||||
this.from_device_id = from_device_id;
|
||||
this.to_device_id = to_device_id;
|
||||
this.from_interface_id = from_interface_id;
|
||||
this.to_interface_id = to_interface_id;
|
||||
}
|
||||
exports.LinkCreate = LinkCreate;
|
||||
|
||||
function LinkDestroy(sender, id, from_id, to_id) {
|
||||
this.msg_type = "LinkDestroy";
|
||||
this.id = id;
|
||||
this.sender = sender;
|
||||
this.from_id = from_id;
|
||||
this.to_id = to_id;
|
||||
this.name = '';
|
||||
}
|
||||
exports.LinkDestroy = LinkDestroy;
|
||||
|
||||
function LinkSelected(sender, id) {
|
||||
this.msg_type = "LinkSelected";
|
||||
this.sender = sender;
|
||||
this.id = id;
|
||||
}
|
||||
exports.LinkSelected = LinkSelected;
|
||||
|
||||
function LinkUnSelected(sender, id) {
|
||||
this.msg_type = "LinkUnSelected";
|
||||
this.sender = sender;
|
||||
this.id = id;
|
||||
}
|
||||
exports.LinkUnSelected = LinkUnSelected;
|
||||
|
||||
function Undo(sender, original_message) {
|
||||
this.msg_type = "Undo";
|
||||
this.sender = sender;
|
||||
this.original_message = original_message;
|
||||
}
|
||||
exports.Undo = Undo;
|
||||
|
||||
function Redo(sender, original_message) {
|
||||
this.msg_type = "Redo";
|
||||
this.sender = sender;
|
||||
this.original_message = original_message;
|
||||
}
|
||||
exports.Redo = Redo;
|
||||
|
||||
function Deploy(sender) {
|
||||
this.msg_type = "Deploy";
|
||||
this.sender = sender;
|
||||
}
|
||||
exports.Deploy = Deploy;
|
||||
|
||||
function Destroy(sender) {
|
||||
this.msg_type = "Destroy";
|
||||
this.sender = sender;
|
||||
}
|
||||
exports.Destroy = Destroy;
|
||||
|
||||
function Discover(sender) {
|
||||
this.msg_type = "Discover";
|
||||
this.sender = sender;
|
||||
}
|
||||
|
||||
exports.Discover = Discover;
|
||||
|
||||
function Layout(sender) {
|
||||
this.msg_type = "Layout";
|
||||
this.sender = sender;
|
||||
}
|
||||
exports.Layout = Layout;
|
||||
|
||||
function MultipleMessage(sender, messages) {
|
||||
this.msg_type = "MultipleMessage";
|
||||
this.sender = sender;
|
||||
this.messages = messages;
|
||||
}
|
||||
exports.MultipleMessage = MultipleMessage;
|
||||
|
||||
function Coverage(sender, coverage) {
|
||||
this.msg_type = "Coverage";
|
||||
this.sender = sender;
|
||||
this.coverage = coverage;
|
||||
}
|
||||
exports.Coverage = Coverage;
|
||||
|
||||
function MouseEvent(sender, x, y, type) {
|
||||
this.msg_type = "MouseEvent";
|
||||
this.sender = sender;
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.type = type;
|
||||
}
|
||||
exports.MouseEvent = MouseEvent;
|
||||
|
||||
function MouseWheelEvent(sender, delta, deltaX, deltaY, type, metaKey) {
|
||||
this.msg_type = "MouseWheelEvent";
|
||||
this.sender = sender;
|
||||
this.delta = delta;
|
||||
this.deltaX = deltaX;
|
||||
this.deltaY = deltaY;
|
||||
this.type = type;
|
||||
this.originalEvent = {metaKey: metaKey};
|
||||
}
|
||||
exports.MouseWheelEvent = MouseWheelEvent;
|
||||
|
||||
function KeyEvent(sender, key, keyCode, type, altKey, shiftKey, ctrlKey, metaKey) {
|
||||
this.msg_type = "KeyEvent";
|
||||
this.sender = sender;
|
||||
this.key = key;
|
||||
this.keyCode = keyCode;
|
||||
this.type = type;
|
||||
this.altKey = altKey;
|
||||
this.shiftKey = shiftKey;
|
||||
this.ctrlKey = ctrlKey;
|
||||
this.metaKey = metaKey;
|
||||
}
|
||||
exports.KeyEvent = KeyEvent;
|
||||
|
||||
function TouchEvent(sender, type, touches) {
|
||||
this.msg_type = "TouchEvent";
|
||||
this.sender = sender;
|
||||
this.type = type;
|
||||
this.touches = touches;
|
||||
}
|
||||
exports.TouchEvent = TouchEvent;
|
||||
|
||||
function StartRecording(sender) {
|
||||
this.msg_type = "StartRecording";
|
||||
this.sender = sender;
|
||||
}
|
||||
exports.StartRecording = StartRecording;
|
||||
|
||||
function StopRecording(sender) {
|
||||
this.msg_type = "StopRecording";
|
||||
this.sender = sender;
|
||||
}
|
||||
exports.StopRecording = StopRecording;
|
||||
|
||||
function ViewPort(sender, scale, panX, panY) {
|
||||
this.msg_type = "ViewPort";
|
||||
this.sender = sender;
|
||||
this.scale = scale;
|
||||
this.panX = panX;
|
||||
this.panY = panY;
|
||||
}
|
||||
exports.ViewPort = ViewPort;
|
||||
278
awx/network_ui/static/network_ui/src/models.js
Normal file
278
awx/network_ui/static/network_ui/src/models.js
Normal file
@ -0,0 +1,278 @@
|
||||
var fsm = require('./fsm.js');
|
||||
var button = require('./button.js');
|
||||
var util = require('./util.js');
|
||||
|
||||
function Device(id, name, x, y, type) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.height = type === "host" ? 15 : 50;
|
||||
this.width = 50;
|
||||
this.size = 50;
|
||||
this.type = type;
|
||||
this.selected = false;
|
||||
this.remote_selected = false;
|
||||
this.edit_label = false;
|
||||
this.status = null;
|
||||
this.working = false;
|
||||
this.tasks = [];
|
||||
this.shape = type === "router" ? "circular" : "rectangular";
|
||||
this.interface_seq = util.natural_numbers(0);
|
||||
this.interfaces = [];
|
||||
}
|
||||
exports.Device = Device;
|
||||
|
||||
Device.prototype.is_selected = function (x, y) {
|
||||
|
||||
return (x > this.x - this.width &&
|
||||
x < this.x + this.width &&
|
||||
y > this.y - this.height &&
|
||||
y < this.y + this.height);
|
||||
|
||||
};
|
||||
|
||||
Device.prototype.describeArc = util.describeArc;
|
||||
|
||||
|
||||
function Interface(id, name) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.link = null;
|
||||
this.device = null;
|
||||
this.edit_label = false;
|
||||
this.dot_x = null;
|
||||
this.dot_y = null;
|
||||
}
|
||||
exports.Interface = Interface;
|
||||
|
||||
Interface.prototype.is_selected = function (x, y) {
|
||||
|
||||
if (this.link === null || this.device === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var d = Math.sqrt(Math.pow(x - this.device.x, 2) + Math.pow(y - this.device.y, 2));
|
||||
return this.link.is_selected(x, y) && (d < this.dot_d + 30);
|
||||
};
|
||||
|
||||
Interface.prototype.dot_distance = function () {
|
||||
this.dot_d = Math.sqrt(Math.pow(this.device.x - this.dot_x, 2) + Math.pow(this.device.y - this.dot_y, 2));
|
||||
};
|
||||
|
||||
Interface.prototype.dot = function () {
|
||||
if (this.link === null || this.device === null) {
|
||||
return;
|
||||
}
|
||||
var p;
|
||||
if (this.device.shape === "circular") {
|
||||
|
||||
var theta = this.link.slope_rads();
|
||||
if (this.link.from_interface === this) {
|
||||
theta = theta + Math.PI;
|
||||
}
|
||||
p = {x: this.device.x - this.device.size * Math.cos(theta),
|
||||
y: this.device.y - this.device.size * Math.sin(theta)};
|
||||
this.dot_x = p.x;
|
||||
this.dot_y = p.y;
|
||||
this.dot_distance();
|
||||
return;
|
||||
}
|
||||
|
||||
var x1;
|
||||
var y1;
|
||||
var x2;
|
||||
var y2;
|
||||
var x3;
|
||||
var y3;
|
||||
var x4;
|
||||
var y4;
|
||||
var param1;
|
||||
var param2;
|
||||
|
||||
x3 = this.link.to_device.x;
|
||||
y3 = this.link.to_device.y;
|
||||
x4 = this.link.from_device.x;
|
||||
y4 = this.link.from_device.y;
|
||||
|
||||
x1 = this.device.x - this.device.width;
|
||||
y1 = this.device.y - this.device.height;
|
||||
x2 = this.device.x + this.device.width;
|
||||
y2 = this.device.y - this.device.height;
|
||||
|
||||
p = util.intersection(x3, y3, x4, y4, x1, y1, x2, y2);
|
||||
param1 = util.pCase(p.x, p.y, x1, y1, x2, y2);
|
||||
param2 = util.pCase(p.x, p.y, x3, y3, x4, y4);
|
||||
if (param1 >= 0 && param1 <= 1 && param2 >= 0 && param2 <= 1) {
|
||||
this.dot_x = p.x;
|
||||
this.dot_y = p.y;
|
||||
this.dot_distance();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
x1 = this.device.x - this.device.width;
|
||||
y1 = this.device.y + this.device.height;
|
||||
x2 = this.device.x + this.device.width;
|
||||
y2 = this.device.y + this.device.height;
|
||||
|
||||
p = util.intersection(x3, y3, x4, y4, x1, y1, x2, y2);
|
||||
param1 = util.pCase(p.x, p.y, x1, y1, x2, y2);
|
||||
param2 = util.pCase(p.x, p.y, x3, y3, x4, y4);
|
||||
if (param1 >= 0 && param1 <= 1 && param2 >= 0 && param2 <= 1) {
|
||||
this.dot_x = p.x;
|
||||
this.dot_y = p.y;
|
||||
this.dot_distance();
|
||||
return;
|
||||
}
|
||||
|
||||
x1 = this.device.x + this.device.width;
|
||||
y1 = this.device.y - this.device.height;
|
||||
x2 = this.device.x + this.device.width;
|
||||
y2 = this.device.y + this.device.height;
|
||||
|
||||
p = util.intersection(x3, y3, x4, y4, x1, y1, x2, y2);
|
||||
param1 = util.pCase(p.x, p.y, x1, y1, x2, y2);
|
||||
param2 = util.pCase(p.x, p.y, x3, y3, x4, y4);
|
||||
if (param1 >= 0 && param1 <= 1 && param2 >= 0 && param2 <= 1) {
|
||||
this.dot_x = p.x;
|
||||
this.dot_y = p.y;
|
||||
this.dot_distance();
|
||||
return;
|
||||
}
|
||||
|
||||
x1 = this.device.x - this.device.width;
|
||||
y1 = this.device.y - this.device.height;
|
||||
x2 = this.device.x - this.device.width;
|
||||
y2 = this.device.y + this.device.height;
|
||||
|
||||
p = util.intersection(x3, y3, x4, y4, x1, y1, x2, y2);
|
||||
param1 = util.pCase(p.x, p.y, x1, y1, x2, y2);
|
||||
param2 = util.pCase(p.x, p.y, x3, y3, x4, y4);
|
||||
if (param1 >= 0 && param1 <= 1 && param2 >= 0 && param2 <= 1) {
|
||||
this.dot_x = p.x;
|
||||
this.dot_y = p.y;
|
||||
this.dot_distance();
|
||||
return;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
function Link(id, from_device, to_device, from_interface, to_interface) {
|
||||
this.id = id;
|
||||
this.from_device = from_device;
|
||||
this.to_device = to_device;
|
||||
this.from_interface = from_interface;
|
||||
this.to_interface = to_interface;
|
||||
this.selected = false;
|
||||
this.remote_selected = false;
|
||||
this.status = null;
|
||||
this.edit_label = false;
|
||||
this.name = "";
|
||||
}
|
||||
exports.Link = Link;
|
||||
|
||||
Link.prototype.is_selected = function (x, y) {
|
||||
// Is the distance to the mouse location less than 25 if on the label side
|
||||
// or 5 on the other from the shortest line to the link?
|
||||
|
||||
if (this.to_device === null) {
|
||||
return false;
|
||||
}
|
||||
var d = util.pDistance(x,
|
||||
y,
|
||||
this.from_device.x,
|
||||
this.from_device.y,
|
||||
this.to_device.x,
|
||||
this.to_device.y);
|
||||
if (util.cross_z_pos(x,
|
||||
y,
|
||||
this.from_device.x,
|
||||
this.from_device.y,
|
||||
this.to_device.x,
|
||||
this.to_device.y)) {
|
||||
return d < 10;
|
||||
} else {
|
||||
return d < 10;
|
||||
}
|
||||
};
|
||||
|
||||
Link.prototype.slope_rads = function () {
|
||||
//Return the slope in degrees for this link.
|
||||
var x1 = this.from_device.x;
|
||||
var y1 = this.from_device.y;
|
||||
var x2 = this.to_device.x;
|
||||
var y2 = this.to_device.y;
|
||||
return Math.atan2(y2 - y1, x2 - x1);
|
||||
};
|
||||
|
||||
Link.prototype.slope = function () {
|
||||
//Return the slope in degrees for this link.
|
||||
var x1 = this.from_device.x;
|
||||
var y1 = this.from_device.y;
|
||||
var x2 = this.to_device.x;
|
||||
var y2 = this.to_device.y;
|
||||
return Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI + 180;
|
||||
};
|
||||
|
||||
Link.prototype.pDistanceLine = function (x, y) {
|
||||
|
||||
var x1 = this.from_device.x;
|
||||
var y1 = this.from_device.y;
|
||||
var x2 = this.to_device.x;
|
||||
var y2 = this.to_device.y;
|
||||
return util.pDistanceLine(x, y, x1, y1, x2, y2);
|
||||
};
|
||||
|
||||
|
||||
Link.prototype.length = function () {
|
||||
//Return the length of this link.
|
||||
var x1 = this.from_device.x;
|
||||
var y1 = this.from_device.y;
|
||||
var x2 = this.to_device.x;
|
||||
var y2 = this.to_device.y;
|
||||
return Math.sqrt(Math.pow(x1-x2, 2) + Math.pow(y1-y2, 2));
|
||||
};
|
||||
|
||||
Link.prototype.plength = function (x, y) {
|
||||
//Return the length of this link.
|
||||
var x1 = this.from_device.x;
|
||||
var y1 = this.from_device.y;
|
||||
var x2 = this.to_device.x;
|
||||
var y2 = this.to_device.y;
|
||||
return util.pDistance(x, y, x1, y1, x2, y2);
|
||||
};
|
||||
|
||||
|
||||
function Button(name, x, y, width, height, callback) {
|
||||
this.name = name;
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
this.callback = callback;
|
||||
this.is_pressed = false;
|
||||
this.mouse_over = false;
|
||||
this.fsm = new fsm.FSMController(this, button.Start, null);
|
||||
}
|
||||
exports.Button = Button;
|
||||
|
||||
|
||||
Button.prototype.is_selected = function (x, y) {
|
||||
|
||||
return (x > this.x &&
|
||||
x < this.x + this.width &&
|
||||
y > this.y &&
|
||||
y < this.y + this.height);
|
||||
|
||||
};
|
||||
|
||||
function Task(id, name) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.status = null;
|
||||
this.working = null;
|
||||
}
|
||||
exports.Task = Task;
|
||||
|
||||
Task.prototype.describeArc = util.describeArc;
|
||||
348
awx/network_ui/static/network_ui/src/move.js
Normal file
348
awx/network_ui/static/network_ui/src/move.js
Normal file
@ -0,0 +1,348 @@
|
||||
var inherits = require('inherits');
|
||||
var fsm = require('./fsm.js');
|
||||
var models = require('./models.js');
|
||||
var messages = require('./messages.js');
|
||||
var util = require('./util.js');
|
||||
|
||||
function _State () {
|
||||
}
|
||||
inherits(_State, fsm._State);
|
||||
|
||||
function _Ready () {
|
||||
this.name = 'Ready';
|
||||
}
|
||||
inherits(_Ready, _State);
|
||||
var Ready = new _Ready();
|
||||
exports.Ready = Ready;
|
||||
|
||||
function _Start () {
|
||||
this.name = 'Start';
|
||||
}
|
||||
inherits(_Start, _State);
|
||||
var Start = new _Start();
|
||||
exports.Start = Start;
|
||||
|
||||
function _Selected2 () {
|
||||
this.name = 'Selected2';
|
||||
}
|
||||
inherits(_Selected2, _State);
|
||||
var Selected2 = new _Selected2();
|
||||
exports.Selected2 = Selected2;
|
||||
|
||||
function _Selected3 () {
|
||||
this.name = 'Selected3';
|
||||
}
|
||||
inherits(_Selected3, _State);
|
||||
var Selected3 = new _Selected3();
|
||||
exports.Selected3 = Selected3;
|
||||
|
||||
function _Move () {
|
||||
this.name = 'Move';
|
||||
}
|
||||
inherits(_Move, _State);
|
||||
var Move = new _Move();
|
||||
exports.Move = Move;
|
||||
|
||||
function _Selected1 () {
|
||||
this.name = 'Selected1';
|
||||
}
|
||||
inherits(_Selected1, _State);
|
||||
var Selected1 = new _Selected1();
|
||||
exports.Selected1 = Selected1;
|
||||
|
||||
|
||||
|
||||
function _EditLabel () {
|
||||
this.name = 'EditLabel';
|
||||
}
|
||||
inherits(_EditLabel, _State);
|
||||
var EditLabel = new _EditLabel();
|
||||
exports.EditLabel = EditLabel;
|
||||
|
||||
_Ready.prototype.onMouseDown = function (controller, msg_type, $event) {
|
||||
|
||||
var last_selected = controller.scope.select_items($event.shiftKey);
|
||||
|
||||
if (last_selected.last_selected_device !== null) {
|
||||
controller.changeState(Selected1);
|
||||
} else if (last_selected.last_selected_link !== null) {
|
||||
controller.changeState(Selected1);
|
||||
} else if (last_selected.last_selected_interface !== null) {
|
||||
controller.changeState(Selected1);
|
||||
} else {
|
||||
controller.next_controller.handle_message(msg_type, $event);
|
||||
}
|
||||
};
|
||||
_Ready.prototype.onMouseDown.transitions = ['Selected1'];
|
||||
|
||||
_Ready.prototype.onTouchStart = _Ready.prototype.onMouseDown;
|
||||
|
||||
|
||||
_Ready.prototype.onKeyDown = function(controller, msg_type, $event) {
|
||||
|
||||
var scope = controller.scope;
|
||||
var device = null;
|
||||
|
||||
if ($event.key === 'r') {
|
||||
device = new models.Device(controller.scope.device_id_seq(),
|
||||
"Router",
|
||||
scope.scaledX,
|
||||
scope.scaledY,
|
||||
"router");
|
||||
}
|
||||
else if ($event.key === 's') {
|
||||
device = new models.Device(controller.scope.device_id_seq(),
|
||||
"Switch",
|
||||
scope.scaledX,
|
||||
scope.scaledY,
|
||||
"switch");
|
||||
}
|
||||
else if ($event.key === 'a') {
|
||||
device = new models.Device(controller.scope.device_id_seq(),
|
||||
"Rack",
|
||||
scope.scaledX,
|
||||
scope.scaledY,
|
||||
"rack");
|
||||
}
|
||||
else if ($event.key === 'h') {
|
||||
device = new models.Device(controller.scope.device_id_seq(),
|
||||
"Host",
|
||||
scope.scaledX,
|
||||
scope.scaledY,
|
||||
"host");
|
||||
}
|
||||
|
||||
if (device !== null) {
|
||||
scope.devices.push(device);
|
||||
scope.send_control_message(new messages.DeviceCreate(scope.client_id,
|
||||
device.id,
|
||||
device.x,
|
||||
device.y,
|
||||
device.name,
|
||||
device.type));
|
||||
}
|
||||
|
||||
controller.next_controller.handle_message(msg_type, $event);
|
||||
};
|
||||
|
||||
_Start.prototype.start = function (controller) {
|
||||
|
||||
controller.changeState(Ready);
|
||||
|
||||
};
|
||||
_Start.prototype.start.transitions = ['Ready'];
|
||||
|
||||
|
||||
|
||||
_Selected2.prototype.onMouseDown = function (controller, msg_type, $event) {
|
||||
|
||||
var last_selected = null;
|
||||
|
||||
if (controller.scope.selected_devices.length === 1) {
|
||||
var current_selected_device = controller.scope.selected_devices[0];
|
||||
var last_selected_device = controller.scope.select_items($event.shiftKey).last_selected_device;
|
||||
if (current_selected_device === last_selected_device) {
|
||||
controller.changeState(Selected3);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (controller.scope.selected_links.length === 1) {
|
||||
var current_selected_link = controller.scope.selected_links[0];
|
||||
last_selected = controller.scope.select_items($event.shiftKey);
|
||||
if (current_selected_link === last_selected.last_selected_link) {
|
||||
controller.changeState(Selected3);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (controller.scope.selected_interfaces.length === 1) {
|
||||
var current_selected_interface = controller.scope.selected_interfaces[0];
|
||||
last_selected = controller.scope.select_items($event.shiftKey);
|
||||
if (current_selected_interface === last_selected.last_selected_interface) {
|
||||
controller.changeState(Selected3);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
controller.changeState(Ready);
|
||||
controller.handle_message(msg_type, $event);
|
||||
};
|
||||
_Selected2.prototype.onMouseDown.transitions = ['Ready', 'Selected3'];
|
||||
|
||||
_Selected2.prototype.onTouchStart = _Selected2.prototype.onMouseDown;
|
||||
|
||||
_Selected2.prototype.onKeyDown = function (controller, msg_type, $event) {
|
||||
|
||||
if ($event.keyCode === 8) {
|
||||
//Delete
|
||||
controller.changeState(Ready);
|
||||
|
||||
var i = 0;
|
||||
var j = 0;
|
||||
var index = -1;
|
||||
var devices = controller.scope.selected_devices;
|
||||
var all_links = controller.scope.links.slice();
|
||||
controller.scope.selected_devices = [];
|
||||
controller.scope.selected_links = [];
|
||||
for (i = 0; i < devices.length; i++) {
|
||||
index = controller.scope.devices.indexOf(devices[i]);
|
||||
if (index !== -1) {
|
||||
controller.scope.devices.splice(index, 1);
|
||||
controller.scope.send_control_message(new messages.DeviceDestroy(controller.scope.client_id,
|
||||
devices[i].id,
|
||||
devices[i].x,
|
||||
devices[i].y,
|
||||
devices[i].name,
|
||||
devices[i].type));
|
||||
}
|
||||
for (j = 0; j < all_links.length; j++) {
|
||||
if (all_links[j].to_device === devices[i] ||
|
||||
all_links[j].from_device === devices[i]) {
|
||||
index = controller.scope.links.indexOf(all_links[j]);
|
||||
if (index !== -1) {
|
||||
controller.scope.links.splice(index, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
_Selected2.prototype.onKeyDown.transitions = ['Ready'];
|
||||
|
||||
|
||||
_Selected1.prototype.onMouseMove = function (controller) {
|
||||
|
||||
controller.changeState(Move);
|
||||
|
||||
};
|
||||
_Selected1.prototype.onMouseMove.transitions = ['Move'];
|
||||
|
||||
_Selected1.prototype.onTouchMove = _Selected1.prototype.onMouseMove;
|
||||
|
||||
_Selected1.prototype.onMouseUp = function (controller) {
|
||||
|
||||
controller.changeState(Selected2);
|
||||
|
||||
};
|
||||
_Selected1.prototype.onMouseUp.transitions = ['Selected2'];
|
||||
|
||||
_Selected1.prototype.onTouchEnd = _Selected1.prototype.onMouseUp;
|
||||
|
||||
_Selected1.prototype.onMouseDown = util.noop;
|
||||
|
||||
_Move.prototype.onMouseMove = function (controller) {
|
||||
|
||||
var devices = controller.scope.selected_devices;
|
||||
|
||||
var diffX = controller.scope.scaledX - controller.scope.pressedScaledX;
|
||||
var diffY = controller.scope.scaledY - controller.scope.pressedScaledY;
|
||||
var i = 0;
|
||||
var j = 0;
|
||||
var previous_x, previous_y;
|
||||
for (i = 0; i < devices.length; i++) {
|
||||
previous_x = devices[i].x;
|
||||
previous_y = devices[i].y;
|
||||
devices[i].x = devices[i].x + diffX;
|
||||
devices[i].y = devices[i].y + diffY;
|
||||
for (j = 0; j < devices[i].interfaces.length; j++) {
|
||||
devices[i].interfaces[j].dot();
|
||||
if (devices[i].interfaces[j].link !== null) {
|
||||
devices[i].interfaces[j].link.to_interface.dot();
|
||||
devices[i].interfaces[j].link.from_interface.dot();
|
||||
}
|
||||
}
|
||||
controller.scope.send_control_message(new messages.DeviceMove(controller.scope.client_id,
|
||||
devices[i].id,
|
||||
devices[i].x,
|
||||
devices[i].y,
|
||||
previous_x,
|
||||
previous_y));
|
||||
}
|
||||
controller.scope.pressedScaledX = controller.scope.scaledX;
|
||||
controller.scope.pressedScaledY = controller.scope.scaledY;
|
||||
};
|
||||
|
||||
_Move.prototype.onTouchMove = _Move.prototype.onMouseMove;
|
||||
|
||||
|
||||
_Move.prototype.onMouseUp = function (controller, msg_type, $event) {
|
||||
|
||||
controller.changeState(Selected2);
|
||||
controller.handle_message(msg_type, $event);
|
||||
};
|
||||
_Move.prototype.onMouseUp.transitions = ['Selected2'];
|
||||
|
||||
_Move.prototype.onTouchEnd = _Move.prototype.onMouseUp;
|
||||
|
||||
_Selected3.prototype.onMouseUp = function (controller) {
|
||||
controller.changeState(EditLabel);
|
||||
};
|
||||
_Selected3.prototype.onMouseUp.transitions = ['EditLabel'];
|
||||
|
||||
_Selected3.prototype.onTouchEnd = function (controller) {
|
||||
controller.changeState(Selected2);
|
||||
};
|
||||
_Selected3.prototype.onTouchEnd.transitions = ['Selected2'];
|
||||
|
||||
|
||||
_Selected3.prototype.onMouseMove = function (controller) {
|
||||
controller.changeState(Move);
|
||||
};
|
||||
_Selected3.prototype.onMouseMove.transitions = ['Move'];
|
||||
|
||||
_Selected3.prototype.onTouchMove = _Selected3.prototype.onMouseMove;
|
||||
|
||||
|
||||
_EditLabel.prototype.start = function (controller) {
|
||||
controller.scope.selected_items[0].edit_label = true;
|
||||
};
|
||||
|
||||
_EditLabel.prototype.end = function (controller) {
|
||||
controller.scope.selected_items[0].edit_label = false;
|
||||
};
|
||||
|
||||
_EditLabel.prototype.onMouseDown = function (controller, msg_type, $event) {
|
||||
|
||||
controller.changeState(Ready);
|
||||
controller.handle_message(msg_type, $event);
|
||||
|
||||
};
|
||||
_EditLabel.prototype.onMouseDown.transitions = ['Ready'];
|
||||
|
||||
|
||||
_EditLabel.prototype.onKeyDown = function (controller, msg_type, $event) {
|
||||
//Key codes found here:
|
||||
//https://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes
|
||||
var item = controller.scope.selected_items[0];
|
||||
var previous_name = item.name;
|
||||
if ($event.keyCode === 8 || $event.keyCode === 46) { //Delete
|
||||
item.name = item.name.slice(0, -1);
|
||||
} else if ($event.keyCode >= 48 && $event.keyCode <=90) { //Alphanumeric
|
||||
item.name += $event.key;
|
||||
} else if ($event.keyCode >= 186 && $event.keyCode <=222) { //Punctuation
|
||||
item.name += $event.key;
|
||||
} else if ($event.keyCode === 13) { //Enter
|
||||
controller.changeState(Selected2);
|
||||
}
|
||||
if (item.constructor.name === "Device") {
|
||||
controller.scope.send_control_message(new messages.DeviceLabelEdit(controller.scope.client_id,
|
||||
item.id,
|
||||
item.name,
|
||||
previous_name));
|
||||
}
|
||||
if (item.constructor.name === "Interface") {
|
||||
controller.scope.send_control_message(new messages.InterfaceLabelEdit(controller.scope.client_id,
|
||||
item.id,
|
||||
item.device.id,
|
||||
item.name,
|
||||
previous_name));
|
||||
}
|
||||
if (item.constructor.name === "Link") {
|
||||
controller.scope.send_control_message(new messages.LinkLabelEdit(controller.scope.client_id,
|
||||
item.id,
|
||||
item.name,
|
||||
previous_name));
|
||||
}
|
||||
};
|
||||
_EditLabel.prototype.onKeyDown.transitions = ['Selected2'];
|
||||
315
awx/network_ui/static/network_ui/src/style.less
Normal file
315
awx/network_ui/static/network_ui/src/style.less
Normal file
@ -0,0 +1,315 @@
|
||||
/* Put your css in here */
|
||||
|
||||
@selected-red: #c9232c;
|
||||
@selected-mango: #ff5850;
|
||||
@selected-blue: #5bbddf;
|
||||
@light-background: #ffffff;
|
||||
@light-widget-detail: #ffffff;
|
||||
@dark-widget-detail: #707070;
|
||||
@widget-body: #D7D7D7;
|
||||
@link: #D7D7D7;
|
||||
@debug-copynot: rgb(77,200,242);
|
||||
@button-body: #f6f6f6;
|
||||
@button-text: #707070;
|
||||
@button-outline: #b4b6b4;
|
||||
@button-body-hover: #dfdfdf;
|
||||
@button-body-pressed: #d5d5d5;
|
||||
@green: #5CB85C;
|
||||
@red: #D9534F;
|
||||
|
||||
html {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: yellow;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
svg {
|
||||
background-color: @light-background;
|
||||
cursor: none;
|
||||
}
|
||||
|
||||
svg text {
|
||||
fill: @button-text;
|
||||
}
|
||||
|
||||
.debug text {
|
||||
fill: @debug-copynot;
|
||||
}
|
||||
|
||||
|
||||
line.selected {
|
||||
stroke: @selected-blue;
|
||||
stroke-width: 6;
|
||||
}
|
||||
|
||||
line.remote-selected {
|
||||
stroke: @selected-mango;
|
||||
stroke-width: 6;
|
||||
}
|
||||
|
||||
line.selected-conflict {
|
||||
stroke: @selected-red;
|
||||
stroke-width: 6;
|
||||
}
|
||||
|
||||
svg rect.debug {
|
||||
fill-opacity: 0;
|
||||
stroke: @debug-copynot;
|
||||
stroke-width: 1;
|
||||
}
|
||||
|
||||
svg line.link {
|
||||
stroke: @link;
|
||||
stroke-width: 2;
|
||||
}
|
||||
|
||||
svg line.link-pass {
|
||||
stroke: @green;
|
||||
stroke-width: 2;
|
||||
}
|
||||
|
||||
svg line.link-fail {
|
||||
stroke: @red;
|
||||
stroke-width: 2;
|
||||
}
|
||||
|
||||
svg line.cursor {
|
||||
stroke: @dark-widget-detail;
|
||||
stroke-width: 2;
|
||||
}
|
||||
|
||||
svg line.debug {
|
||||
stroke: @debug-copynot;
|
||||
stroke-width: 1;
|
||||
}
|
||||
|
||||
.debug-cursor line {
|
||||
stroke: @debug-copynot;
|
||||
stroke-width: 4;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.router circle {
|
||||
fill: @widget-body;
|
||||
stroke: @dark-widget-detail;
|
||||
stroke-width: 2;
|
||||
}
|
||||
|
||||
.router circle.selected {
|
||||
stroke: @selected-blue;
|
||||
stroke-width: 4;
|
||||
}
|
||||
|
||||
.router circle.remote-selected {
|
||||
stroke: @selected-mango;
|
||||
stroke-width: 4;
|
||||
}
|
||||
|
||||
.router circle.selected-conflict {
|
||||
stroke: @selected-red;
|
||||
stroke-width: 4;
|
||||
}
|
||||
|
||||
.router line {
|
||||
stroke: @light-widget-detail;
|
||||
stroke-width: 20;
|
||||
}
|
||||
|
||||
.router polygon {
|
||||
fill: @light-widget-detail;
|
||||
}
|
||||
|
||||
.switch rect {
|
||||
fill: @widget-body;
|
||||
stroke: @dark-widget-detail;
|
||||
stroke-width: 2;
|
||||
}
|
||||
|
||||
.switch rect.selected {
|
||||
stroke: @selected-blue;
|
||||
stroke-width: 10;
|
||||
}
|
||||
|
||||
.switch rect.remote-selected {
|
||||
stroke: @selected-mango;
|
||||
stroke-width: 10;
|
||||
}
|
||||
|
||||
.switch rect.selected-conflict {
|
||||
stroke: @selected-red;
|
||||
stroke-width: 10;
|
||||
}
|
||||
|
||||
.switch line {
|
||||
stroke: @light-widget-detail;
|
||||
stroke-width: 20;
|
||||
}
|
||||
|
||||
.switch polygon {
|
||||
fill: @light-widget-detail;
|
||||
}
|
||||
|
||||
.rack rect {
|
||||
fill: @widget-body;
|
||||
stroke: @dark-widget-detail;
|
||||
stroke-width: 2;
|
||||
}
|
||||
|
||||
.rack rect.background {
|
||||
fill: @light-background;
|
||||
stroke: @light-background;
|
||||
stroke-width: 2;
|
||||
}
|
||||
|
||||
.rack rect.selected {
|
||||
fill: @selected-blue;
|
||||
stroke: @selected-blue;
|
||||
stroke-width: 10;
|
||||
}
|
||||
|
||||
.rack rect.remote-selected {
|
||||
fill: @selected-mango;
|
||||
stroke: @selected-mango;
|
||||
stroke-width: 10;
|
||||
}
|
||||
|
||||
.rack rect.selected-conflict {
|
||||
fill: @selected-red;
|
||||
stroke: @selected-red;
|
||||
stroke-width: 10;
|
||||
}
|
||||
|
||||
.rack line {
|
||||
stroke: @light-widget-detail;
|
||||
stroke-width: 20;
|
||||
}
|
||||
|
||||
.rack circle {
|
||||
fill: @light-widget-detail;
|
||||
}
|
||||
|
||||
.button rect {
|
||||
fill: @button-body;
|
||||
stroke: @button-outline;
|
||||
stroke-width: 1;
|
||||
}
|
||||
|
||||
.button text {
|
||||
fill: @button-text;
|
||||
}
|
||||
|
||||
.button-pressed rect {
|
||||
fill: @button-body-pressed;
|
||||
stroke: @button-outline;
|
||||
stroke-width: 1;
|
||||
}
|
||||
|
||||
.button-pressed text {
|
||||
fill: @button-text;
|
||||
}
|
||||
|
||||
.button-hover rect {
|
||||
fill: @button-body-hover;
|
||||
stroke: @button-outline;
|
||||
stroke-width: 1;
|
||||
}
|
||||
|
||||
.button-hover text {
|
||||
fill: @button-text;
|
||||
}
|
||||
|
||||
.host rect {
|
||||
fill: @widget-body;
|
||||
stroke: @dark-widget-detail;
|
||||
stroke-width: 2;
|
||||
}
|
||||
|
||||
.host rect.background {
|
||||
fill: @light-background;
|
||||
stroke: @light-background;
|
||||
stroke-width: 2;
|
||||
}
|
||||
|
||||
.host rect.selected {
|
||||
fill: @selected-blue;
|
||||
stroke: @selected-blue;
|
||||
stroke-width: 10;
|
||||
}
|
||||
|
||||
.host rect.remote-selected {
|
||||
fill: @selected-mango;
|
||||
stroke: @selected-mango;
|
||||
stroke-width: 10;
|
||||
}
|
||||
|
||||
.host rect.selected-conflict {
|
||||
fill: @selected-red;
|
||||
stroke: @selected-red;
|
||||
stroke-width: 10;
|
||||
}
|
||||
|
||||
.host line {
|
||||
stroke: @light-widget-detail;
|
||||
stroke-width: 20;
|
||||
}
|
||||
|
||||
.host circle {
|
||||
fill: @light-widget-detail;
|
||||
}
|
||||
|
||||
circle.status {
|
||||
fill: @widget-body;
|
||||
stroke: @dark-widget-detail;
|
||||
stroke-width: 2;
|
||||
}
|
||||
|
||||
circle.pass {
|
||||
fill: @green;
|
||||
stroke: @dark-widget-detail;
|
||||
stroke-width: 2;
|
||||
}
|
||||
|
||||
circle.fail {
|
||||
fill: @red;
|
||||
stroke: @dark-widget-detail;
|
||||
stroke-width: 2;
|
||||
}
|
||||
|
||||
path.status {
|
||||
fill: none;
|
||||
stroke: @dark-widget-detail;
|
||||
stroke-width: 2;
|
||||
}
|
||||
|
||||
circle.debug {
|
||||
fill: @debug-copynot;
|
||||
}
|
||||
|
||||
|
||||
circle.interface {
|
||||
fill: @dark-widget-detail;
|
||||
}
|
||||
|
||||
circle.selected {
|
||||
fill: @selected-blue;
|
||||
}
|
||||
|
||||
text.interface {
|
||||
font-size: 8px;
|
||||
}
|
||||
|
||||
.touch circle {
|
||||
stroke: @debug-copynot;
|
||||
fill: none;
|
||||
}
|
||||
|
||||
521
awx/network_ui/static/network_ui/src/time.js
Normal file
521
awx/network_ui/static/network_ui/src/time.js
Normal file
@ -0,0 +1,521 @@
|
||||
var inherits = require('inherits');
|
||||
var fsm = require('./fsm.js');
|
||||
var messages = require('./messages.js');
|
||||
var util = require('./util.js');
|
||||
|
||||
function _State () {
|
||||
}
|
||||
inherits(_State, fsm._State);
|
||||
|
||||
function _Past () {
|
||||
this.name = 'Past';
|
||||
}
|
||||
inherits(_Past, _State);
|
||||
var Past = new _Past();
|
||||
exports.Past = Past;
|
||||
|
||||
function _Start () {
|
||||
this.name = 'Start';
|
||||
}
|
||||
inherits(_Start, _State);
|
||||
var Start = new _Start();
|
||||
exports.Start = Start;
|
||||
|
||||
function _Present () {
|
||||
this.name = 'Present';
|
||||
}
|
||||
inherits(_Present, _State);
|
||||
var Present = new _Present();
|
||||
exports.Present = Present;
|
||||
|
||||
_Past.prototype.start = function (controller) {
|
||||
|
||||
controller.scope.time_pointer = controller.scope.history.length - 1;
|
||||
};
|
||||
|
||||
|
||||
_Past.prototype.onMessage = function(controller, msg_type, message) {
|
||||
|
||||
//console.log(message.data);
|
||||
var type_data = JSON.parse(message.data);
|
||||
var type = type_data[0];
|
||||
var data = type_data[1];
|
||||
|
||||
if (['DeviceCreate',
|
||||
'DeviceDestroy',
|
||||
'DeviceMove',
|
||||
'DeviceLabelEdit',
|
||||
'LinkLabelEdit',
|
||||
'InterfaceLabelEdit',
|
||||
'InterfaceCreate',
|
||||
'LinkCreate',
|
||||
'LinkDestroy'].indexOf(type) !== -1) {
|
||||
controller.changeState(Present);
|
||||
controller.scope.history.splice(controller.scope.time_pointer);
|
||||
if (data.sender !== controller.scope.client_id) {
|
||||
controller.handle_message(msg_type, message);
|
||||
} else {
|
||||
controller.scope.history.push(message.data);
|
||||
}
|
||||
} else {
|
||||
controller.handle_message(type, data);
|
||||
}
|
||||
};
|
||||
|
||||
_Past.prototype.onMultipleMessage = function(controller, msg_type, message) {
|
||||
var i = 0;
|
||||
console.log(['MultipleMessage', message]);
|
||||
if (message.sender !== controller.scope.client_id) {
|
||||
for (i=0; i< message.messages.length; i++) {
|
||||
controller.handle_message(message.messages[i].msg_type, message.messages[i]);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
_Past.prototype.onDeviceSelected = function(controller, msg_type, message) {
|
||||
if (message.sender !== controller.scope.client_id) {
|
||||
controller.scope.onDeviceSelected(message);
|
||||
}
|
||||
};
|
||||
_Past.prototype.onDeviceUnSelected = function(controller, msg_type, message) {
|
||||
if (message.sender !== controller.scope.client_id) {
|
||||
controller.scope.onDeviceUnSelected(message);
|
||||
}
|
||||
};
|
||||
|
||||
_Past.prototype.onUndo = function(controller, msg_type, message) {
|
||||
if (message.sender !== controller.scope.client_id) {
|
||||
controller.scope.time_pointer = Math.max(0, controller.scope.time_pointer - 1);
|
||||
controller.scope.undo(message.original_message);
|
||||
}
|
||||
};
|
||||
_Past.prototype.onRedo = function(controller, msg_type, message) {
|
||||
if (message.sender !== controller.scope.client_id) {
|
||||
controller.scope.time_pointer = Math.min(controller.scope.history.length, controller.scope.time_pointer + 1);
|
||||
controller.scope.redo(message.original_message);
|
||||
if (controller.scope.time_pointer === controller.scope.history.length) {
|
||||
controller.changeState(Present);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
_Past.prototype.onCoverageRequest = function(controller) {
|
||||
controller.scope.send_coverage();
|
||||
};
|
||||
_Past.prototype.onStopRecording = function(controller) {
|
||||
controller.scope.recording = false;
|
||||
};
|
||||
_Past.prototype.onStartReplay = function(controller) {
|
||||
controller.scope.replay = true;
|
||||
};
|
||||
_Past.prototype.onStopReplay = function(controller) {
|
||||
controller.scope.replay = false;
|
||||
};
|
||||
_Past.prototype.onViewPort = function(controller, msg_type, message) {
|
||||
if (message.sender === controller.scope.client_id) {
|
||||
return;
|
||||
}
|
||||
controller.scope.current_scale = message.scale;
|
||||
controller.scope.panX = message.panX;
|
||||
controller.scope.panY = message.panY;
|
||||
controller.scope.updateScaledXY();
|
||||
controller.scope.updatePanAndScale();
|
||||
};
|
||||
_Past.prototype.onTouchEvent = function(controller, msg_type, message) {
|
||||
if (message.sender === controller.scope.client_id) {
|
||||
return;
|
||||
}
|
||||
message.preventDefault = util.noop;
|
||||
if (message.type === "touchstart") {
|
||||
controller.scope.onTouchStart(message);
|
||||
}
|
||||
if (message.type === "touchend") {
|
||||
controller.scope.onTouchEnd(message);
|
||||
}
|
||||
if (message.type === "touchmove") {
|
||||
controller.scope.onTouchMove(message);
|
||||
}
|
||||
};
|
||||
_Past.prototype.onMouseEvent = function(controller, msg_type, message) {
|
||||
if (message.sender === controller.scope.client_id) {
|
||||
return;
|
||||
}
|
||||
message.preventDefault = util.noop;
|
||||
//console.log(message);
|
||||
if (message.type === "mousemove") {
|
||||
controller.scope.onMouseMove(message);
|
||||
}
|
||||
if (message.type === "mouseup") {
|
||||
controller.scope.onMouseUp(message);
|
||||
}
|
||||
if (message.type === "mousedown") {
|
||||
controller.scope.onMouseDown(message);
|
||||
}
|
||||
if (message.type === "mouseover") {
|
||||
controller.scope.onMouseOver(message);
|
||||
}
|
||||
if (message.type === "mouseout") {
|
||||
controller.scope.onMouseOver(message);
|
||||
}
|
||||
};
|
||||
_Past.prototype.onMouseWheelEvent = function(controller, msg_type, message) {
|
||||
console.log(message);
|
||||
if (message.sender === controller.scope.client_id) {
|
||||
return;
|
||||
}
|
||||
message.preventDefault = util.noop;
|
||||
message.stopPropagation = util.noop;
|
||||
controller.scope.onMouseWheel(message, message.delta, message.deltaX, message.deltaY);
|
||||
};
|
||||
_Past.prototype.onKeyEvent = function(controller, msg_type, message) {
|
||||
if (message.sender === controller.scope.client_id) {
|
||||
return;
|
||||
}
|
||||
message.preventDefault = util.noop;
|
||||
//console.log(message);
|
||||
if (message.type === "keydown") {
|
||||
controller.scope.onKeyDown(message);
|
||||
}
|
||||
};
|
||||
|
||||
_Past.prototype.onMouseWheel = function (controller, msg_type, message) {
|
||||
|
||||
var $event = message[0];
|
||||
var delta = message[1];
|
||||
|
||||
if ($event.originalEvent.metaKey) {
|
||||
//console.log(delta);
|
||||
if (delta < 0) {
|
||||
this.undo(controller);
|
||||
} else if (delta > 0) {
|
||||
this.redo(controller);
|
||||
}
|
||||
} else {
|
||||
controller.next_controller.handle_message(msg_type, message);
|
||||
}
|
||||
|
||||
};
|
||||
_Past.prototype.onMouseWheel.transitions = ['Past'];
|
||||
|
||||
_Past.prototype.onKeyDown = function(controller, msg_type, $event) {
|
||||
|
||||
//console.log($event);
|
||||
|
||||
if ($event.key === 'z' && $event.metaKey && ! $event.shiftKey) {
|
||||
this.undo(controller);
|
||||
return;
|
||||
} else if ($event.key === 'z' && $event.ctrlKey && ! $event.shiftKey) {
|
||||
this.undo(controller);
|
||||
return;
|
||||
} else if ($event.key === 'Z' && $event.metaKey && $event.shiftKey) {
|
||||
this.redo(controller);
|
||||
return;
|
||||
} else if ($event.key === 'Z' && $event.ctrlKey && $event.shiftKey) {
|
||||
this.redo(controller);
|
||||
return;
|
||||
} else {
|
||||
controller.next_controller.handle_message(msg_type, $event);
|
||||
}
|
||||
};
|
||||
_Past.prototype.onKeyDown.transitions = ['Past'];
|
||||
|
||||
|
||||
_Past.prototype.undo = function(controller) {
|
||||
//controller.changeState(Past);
|
||||
controller.scope.time_pointer = Math.max(0, controller.scope.time_pointer - 1);
|
||||
if (controller.scope.time_pointer >= 0) {
|
||||
var change = controller.scope.history[controller.scope.time_pointer];
|
||||
var type_data = JSON.parse(change);
|
||||
controller.scope.send_control_message(new messages.Undo(controller.scope.client_id,
|
||||
type_data));
|
||||
|
||||
|
||||
controller.scope.undo(type_data);
|
||||
}
|
||||
};
|
||||
|
||||
_Past.prototype.redo = function(controller) {
|
||||
|
||||
|
||||
if (controller.scope.time_pointer < controller.scope.history.length) {
|
||||
var change = controller.scope.history[controller.scope.time_pointer];
|
||||
var type_data = JSON.parse(change);
|
||||
controller.scope.send_control_message(new messages.Redo(controller.scope.client_id,
|
||||
type_data));
|
||||
controller.scope.redo(type_data);
|
||||
controller.scope.time_pointer = Math.min(controller.scope.history.length, controller.scope.time_pointer + 1);
|
||||
if (controller.scope.time_pointer === controller.scope.history.length) {
|
||||
controller.changeState(Present);
|
||||
}
|
||||
} else {
|
||||
controller.changeState(Present);
|
||||
}
|
||||
};
|
||||
|
||||
_Start.prototype.start = function (controller) {
|
||||
|
||||
controller.changeState(Present);
|
||||
|
||||
};
|
||||
_Start.prototype.start.transitions = ['Present'];
|
||||
|
||||
_Present.prototype.onMessage = function(controller, msg_type, message) {
|
||||
|
||||
//console.log(message.data);
|
||||
var type_data = JSON.parse(message.data);
|
||||
var type = type_data[0];
|
||||
var data = type_data[1];
|
||||
|
||||
|
||||
if (['DeviceCreate',
|
||||
'DeviceDestroy',
|
||||
'DeviceMove',
|
||||
'DeviceLabelEdit',
|
||||
'LinkLabelEdit',
|
||||
'InterfaceLabelEdit',
|
||||
'InterfaceCreate',
|
||||
'LinkCreate',
|
||||
'LinkDestroy',
|
||||
'Snapshot'].indexOf(type) !== -1) {
|
||||
|
||||
controller.scope.history.push(message.data);
|
||||
}
|
||||
controller.handle_message(type, data);
|
||||
};
|
||||
_Present.prototype.onMessage.transitions = ['Past'];
|
||||
|
||||
_Present.prototype.onMultipleMessage = function(controller, msg_type, message) {
|
||||
|
||||
var i = 0;
|
||||
console.log(['MultipleMessage', message]);
|
||||
if (message.sender !== controller.scope.client_id) {
|
||||
for (i = 0; i< message.messages.length; i++) {
|
||||
controller.handle_message(message.messages[i].msg_type, message.messages[i]);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
_Present.prototype.onDeviceStatus = function(controller, msg_type, message) {
|
||||
controller.scope.onDeviceStatus(message);
|
||||
};
|
||||
|
||||
_Present.prototype.onTaskStatus = function(controller, msg_type, message) {
|
||||
controller.scope.onTaskStatus(message);
|
||||
};
|
||||
|
||||
_Present.prototype.onFacts = function(controller, msg_type, message) {
|
||||
controller.scope.onFacts(message);
|
||||
};
|
||||
|
||||
_Present.prototype.onDeviceCreate = function(controller, msg_type, message) {
|
||||
if (message.sender !== controller.scope.client_id) {
|
||||
controller.scope.onDeviceCreate(message);
|
||||
}
|
||||
};
|
||||
_Present.prototype.onInterfaceCreate = function(controller, msg_type, message) {
|
||||
if (message.sender !== controller.scope.client_id) {
|
||||
controller.scope.onInterfaceCreate(message);
|
||||
}
|
||||
};
|
||||
_Present.prototype.onLinkCreate = function(controller, msg_type, message) {
|
||||
if (message.sender !== controller.scope.client_id) {
|
||||
controller.scope.onLinkCreate(message);
|
||||
}
|
||||
};
|
||||
_Present.prototype.onDeviceMove = function(controller, msg_type, message) {
|
||||
if (message.sender !== controller.scope.client_id) {
|
||||
controller.scope.onDeviceMove(message);
|
||||
}
|
||||
};
|
||||
_Present.prototype.onDeviceDestroy = function(controller, msg_type, message) {
|
||||
if (message.sender !== controller.scope.client_id) {
|
||||
controller.scope.onDeviceDestroy(message);
|
||||
}
|
||||
};
|
||||
_Present.prototype.onLinkDestroy = function(controller, msg_type, message) {
|
||||
if (message.sender !== controller.scope.client_id) {
|
||||
controller.scope.onLinkDestroy(message);
|
||||
}
|
||||
};
|
||||
_Present.prototype.onDeviceLabelEdit = function(controller, msg_type, message) {
|
||||
if (message.sender !== controller.scope.client_id) {
|
||||
controller.scope.onDeviceLabelEdit(message);
|
||||
}
|
||||
};
|
||||
_Present.prototype.onLinkLabelEdit = function(controller, msg_type, message) {
|
||||
if (message.sender !== controller.scope.client_id) {
|
||||
controller.scope.onLinkLabelEdit(message);
|
||||
}
|
||||
};
|
||||
_Present.prototype.onInterfaceLabelEdit = function(controller, msg_type, message) {
|
||||
if (message.sender !== controller.scope.client_id) {
|
||||
controller.scope.onInterfaceLabelEdit(message);
|
||||
}
|
||||
};
|
||||
_Present.prototype.onDeviceSelected = function(controller, msg_type, message) {
|
||||
if (message.sender !== controller.scope.client_id) {
|
||||
controller.scope.onDeviceSelected(message);
|
||||
}
|
||||
};
|
||||
_Present.prototype.onDeviceUnSelected = function(controller, msg_type, message) {
|
||||
if (message.sender !== controller.scope.client_id) {
|
||||
controller.scope.onDeviceUnSelected(message);
|
||||
}
|
||||
};
|
||||
_Present.prototype.onUndo = function(controller, msg_type, message) {
|
||||
if (message.sender !== controller.scope.client_id) {
|
||||
controller.scope.time_pointer = Math.max(0, controller.scope.time_pointer - 1);
|
||||
controller.scope.undo(message.original_message);
|
||||
controller.changeState(Past);
|
||||
}
|
||||
};
|
||||
_Present.prototype.onSnapshot = function(controller, msg_type, message) {
|
||||
if (message.sender !== controller.scope.client_id) {
|
||||
controller.scope.onSnapshot(message);
|
||||
}
|
||||
};
|
||||
_Present.prototype.onid = function(controller, msg_type, message) {
|
||||
controller.scope.onClientId(message);
|
||||
};
|
||||
_Present.prototype.onTopology = function(controller, msg_type, message) {
|
||||
controller.scope.onTopology(message);
|
||||
};
|
||||
_Present.prototype.onHistory = function(controller, msg_type, message) {
|
||||
controller.scope.onHistory(message);
|
||||
};
|
||||
|
||||
_Present.prototype.onCoverageRequest = function(controller) {
|
||||
controller.scope.send_coverage();
|
||||
};
|
||||
_Present.prototype.onStopRecording = function(controller) {
|
||||
controller.scope.recording = false;
|
||||
};
|
||||
_Present.prototype.onStartReplay = function(controller) {
|
||||
controller.scope.replay = true;
|
||||
};
|
||||
_Present.prototype.onStopReplay = function(controller) {
|
||||
controller.scope.replay = false;
|
||||
};
|
||||
_Present.prototype.onViewPort = function(controller, msg_type, message) {
|
||||
if (message.sender === controller.scope.client_id) {
|
||||
return;
|
||||
}
|
||||
controller.scope.current_scale = message.scale;
|
||||
controller.scope.panX = message.panX;
|
||||
controller.scope.panY = message.panY;
|
||||
controller.scope.updateScaledXY();
|
||||
controller.scope.updatePanAndScale();
|
||||
};
|
||||
_Present.prototype.onTouchEvent = function(controller, msg_type, message) {
|
||||
if (!controller.scope.replay) {
|
||||
return;
|
||||
}
|
||||
if (message.sender === controller.scope.client_id) {
|
||||
return;
|
||||
}
|
||||
message.preventDefault = util.noop;
|
||||
if (message.type === "touchstart") {
|
||||
controller.scope.onTouchStart(message);
|
||||
}
|
||||
if (message.type === "touchend") {
|
||||
controller.scope.onTouchEnd(message);
|
||||
}
|
||||
if (message.type === "touchmove") {
|
||||
controller.scope.onTouchMove(message);
|
||||
}
|
||||
};
|
||||
_Present.prototype.onMouseEvent = function(controller, msg_type, message) {
|
||||
if (!controller.scope.replay) {
|
||||
return;
|
||||
}
|
||||
if (message.sender === controller.scope.client_id) {
|
||||
return;
|
||||
}
|
||||
message.preventDefault = util.noop;
|
||||
//console.log(message);
|
||||
if (message.type === "mousemove") {
|
||||
controller.scope.onMouseMove(message);
|
||||
}
|
||||
if (message.type === "mouseup") {
|
||||
controller.scope.onMouseUp(message);
|
||||
}
|
||||
if (message.type === "mousedown") {
|
||||
controller.scope.onMouseDown(message);
|
||||
}
|
||||
if (message.type === "mouseover") {
|
||||
controller.scope.onMouseOver(message);
|
||||
}
|
||||
};
|
||||
_Present.prototype.onMouseWheelEvent = function(controller, msg_type, message) {
|
||||
if (!controller.scope.replay) {
|
||||
return;
|
||||
}
|
||||
console.log(message);
|
||||
if (message.sender === controller.scope.client_id) {
|
||||
return;
|
||||
}
|
||||
message.preventDefault = util.noop;
|
||||
message.stopPropagation = util.noop;
|
||||
controller.scope.onMouseWheel(message, message.delta, message.deltaX, message.deltaY);
|
||||
};
|
||||
_Present.prototype.onKeyEvent = function(controller, msg_type, message) {
|
||||
if (!controller.scope.replay) {
|
||||
return;
|
||||
}
|
||||
if (message.sender === controller.scope.client_id) {
|
||||
return;
|
||||
}
|
||||
message.preventDefault = util.noop;
|
||||
//console.log(message);
|
||||
if (message.type === "keydown") {
|
||||
controller.scope.onKeyDown(message);
|
||||
}
|
||||
};
|
||||
_Present.prototype.onMessage.transitions = ['Past'];
|
||||
|
||||
_Present.prototype.onMouseWheel = function (controller, msg_type, message) {
|
||||
|
||||
var $event = message[0];
|
||||
var delta = message[1];
|
||||
|
||||
if ($event.originalEvent.metaKey) {
|
||||
//console.log(delta);
|
||||
if (delta < 0) {
|
||||
this.undo(controller);
|
||||
}
|
||||
} else {
|
||||
controller.next_controller.handle_message(msg_type, message);
|
||||
}
|
||||
|
||||
};
|
||||
_Present.prototype.onMouseWheel.transitions = ['Past'];
|
||||
|
||||
_Present.prototype.onKeyDown = function(controller, msg_type, $event) {
|
||||
|
||||
//console.log($event);
|
||||
|
||||
if ($event.key === 'z' && $event.metaKey && ! $event.shiftKey) {
|
||||
this.undo(controller);
|
||||
return;
|
||||
} else if ($event.key === 'z' && $event.ctrlKey && ! $event.shiftKey) {
|
||||
this.undo(controller);
|
||||
return;
|
||||
} else {
|
||||
controller.next_controller.handle_message(msg_type, $event);
|
||||
}
|
||||
};
|
||||
_Present.prototype.onKeyDown.transitions = ['Past'];
|
||||
|
||||
|
||||
_Present.prototype.undo = function(controller) {
|
||||
controller.scope.time_pointer = controller.scope.history.length - 1;
|
||||
if (controller.scope.time_pointer >= 0) {
|
||||
var change = controller.scope.history[controller.scope.time_pointer];
|
||||
var type_data = JSON.parse(change);
|
||||
controller.scope.send_control_message(new messages.Undo(controller.scope.client_id,
|
||||
type_data));
|
||||
|
||||
controller.scope.undo(type_data);
|
||||
controller.changeState(Past);
|
||||
}
|
||||
};
|
||||
205
awx/network_ui/static/network_ui/src/util.js
Normal file
205
awx/network_ui/static/network_ui/src/util.js
Normal file
@ -0,0 +1,205 @@
|
||||
var math = require('mathjs');
|
||||
|
||||
function noop () {
|
||||
}
|
||||
exports.noop = noop;
|
||||
|
||||
function natural_numbers (start) {
|
||||
var counter = start;
|
||||
return function () {return counter += 1;};
|
||||
}
|
||||
exports.natural_numbers = natural_numbers;
|
||||
|
||||
// polarToCartesian
|
||||
// @wdebeaum, @opsb
|
||||
// from http://stackoverflow.com/questions/5736398/how-to-calculate-the-svg-path-for-an-arc-of-a-circle
|
||||
function polarToCartesian(centerX, centerY, radius, angleInDegrees) {
|
||||
var angleInRadians = (angleInDegrees-90) * Math.PI / 180.0;
|
||||
|
||||
return {
|
||||
x: centerX + (radius * Math.cos(angleInRadians)),
|
||||
y: centerY + (radius * Math.sin(angleInRadians))
|
||||
};
|
||||
}
|
||||
|
||||
// describeArc
|
||||
// @wdebeaum, @opsb
|
||||
// from http://stackoverflow.com/questions/5736398/how-to-calculate-the-svg-path-for-an-arc-of-a-circle
|
||||
function describeArc(x, y, radius, startAngle, endAngle){
|
||||
|
||||
var start = polarToCartesian(x, y, radius, endAngle);
|
||||
var end = polarToCartesian(x, y, radius, startAngle);
|
||||
|
||||
var largeArcFlag = endAngle - startAngle <= 180 ? "0" : "1";
|
||||
|
||||
var d = [
|
||||
"M", start.x, start.y,
|
||||
"A", radius, radius, 0, largeArcFlag, 0, end.x, end.y
|
||||
].join(" ");
|
||||
|
||||
return d;
|
||||
}
|
||||
exports.describeArc = describeArc;
|
||||
|
||||
function pDistanceLine(x, y, x1, y1, x2, y2) {
|
||||
//Code from http://stackoverflow.com/questions/849211/shortest-distance-between-a-point-and-a-line-segment
|
||||
//Joshua
|
||||
// Find the dot product of two vectors <A, B>, <C, D>
|
||||
// Divide by the length squared of <C, D>
|
||||
// Use scalar project to find param
|
||||
//
|
||||
|
||||
var A = x - x1;
|
||||
var B = y - y1;
|
||||
var C = x2 - x1;
|
||||
var D = y2 - y1;
|
||||
|
||||
var dot = A * C + B * D;
|
||||
var len_sq = C * C + D * D;
|
||||
var param = -1;
|
||||
if (len_sq !== 0) {
|
||||
//in case of 0 length line
|
||||
param = dot / len_sq;
|
||||
}
|
||||
|
||||
var xx, yy;
|
||||
|
||||
//Find a point xx, yy where the projection and the <C, D> vector intersect.
|
||||
//If less than 0 use x1, y1 as the closest point.
|
||||
//If less than 1 use x2, y2 as the closest point.
|
||||
//If between 0 and 1 use the projection intersection xx, yy
|
||||
if (param < 0) {
|
||||
xx = x1;
|
||||
yy = y1;
|
||||
}
|
||||
else if (param > 1) {
|
||||
xx = x2;
|
||||
yy = y2;
|
||||
}
|
||||
else {
|
||||
xx = x1 + param * C;
|
||||
yy = y1 + param * D;
|
||||
}
|
||||
|
||||
return {x1:x, y1:y, x2: xx, y2: yy};
|
||||
}
|
||||
exports.pDistanceLine = pDistanceLine;
|
||||
|
||||
function pDistance(x, y, x1, y1, x2, y2) {
|
||||
//Code from http://stackoverflow.com/questions/849211/shortest-distance-between-a-point-and-a-line-segment
|
||||
//Joshua
|
||||
// Find the dot product of two vectors <A, B>, <C, D>
|
||||
// Divide by the length squared of <C, D>
|
||||
// Use scalar project to find param
|
||||
//
|
||||
|
||||
var A = x - x1;
|
||||
var B = y - y1;
|
||||
var C = x2 - x1;
|
||||
var D = y2 - y1;
|
||||
|
||||
var dot = A * C + B * D;
|
||||
var len_sq = C * C + D * D;
|
||||
var param = -1;
|
||||
if (len_sq !== 0) {
|
||||
//in case of 0 length line
|
||||
param = dot / len_sq;
|
||||
}
|
||||
|
||||
var xx, yy;
|
||||
|
||||
//Find a point xx, yy where the projection and the <C, D> vector intersect.
|
||||
//If less than 0 use x1, y1 as the closest point.
|
||||
//If less than 1 use x2, y2 as the closest point.
|
||||
//If between 0 and 1 use the projection intersection xx, yy
|
||||
if (param < 0) {
|
||||
xx = x1;
|
||||
yy = y1;
|
||||
}
|
||||
else if (param > 1) {
|
||||
xx = x2;
|
||||
yy = y2;
|
||||
}
|
||||
else {
|
||||
xx = x1 + param * C;
|
||||
yy = y1 + param * D;
|
||||
}
|
||||
|
||||
var dx = x - xx;
|
||||
var dy = y - yy;
|
||||
return Math.sqrt(dx * dx + dy * dy);
|
||||
}
|
||||
exports.pDistance = pDistance;
|
||||
|
||||
|
||||
function cross_z_pos(x, y, x1, y1, x2, y2) {
|
||||
var A = x - x1;
|
||||
var B = y - y1;
|
||||
var C = x2 - x1;
|
||||
var D = y2 - y1;
|
||||
|
||||
return math.cross([A, B, 0], [C, D, 0])[2] > 0;
|
||||
}
|
||||
exports.cross_z_pos = cross_z_pos;
|
||||
|
||||
function intersection (x1, y1, x2, y2, x3, y3, x4, y4) {
|
||||
//Find the point where lines through x1, y1, x2, y2 and x3, y3, x4, y4 intersect.
|
||||
//
|
||||
|
||||
var Aslope;
|
||||
var Aintercept;
|
||||
var Bslope;
|
||||
var Bintercept;
|
||||
|
||||
if ((x2 - x1) !== 0 && (x4 - x3) !== 0) {
|
||||
Aslope = (y2 - y1)/(x2 - x1);
|
||||
Aintercept = y1 - Aslope * x1;
|
||||
|
||||
Bslope = (y4 - y3)/(x4 - x3);
|
||||
Bintercept = y3 - Bslope * x3;
|
||||
|
||||
var xi = (Bintercept - Aintercept) / (Aslope - Bslope);
|
||||
var yi = Bslope * xi + Bintercept;
|
||||
return {x: xi, y: yi};
|
||||
}
|
||||
if ((x2 - x1) === 0 && (x4 - x3) === 0) {
|
||||
return {x: null, y: null};
|
||||
}
|
||||
if ((x2 - x1) === 0) {
|
||||
Bslope = (y4 - y3)/(x4 - x3);
|
||||
Bintercept = y3 - Bslope * x3;
|
||||
return {x: x1, y: Bslope * x1 + Bintercept};
|
||||
}
|
||||
if ((x4 - x3) === 0) {
|
||||
Aslope = (y2 - y1)/(x2 - x1);
|
||||
Aintercept = y1 - Aslope * x1;
|
||||
return {x: x3, y: Aslope * x3 + Aintercept};
|
||||
}
|
||||
}
|
||||
exports.intersection = intersection;
|
||||
|
||||
|
||||
function pCase(x, y, x1, y1, x2, y2) {
|
||||
//Code from http://stackoverflow.com/questions/849211/shortest-distance-between-a-point-and-a-line-segment
|
||||
//Joshua
|
||||
// Find the dot product of two vectors <A, B>, <C, D>
|
||||
// Divide by the length squared of <C, D>
|
||||
// Use scalar project to find param
|
||||
//
|
||||
|
||||
var A = x - x1;
|
||||
var B = y - y1;
|
||||
var C = x2 - x1;
|
||||
var D = y2 - y1;
|
||||
|
||||
var dot = A * C + B * D;
|
||||
var len_sq = C * C + D * D;
|
||||
var param = -1;
|
||||
if (len_sq !== 0) {
|
||||
//in case of 0 length line
|
||||
param = dot / len_sq;
|
||||
}
|
||||
|
||||
return param;
|
||||
}
|
||||
exports.pCase = pCase;
|
||||
190
awx/network_ui/static/network_ui/src/view.js
Normal file
190
awx/network_ui/static/network_ui/src/view.js
Normal file
@ -0,0 +1,190 @@
|
||||
var inherits = require('inherits');
|
||||
var fsm = require('./fsm.js');
|
||||
|
||||
function _State () {
|
||||
}
|
||||
inherits(_State, fsm._State);
|
||||
|
||||
function _Ready () {
|
||||
this.name = 'Ready';
|
||||
}
|
||||
inherits(_Ready, _State);
|
||||
var Ready = new _Ready();
|
||||
exports.Ready = Ready;
|
||||
|
||||
function _Start () {
|
||||
this.name = 'Start';
|
||||
}
|
||||
inherits(_Start, _State);
|
||||
var Start = new _Start();
|
||||
exports.Start = Start;
|
||||
|
||||
function _Scale () {
|
||||
this.name = 'Scale';
|
||||
}
|
||||
inherits(_Scale, _State);
|
||||
var Scale = new _Scale();
|
||||
exports.Scale = Scale;
|
||||
|
||||
function _Pressed () {
|
||||
this.name = 'Pressed';
|
||||
}
|
||||
inherits(_Pressed, _State);
|
||||
var Pressed = new _Pressed();
|
||||
exports.Pressed = Pressed;
|
||||
|
||||
function _Pan () {
|
||||
this.name = 'Pan';
|
||||
}
|
||||
inherits(_Pan, _State);
|
||||
var Pan = new _Pan();
|
||||
exports.Pan = Pan;
|
||||
|
||||
|
||||
|
||||
|
||||
_Ready.prototype.onMouseDown = function (controller) {
|
||||
|
||||
controller.scope.pressedX = controller.scope.mouseX;
|
||||
controller.scope.pressedY = controller.scope.mouseY;
|
||||
controller.scope.lastPanX = controller.scope.panX;
|
||||
controller.scope.lastPanY = controller.scope.panY;
|
||||
controller.changeState(Pressed);
|
||||
|
||||
};
|
||||
|
||||
_Ready.prototype.onTouchStart = function (controller, msg_type, event) {
|
||||
|
||||
if (event.touches.length === 2) {
|
||||
|
||||
controller.scope.lastPanX = controller.scope.panX;
|
||||
controller.scope.lastPanY = controller.scope.panY;
|
||||
controller.scope.lastScale = controller.scope.current_scale;
|
||||
|
||||
var x1 = event.touches[0].screenX;
|
||||
var y1 = event.touches[0].screenY;
|
||||
var x2 = event.touches[1].screenX;
|
||||
var y2 = event.touches[1].screenY;
|
||||
var d = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
|
||||
var xb = (x2 + x1) / 2;
|
||||
var yb = (y2 + y1) / 2;
|
||||
|
||||
controller.scope.touch_data = {x1: x1,
|
||||
y1: y1,
|
||||
x2: x2,
|
||||
y2: y2,
|
||||
d: d,
|
||||
xb: xb,
|
||||
yb: yb};
|
||||
controller.changeState(Pressed);
|
||||
}
|
||||
};
|
||||
|
||||
_Ready.prototype.onMouseWheel = function (controller, msg_type, $event) {
|
||||
|
||||
controller.changeState(Scale);
|
||||
controller.handle_message(msg_type, $event);
|
||||
};
|
||||
|
||||
_Ready.prototype.onKeyDown = function(controller, msg_type, $event) {
|
||||
|
||||
var scope = controller.scope;
|
||||
|
||||
if ($event.key === 'd') {
|
||||
scope.debug.hidden = !scope.debug.hidden;
|
||||
return;
|
||||
}
|
||||
if ($event.key === 'p') {
|
||||
scope.cursor.hidden = !scope.cursor.hidden;
|
||||
return;
|
||||
}
|
||||
if ($event.key === 'b') {
|
||||
scope.hide_buttons = !scope.hide_buttons;
|
||||
return;
|
||||
}
|
||||
if ($event.key === 'i') {
|
||||
scope.hide_interfaces = !scope.hide_interfaces;
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
_Start.prototype.start = function (controller) {
|
||||
|
||||
controller.changeState(Ready);
|
||||
|
||||
};
|
||||
|
||||
_Scale.prototype.onMouseWheel = function (controller, msg_type, message) {
|
||||
var delta = message[1];
|
||||
var new_scale = Math.max(0.1, Math.min(10, (controller.scope.current_scale + delta / 100)));
|
||||
var new_panX = controller.scope.mouseX - new_scale * ((controller.scope.mouseX - controller.scope.panX) / controller.scope.current_scale);
|
||||
var new_panY = controller.scope.mouseY - new_scale * ((controller.scope.mouseY - controller.scope.panY) / controller.scope.current_scale);
|
||||
controller.scope.updateScaledXY();
|
||||
controller.scope.current_scale = new_scale;
|
||||
controller.scope.panX = new_panX;
|
||||
controller.scope.panY = new_panY;
|
||||
controller.scope.updatePanAndScale();
|
||||
controller.changeState(Ready);
|
||||
};
|
||||
|
||||
|
||||
_Pressed.prototype.onMouseUp = function (controller) {
|
||||
|
||||
controller.changeState(Ready);
|
||||
|
||||
};
|
||||
|
||||
_Pressed.prototype.onTouchEnd = _Pressed.prototype.onMouseUp;
|
||||
|
||||
_Pressed.prototype.onMouseMove = function (controller, msg_type, $event) {
|
||||
|
||||
controller.changeState(Pan);
|
||||
controller.handle_message(msg_type, $event);
|
||||
};
|
||||
|
||||
_Pressed.prototype.onTouchMove = _Pressed.prototype.onMouseMove;
|
||||
|
||||
_Pan.prototype.onMouseMove = function (controller) {
|
||||
|
||||
controller.scope.panX = (controller.scope.mouseX - controller.scope.pressedX) + controller.scope.lastPanX;
|
||||
controller.scope.panY = (controller.scope.mouseY - controller.scope.pressedY) + controller.scope.lastPanY;
|
||||
controller.scope.updateScaledXY();
|
||||
controller.scope.updatePanAndScale();
|
||||
};
|
||||
|
||||
_Pan.prototype.onTouchMove = function (controller, msg_type, event) {
|
||||
|
||||
|
||||
if (event.touches.length === 2) {
|
||||
var x1 = event.touches[0].screenX;
|
||||
var y1 = event.touches[0].screenY;
|
||||
var x2 = event.touches[1].screenX;
|
||||
var y2 = event.touches[1].screenY;
|
||||
var d = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
|
||||
var xb = (x2 + x1) / 2;
|
||||
var yb = (y2 + y1) / 2;
|
||||
var delta = d - controller.scope.touch_data.d;
|
||||
|
||||
controller.scope.panX = (xb - controller.scope.touch_data.xb) + controller.scope.lastPanX;
|
||||
controller.scope.panY = (yb - controller.scope.touch_data.yb) + controller.scope.lastPanY;
|
||||
controller.scope.updateScaledXY();
|
||||
|
||||
var new_scale = Math.max(0.1, Math.min(10, (controller.scope.lastScale + delta / 100)));
|
||||
var new_panX = xb - new_scale * ((xb - controller.scope.panX) / controller.scope.lastScale);
|
||||
var new_panY = yb - new_scale * ((yb - controller.scope.panY) / controller.scope.lastScale);
|
||||
controller.scope.current_scale = new_scale;
|
||||
controller.scope.panX = new_panX;
|
||||
controller.scope.panY = new_panY;
|
||||
controller.scope.updatePanAndScale();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
_Pan.prototype.onMouseUp = function (controller) {
|
||||
|
||||
controller.changeState(Ready);
|
||||
|
||||
};
|
||||
|
||||
_Pan.prototype.onTouchEnd = _Pan.prototype.onMouseUp;
|
||||
26
awx/network_ui/static/network_ui/templates/fsm.jst
Normal file
26
awx/network_ui/static/network_ui/templates/fsm.jst
Normal file
@ -0,0 +1,26 @@
|
||||
var inherits = require('inherits');
|
||||
var fsm = require('./fsm.js');
|
||||
|
||||
function _State () {
|
||||
}
|
||||
inherits(_State, fsm._State);
|
||||
|
||||
{%for state, functions in states%}
|
||||
function _{{state}} () {
|
||||
this.name = '{{state}}';
|
||||
}
|
||||
inherits(_{{state}}, _State);
|
||||
var {{state}} = new _{{state}}();
|
||||
exports.{{state}} = {{state}};
|
||||
{%endfor%}
|
||||
|
||||
{%for state, functions in states%}
|
||||
{%for fn, transitions in functions%}
|
||||
_{{state}}.prototype.{{fn}} = function (controller) {
|
||||
{%for tn in transitions %}
|
||||
controller.changeState({{tn.to_state}});
|
||||
{%endfor%}
|
||||
};
|
||||
_{{state}}.prototype.{{fn}}.transitions = [{%for t in transitions%}'{{t.to_state}}'{% if not loop.last%}, {%endif%}{%endfor%}];
|
||||
{%endfor%}
|
||||
{%endfor%}
|
||||
33134
awx/network_ui/static/network_ui/vendor/angular.js
vendored
Normal file
33134
awx/network_ui/static/network_ui/vendor/angular.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
327
awx/network_ui/static/network_ui/vendor/hamster.js
vendored
Normal file
327
awx/network_ui/static/network_ui/vendor/hamster.js
vendored
Normal file
@ -0,0 +1,327 @@
|
||||
/*
|
||||
* Hamster.js v1.1.2
|
||||
* (c) 2013 Monospaced http://monospaced.com
|
||||
* License: MIT
|
||||
*/
|
||||
|
||||
(function(window, document){
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Hamster
|
||||
* use this to create instances
|
||||
* @returns {Hamster.Instance}
|
||||
* @constructor
|
||||
*/
|
||||
var Hamster = function(element) {
|
||||
return new Hamster.Instance(element);
|
||||
};
|
||||
|
||||
// default event name
|
||||
Hamster.SUPPORT = 'wheel';
|
||||
|
||||
// default DOM methods
|
||||
Hamster.ADD_EVENT = 'addEventListener';
|
||||
Hamster.REMOVE_EVENT = 'removeEventListener';
|
||||
Hamster.PREFIX = '';
|
||||
|
||||
// until browser inconsistencies have been fixed...
|
||||
Hamster.READY = false;
|
||||
|
||||
Hamster.Instance = function(element){
|
||||
if (!Hamster.READY) {
|
||||
// fix browser inconsistencies
|
||||
Hamster.normalise.browser();
|
||||
|
||||
// Hamster is ready...!
|
||||
Hamster.READY = true;
|
||||
}
|
||||
|
||||
this.element = element;
|
||||
|
||||
// store attached event handlers
|
||||
this.handlers = [];
|
||||
|
||||
// return instance
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* create new hamster instance
|
||||
* all methods should return the instance itself, so it is chainable.
|
||||
* @param {HTMLElement} element
|
||||
* @returns {Hamster.Instance}
|
||||
* @constructor
|
||||
*/
|
||||
Hamster.Instance.prototype = {
|
||||
/**
|
||||
* bind events to the instance
|
||||
* @param {Function} handler
|
||||
* @param {Boolean} useCapture
|
||||
* @returns {Hamster.Instance}
|
||||
*/
|
||||
wheel: function onEvent(handler, useCapture){
|
||||
Hamster.event.add(this, Hamster.SUPPORT, handler, useCapture);
|
||||
|
||||
// handle MozMousePixelScroll in older Firefox
|
||||
if (Hamster.SUPPORT === 'DOMMouseScroll') {
|
||||
Hamster.event.add(this, 'MozMousePixelScroll', handler, useCapture);
|
||||
}
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* unbind events to the instance
|
||||
* @param {Function} handler
|
||||
* @param {Boolean} useCapture
|
||||
* @returns {Hamster.Instance}
|
||||
*/
|
||||
unwheel: function offEvent(handler, useCapture){
|
||||
// if no handler argument,
|
||||
// unbind the last bound handler (if exists)
|
||||
if (handler === undefined && (handler = this.handlers.slice(-1)[0])) {
|
||||
handler = handler.original;
|
||||
}
|
||||
|
||||
Hamster.event.remove(this, Hamster.SUPPORT, handler, useCapture);
|
||||
|
||||
// handle MozMousePixelScroll in older Firefox
|
||||
if (Hamster.SUPPORT === 'DOMMouseScroll') {
|
||||
Hamster.event.remove(this, 'MozMousePixelScroll', handler, useCapture);
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
};
|
||||
|
||||
Hamster.event = {
|
||||
/**
|
||||
* cross-browser 'addWheelListener'
|
||||
* @param {Instance} hamster
|
||||
* @param {String} eventName
|
||||
* @param {Function} handler
|
||||
* @param {Boolean} useCapture
|
||||
*/
|
||||
add: function add(hamster, eventName, handler, useCapture){
|
||||
// store the original handler
|
||||
var originalHandler = handler;
|
||||
|
||||
// redefine the handler
|
||||
handler = function(originalEvent){
|
||||
|
||||
if (!originalEvent) {
|
||||
originalEvent = window.event;
|
||||
}
|
||||
|
||||
// create a normalised event object,
|
||||
// and normalise "deltas" of the mouse wheel
|
||||
var event = Hamster.normalise.event(originalEvent),
|
||||
delta = Hamster.normalise.delta(originalEvent);
|
||||
|
||||
// fire the original handler with normalised arguments
|
||||
return originalHandler(event, delta[0], delta[1], delta[2]);
|
||||
|
||||
};
|
||||
|
||||
// cross-browser addEventListener
|
||||
hamster.element[Hamster.ADD_EVENT](Hamster.PREFIX + eventName, handler, useCapture || false);
|
||||
|
||||
// store original and normalised handlers on the instance
|
||||
hamster.handlers.push({
|
||||
original: originalHandler,
|
||||
normalised: handler
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* removeWheelListener
|
||||
* @param {Instance} hamster
|
||||
* @param {String} eventName
|
||||
* @param {Function} handler
|
||||
* @param {Boolean} useCapture
|
||||
*/
|
||||
remove: function remove(hamster, eventName, handler, useCapture){
|
||||
// find the normalised handler on the instance
|
||||
var originalHandler = handler,
|
||||
lookup = {},
|
||||
handlers;
|
||||
for (var i = 0, len = hamster.handlers.length; i < len; ++i) {
|
||||
lookup[hamster.handlers[i].original] = hamster.handlers[i];
|
||||
}
|
||||
handlers = lookup[originalHandler];
|
||||
handler = handlers.normalised;
|
||||
|
||||
// cross-browser removeEventListener
|
||||
hamster.element[Hamster.REMOVE_EVENT](Hamster.PREFIX + eventName, handler, useCapture || false);
|
||||
|
||||
// remove original and normalised handlers from the instance
|
||||
for (var h in hamster.handlers) {
|
||||
if (hamster.handlers[h] === handlers) {
|
||||
hamster.handlers.splice(h, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* these hold the lowest deltas,
|
||||
* used to normalise the delta values
|
||||
* @type {Number}
|
||||
*/
|
||||
var lowestDelta,
|
||||
lowestDeltaXY;
|
||||
|
||||
Hamster.normalise = {
|
||||
/**
|
||||
* fix browser inconsistencies
|
||||
*/
|
||||
browser: function normaliseBrowser(){
|
||||
// detect deprecated wheel events
|
||||
if (!('onwheel' in document || document.documentMode >= 9)) {
|
||||
Hamster.SUPPORT = document.onmousewheel !== undefined ?
|
||||
'mousewheel' : // webkit and IE < 9 support at least "mousewheel"
|
||||
'DOMMouseScroll'; // assume remaining browsers are older Firefox
|
||||
}
|
||||
|
||||
// detect deprecated event model
|
||||
if (!window.addEventListener) {
|
||||
// assume IE < 9
|
||||
Hamster.ADD_EVENT = 'attachEvent';
|
||||
Hamster.REMOVE_EVENT = 'detachEvent';
|
||||
Hamster.PREFIX = 'on';
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* create a normalised event object
|
||||
* @param {Function} originalEvent
|
||||
* @returns {Object} event
|
||||
*/
|
||||
event: function normaliseEvent(originalEvent){
|
||||
var event = {
|
||||
// keep a reference to the original event object
|
||||
originalEvent: originalEvent,
|
||||
target: originalEvent.target || originalEvent.srcElement,
|
||||
type: 'wheel',
|
||||
deltaMode: originalEvent.type === 'MozMousePixelScroll' ? 0 : 1,
|
||||
deltaX: 0,
|
||||
delatZ: 0,
|
||||
preventDefault: function(){
|
||||
if (originalEvent.preventDefault) {
|
||||
originalEvent.preventDefault();
|
||||
} else {
|
||||
originalEvent.returnValue = false;
|
||||
}
|
||||
},
|
||||
stopPropagation: function(){
|
||||
if (originalEvent.stopPropagation) {
|
||||
originalEvent.stopPropagation();
|
||||
} else {
|
||||
originalEvent.cancelBubble = false;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// calculate deltaY (and deltaX) according to the event
|
||||
|
||||
// 'mousewheel'
|
||||
if (originalEvent.wheelDelta) {
|
||||
event.deltaY = - 1/40 * originalEvent.wheelDelta;
|
||||
}
|
||||
// webkit
|
||||
if (originalEvent.wheelDeltaX) {
|
||||
event.deltaX = - 1/40 * originalEvent.wheelDeltaX;
|
||||
}
|
||||
|
||||
// 'DomMouseScroll'
|
||||
if (originalEvent.detail) {
|
||||
event.deltaY = originalEvent.detail;
|
||||
}
|
||||
|
||||
return event;
|
||||
},
|
||||
|
||||
/**
|
||||
* normalise 'deltas' of the mouse wheel
|
||||
* @param {Function} originalEvent
|
||||
* @returns {Array} deltas
|
||||
*/
|
||||
delta: function normaliseDelta(originalEvent){
|
||||
var delta = 0,
|
||||
deltaX = 0,
|
||||
deltaY = 0,
|
||||
absDelta = 0,
|
||||
absDeltaXY = 0,
|
||||
fn;
|
||||
|
||||
// normalise deltas according to the event
|
||||
|
||||
// 'wheel' event
|
||||
if (originalEvent.deltaY) {
|
||||
deltaY = originalEvent.deltaY * -1;
|
||||
delta = deltaY;
|
||||
}
|
||||
if (originalEvent.deltaX) {
|
||||
deltaX = originalEvent.deltaX;
|
||||
delta = deltaX * -1;
|
||||
}
|
||||
|
||||
// 'mousewheel' event
|
||||
if (originalEvent.wheelDelta) {
|
||||
delta = originalEvent.wheelDelta;
|
||||
}
|
||||
// webkit
|
||||
if (originalEvent.wheelDeltaY) {
|
||||
deltaY = originalEvent.wheelDeltaY;
|
||||
}
|
||||
if (originalEvent.wheelDeltaX) {
|
||||
deltaX = originalEvent.wheelDeltaX * -1;
|
||||
}
|
||||
|
||||
// 'DomMouseScroll' event
|
||||
if (originalEvent.detail) {
|
||||
delta = originalEvent.detail * -1;
|
||||
}
|
||||
|
||||
// Don't return NaN
|
||||
if (delta === 0) {
|
||||
return [0, 0, 0];
|
||||
}
|
||||
|
||||
// look for lowest delta to normalize the delta values
|
||||
absDelta = Math.abs(delta);
|
||||
if (!lowestDelta || absDelta < lowestDelta) {
|
||||
lowestDelta = absDelta;
|
||||
}
|
||||
absDeltaXY = Math.max(Math.abs(deltaY), Math.abs(deltaX));
|
||||
if (!lowestDeltaXY || absDeltaXY < lowestDeltaXY) {
|
||||
lowestDeltaXY = absDeltaXY;
|
||||
}
|
||||
|
||||
// convert deltas to whole numbers
|
||||
fn = delta > 0 ? 'floor' : 'ceil';
|
||||
delta = Math[fn](delta / lowestDelta);
|
||||
deltaX = Math[fn](deltaX / lowestDeltaXY);
|
||||
deltaY = Math[fn](deltaY / lowestDeltaXY);
|
||||
|
||||
return [delta, deltaX, deltaY];
|
||||
}
|
||||
};
|
||||
|
||||
if (typeof window.define === 'function' && window.define.amd) {
|
||||
// AMD
|
||||
window.define('hamster', [], function(){
|
||||
return Hamster;
|
||||
});
|
||||
} else if (typeof exports === 'object') {
|
||||
// CommonJS
|
||||
module.exports = Hamster;
|
||||
} else {
|
||||
// Browser global
|
||||
window.Hamster = Hamster;
|
||||
}
|
||||
|
||||
})(window, window.document);
|
||||
52
awx/network_ui/static/network_ui/vendor/mousewheel.js
vendored
Normal file
52
awx/network_ui/static/network_ui/vendor/mousewheel.js
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
/*
|
||||
* angular-mousewheel v1.0.5
|
||||
* (c) 2013 Monospaced http://monospaced.com
|
||||
* License: MIT
|
||||
*/
|
||||
|
||||
angular.module('monospaced.mousewheel', [])
|
||||
.directive('msdWheel', ['$parse', function($parse){
|
||||
return {
|
||||
restrict: 'A, C',
|
||||
link: function(scope, element, attr) {
|
||||
var expr = $parse(attr['msdWheel']),
|
||||
fn = function(event, delta, deltaX, deltaY){
|
||||
scope.$apply(function(){
|
||||
expr(scope, {
|
||||
$event: event,
|
||||
$delta: delta,
|
||||
$deltaX: deltaX,
|
||||
$deltaY: deltaY
|
||||
});
|
||||
});
|
||||
},
|
||||
hamster;
|
||||
|
||||
if (typeof Hamster === 'undefined') {
|
||||
// fallback to standard wheel event
|
||||
element.bind('wheel', function(event){
|
||||
scope.$apply(function() {
|
||||
expr(scope, {
|
||||
$event: event
|
||||
});
|
||||
});
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// don't create multiple Hamster instances per element
|
||||
if (!(hamster = element.data('hamster'))) {
|
||||
hamster = Hamster(element[0]);
|
||||
element.data('hamster', hamster);
|
||||
}
|
||||
|
||||
// bind Hamster wheel event
|
||||
hamster.wheel(fn);
|
||||
|
||||
// unbind Hamster wheel event
|
||||
scope.$on('$destroy', function(){
|
||||
hamster.unwheel(fn);
|
||||
});
|
||||
}
|
||||
};
|
||||
}]);
|
||||
87
awx/network_ui/static/network_ui/vendor/ngTouch.js
vendored
Normal file
87
awx/network_ui/static/network_ui/vendor/ngTouch.js
vendored
Normal file
@ -0,0 +1,87 @@
|
||||
/*
|
||||
* ngTouch.js v1.0.2
|
||||
* (c) 2015 Mark Topper
|
||||
* License: MIT
|
||||
*/
|
||||
|
||||
"use strict";
|
||||
|
||||
|
||||
angular.module("ngTouch", [])
|
||||
.directive("ngTouchstart", function () {
|
||||
return {
|
||||
controller: ["$scope", "$element", function ($scope, $element) {
|
||||
|
||||
$element.bind("touchstart", onTouchStart);
|
||||
function onTouchStart(event) {
|
||||
var method = $element.attr("ng-touchstart");
|
||||
$scope.$event = event;
|
||||
$scope.$apply(method);
|
||||
}
|
||||
|
||||
}]
|
||||
}
|
||||
})
|
||||
.directive("ngTouchmove", function () {
|
||||
return {
|
||||
controller: ["$scope", "$element", function ($scope, $element) {
|
||||
|
||||
$element.bind("touchstart", onTouchStart);
|
||||
function onTouchStart(event) {
|
||||
event.preventDefault();
|
||||
$element.bind("touchmove", onTouchMove);
|
||||
$element.bind("touchend", onTouchEnd);
|
||||
}
|
||||
function onTouchMove(event) {
|
||||
var method = $element.attr("ng-touchmove");
|
||||
$scope.$event = event;
|
||||
$scope.$apply(method);
|
||||
}
|
||||
function onTouchEnd(event) {
|
||||
event.preventDefault();
|
||||
$element.unbind("touchmove", onTouchMove);
|
||||
$element.unbind("touchend", onTouchEnd);
|
||||
}
|
||||
|
||||
}]
|
||||
}
|
||||
})
|
||||
.directive("ngTouchend", function () {
|
||||
return {
|
||||
controller: ["$scope", "$element", function ($scope, $element) {
|
||||
|
||||
$element.bind("touchend", onTouchEnd);
|
||||
function onTouchEnd(event) {
|
||||
var method = $element.attr("ng-touchend");
|
||||
$scope.$event = event;
|
||||
$scope.$apply(method);
|
||||
}
|
||||
|
||||
}]
|
||||
}
|
||||
})
|
||||
.directive("ngTap", function () {
|
||||
return {
|
||||
controller: ["$scope", "$element", function ($scope, $element) {
|
||||
|
||||
var moved = false;
|
||||
$element.bind("touchstart", onTouchStart);
|
||||
function onTouchStart(event) {
|
||||
$element.bind("touchmove", onTouchMove);
|
||||
$element.bind("touchend", onTouchEnd);
|
||||
}
|
||||
function onTouchMove(event) {
|
||||
moved = true;
|
||||
}
|
||||
function onTouchEnd(event) {
|
||||
$element.unbind("touchmove", onTouchMove);
|
||||
$element.unbind("touchend", onTouchEnd);
|
||||
if (!moved) {
|
||||
var method = $element.attr("ng-tap");
|
||||
$scope.$apply(method);
|
||||
}
|
||||
}
|
||||
|
||||
}]
|
||||
}
|
||||
});
|
||||
365
awx/network_ui/static/network_ui/vendor/reconnecting-websocket.js
vendored
Normal file
365
awx/network_ui/static/network_ui/vendor/reconnecting-websocket.js
vendored
Normal file
@ -0,0 +1,365 @@
|
||||
// MIT License:
|
||||
//
|
||||
// Copyright (c) 2010-2012, Joe Walnes
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
/**
|
||||
* This behaves like a WebSocket in every way, except if it fails to connect,
|
||||
* or it gets disconnected, it will repeatedly poll until it successfully connects
|
||||
* again.
|
||||
*
|
||||
* It is API compatible, so when you have:
|
||||
* ws = new WebSocket('ws://....');
|
||||
* you can replace with:
|
||||
* ws = new ReconnectingWebSocket('ws://....');
|
||||
*
|
||||
* The event stream will typically look like:
|
||||
* onconnecting
|
||||
* onopen
|
||||
* onmessage
|
||||
* onmessage
|
||||
* onclose // lost connection
|
||||
* onconnecting
|
||||
* onopen // sometime later...
|
||||
* onmessage
|
||||
* onmessage
|
||||
* etc...
|
||||
*
|
||||
* It is API compatible with the standard WebSocket API, apart from the following members:
|
||||
*
|
||||
* - `bufferedAmount`
|
||||
* - `extensions`
|
||||
* - `binaryType`
|
||||
*
|
||||
* Latest version: https://github.com/joewalnes/reconnecting-websocket/
|
||||
* - Joe Walnes
|
||||
*
|
||||
* Syntax
|
||||
* ======
|
||||
* var socket = new ReconnectingWebSocket(url, protocols, options);
|
||||
*
|
||||
* Parameters
|
||||
* ==========
|
||||
* url - The url you are connecting to.
|
||||
* protocols - Optional string or array of protocols.
|
||||
* options - See below
|
||||
*
|
||||
* Options
|
||||
* =======
|
||||
* Options can either be passed upon instantiation or set after instantiation:
|
||||
*
|
||||
* var socket = new ReconnectingWebSocket(url, null, { debug: true, reconnectInterval: 4000 });
|
||||
*
|
||||
* or
|
||||
*
|
||||
* var socket = new ReconnectingWebSocket(url);
|
||||
* socket.debug = true;
|
||||
* socket.reconnectInterval = 4000;
|
||||
*
|
||||
* debug
|
||||
* - Whether this instance should log debug messages. Accepts true or false. Default: false.
|
||||
*
|
||||
* automaticOpen
|
||||
* - Whether or not the websocket should attempt to connect immediately upon instantiation. The socket can be manually opened or closed at any time using ws.open() and ws.close().
|
||||
*
|
||||
* reconnectInterval
|
||||
* - The number of milliseconds to delay before attempting to reconnect. Accepts integer. Default: 1000.
|
||||
*
|
||||
* maxReconnectInterval
|
||||
* - The maximum number of milliseconds to delay a reconnection attempt. Accepts integer. Default: 30000.
|
||||
*
|
||||
* reconnectDecay
|
||||
* - The rate of increase of the reconnect delay. Allows reconnect attempts to back off when problems persist. Accepts integer or float. Default: 1.5.
|
||||
*
|
||||
* timeoutInterval
|
||||
* - The maximum time in milliseconds to wait for a connection to succeed before closing and retrying. Accepts integer. Default: 2000.
|
||||
*
|
||||
*/
|
||||
(function (global, factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
define([], factory);
|
||||
} else if (typeof module !== 'undefined' && module.exports){
|
||||
module.exports = factory();
|
||||
} else {
|
||||
global.ReconnectingWebSocket = factory();
|
||||
}
|
||||
})(this, function () {
|
||||
|
||||
if (!('WebSocket' in window)) {
|
||||
return;
|
||||
}
|
||||
|
||||
function ReconnectingWebSocket(url, protocols, options) {
|
||||
|
||||
// Default settings
|
||||
var settings = {
|
||||
|
||||
/** Whether this instance should log debug messages. */
|
||||
debug: false,
|
||||
|
||||
/** Whether or not the websocket should attempt to connect immediately upon instantiation. */
|
||||
automaticOpen: true,
|
||||
|
||||
/** The number of milliseconds to delay before attempting to reconnect. */
|
||||
reconnectInterval: 1000,
|
||||
/** The maximum number of milliseconds to delay a reconnection attempt. */
|
||||
maxReconnectInterval: 30000,
|
||||
/** The rate of increase of the reconnect delay. Allows reconnect attempts to back off when problems persist. */
|
||||
reconnectDecay: 1.5,
|
||||
|
||||
/** The maximum time in milliseconds to wait for a connection to succeed before closing and retrying. */
|
||||
timeoutInterval: 2000,
|
||||
|
||||
/** The maximum number of reconnection attempts to make. Unlimited if null. */
|
||||
maxReconnectAttempts: null,
|
||||
|
||||
/** The binary type, possible values 'blob' or 'arraybuffer', default 'blob'. */
|
||||
binaryType: 'blob'
|
||||
}
|
||||
if (!options) { options = {}; }
|
||||
|
||||
// Overwrite and define settings with options if they exist.
|
||||
for (var key in settings) {
|
||||
if (typeof options[key] !== 'undefined') {
|
||||
this[key] = options[key];
|
||||
} else {
|
||||
this[key] = settings[key];
|
||||
}
|
||||
}
|
||||
|
||||
// These should be treated as read-only properties
|
||||
|
||||
/** The URL as resolved by the constructor. This is always an absolute URL. Read only. */
|
||||
this.url = url;
|
||||
|
||||
/** The number of attempted reconnects since starting, or the last successful connection. Read only. */
|
||||
this.reconnectAttempts = 0;
|
||||
|
||||
/**
|
||||
* The current state of the connection.
|
||||
* Can be one of: WebSocket.CONNECTING, WebSocket.OPEN, WebSocket.CLOSING, WebSocket.CLOSED
|
||||
* Read only.
|
||||
*/
|
||||
this.readyState = WebSocket.CONNECTING;
|
||||
|
||||
/**
|
||||
* A string indicating the name of the sub-protocol the server selected; this will be one of
|
||||
* the strings specified in the protocols parameter when creating the WebSocket object.
|
||||
* Read only.
|
||||
*/
|
||||
this.protocol = null;
|
||||
|
||||
// Private state variables
|
||||
|
||||
var self = this;
|
||||
var ws;
|
||||
var forcedClose = false;
|
||||
var timedOut = false;
|
||||
var eventTarget = document.createElement('div');
|
||||
|
||||
// Wire up "on*" properties as event handlers
|
||||
|
||||
eventTarget.addEventListener('open', function(event) { self.onopen(event); });
|
||||
eventTarget.addEventListener('close', function(event) { self.onclose(event); });
|
||||
eventTarget.addEventListener('connecting', function(event) { self.onconnecting(event); });
|
||||
eventTarget.addEventListener('message', function(event) { self.onmessage(event); });
|
||||
eventTarget.addEventListener('error', function(event) { self.onerror(event); });
|
||||
|
||||
// Expose the API required by EventTarget
|
||||
|
||||
this.addEventListener = eventTarget.addEventListener.bind(eventTarget);
|
||||
this.removeEventListener = eventTarget.removeEventListener.bind(eventTarget);
|
||||
this.dispatchEvent = eventTarget.dispatchEvent.bind(eventTarget);
|
||||
|
||||
/**
|
||||
* This function generates an event that is compatible with standard
|
||||
* compliant browsers and IE9 - IE11
|
||||
*
|
||||
* This will prevent the error:
|
||||
* Object doesn't support this action
|
||||
*
|
||||
* http://stackoverflow.com/questions/19345392/why-arent-my-parameters-getting-passed-through-to-a-dispatched-event/19345563#19345563
|
||||
* @param s String The name that the event should use
|
||||
* @param args Object an optional object that the event will use
|
||||
*/
|
||||
function generateEvent(s, args) {
|
||||
var evt = document.createEvent("CustomEvent");
|
||||
evt.initCustomEvent(s, false, false, args);
|
||||
return evt;
|
||||
};
|
||||
|
||||
this.open = function (reconnectAttempt) {
|
||||
ws = new WebSocket(self.url, protocols || []);
|
||||
ws.binaryType = this.binaryType;
|
||||
|
||||
if (reconnectAttempt) {
|
||||
if (this.maxReconnectAttempts && this.reconnectAttempts > this.maxReconnectAttempts) {
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
eventTarget.dispatchEvent(generateEvent('connecting'));
|
||||
this.reconnectAttempts = 0;
|
||||
}
|
||||
|
||||
if (self.debug || ReconnectingWebSocket.debugAll) {
|
||||
console.debug('ReconnectingWebSocket', 'attempt-connect', self.url);
|
||||
}
|
||||
|
||||
var localWs = ws;
|
||||
var timeout = setTimeout(function() {
|
||||
if (self.debug || ReconnectingWebSocket.debugAll) {
|
||||
console.debug('ReconnectingWebSocket', 'connection-timeout', self.url);
|
||||
}
|
||||
timedOut = true;
|
||||
localWs.close();
|
||||
timedOut = false;
|
||||
}, self.timeoutInterval);
|
||||
|
||||
ws.onopen = function(event) {
|
||||
clearTimeout(timeout);
|
||||
if (self.debug || ReconnectingWebSocket.debugAll) {
|
||||
console.debug('ReconnectingWebSocket', 'onopen', self.url);
|
||||
}
|
||||
self.protocol = ws.protocol;
|
||||
self.readyState = WebSocket.OPEN;
|
||||
self.reconnectAttempts = 0;
|
||||
var e = generateEvent('open');
|
||||
e.isReconnect = reconnectAttempt;
|
||||
reconnectAttempt = false;
|
||||
eventTarget.dispatchEvent(e);
|
||||
};
|
||||
|
||||
ws.onclose = function(event) {
|
||||
clearTimeout(timeout);
|
||||
ws = null;
|
||||
if (forcedClose) {
|
||||
self.readyState = WebSocket.CLOSED;
|
||||
eventTarget.dispatchEvent(generateEvent('close'));
|
||||
} else {
|
||||
self.readyState = WebSocket.CONNECTING;
|
||||
var e = generateEvent('connecting');
|
||||
e.code = event.code;
|
||||
e.reason = event.reason;
|
||||
e.wasClean = event.wasClean;
|
||||
eventTarget.dispatchEvent(e);
|
||||
if (!reconnectAttempt && !timedOut) {
|
||||
if (self.debug || ReconnectingWebSocket.debugAll) {
|
||||
console.debug('ReconnectingWebSocket', 'onclose', self.url);
|
||||
}
|
||||
eventTarget.dispatchEvent(generateEvent('close'));
|
||||
}
|
||||
|
||||
var timeout = self.reconnectInterval * Math.pow(self.reconnectDecay, self.reconnectAttempts);
|
||||
setTimeout(function() {
|
||||
self.reconnectAttempts++;
|
||||
self.open(true);
|
||||
}, timeout > self.maxReconnectInterval ? self.maxReconnectInterval : timeout);
|
||||
}
|
||||
};
|
||||
ws.onmessage = function(event) {
|
||||
if (self.debug || ReconnectingWebSocket.debugAll) {
|
||||
console.debug('ReconnectingWebSocket', 'onmessage', self.url, event.data);
|
||||
}
|
||||
var e = generateEvent('message');
|
||||
e.data = event.data;
|
||||
eventTarget.dispatchEvent(e);
|
||||
};
|
||||
ws.onerror = function(event) {
|
||||
if (self.debug || ReconnectingWebSocket.debugAll) {
|
||||
console.debug('ReconnectingWebSocket', 'onerror', self.url, event);
|
||||
}
|
||||
eventTarget.dispatchEvent(generateEvent('error'));
|
||||
};
|
||||
}
|
||||
|
||||
// Whether or not to create a websocket upon instantiation
|
||||
if (this.automaticOpen == true) {
|
||||
this.open(false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Transmits data to the server over the WebSocket connection.
|
||||
*
|
||||
* @param data a text string, ArrayBuffer or Blob to send to the server.
|
||||
*/
|
||||
this.send = function(data) {
|
||||
if (ws) {
|
||||
if (self.debug || ReconnectingWebSocket.debugAll) {
|
||||
console.debug('ReconnectingWebSocket', 'send', self.url, data);
|
||||
}
|
||||
return ws.send(data);
|
||||
} else {
|
||||
throw 'INVALID_STATE_ERR : Pausing to reconnect websocket';
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Closes the WebSocket connection or connection attempt, if any.
|
||||
* If the connection is already CLOSED, this method does nothing.
|
||||
*/
|
||||
this.close = function(code, reason) {
|
||||
// Default CLOSE_NORMAL code
|
||||
if (typeof code == 'undefined') {
|
||||
code = 1000;
|
||||
}
|
||||
forcedClose = true;
|
||||
if (ws) {
|
||||
ws.close(code, reason);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Additional public API method to refresh the connection if still open (close, re-open).
|
||||
* For example, if the app suspects bad data / missed heart beats, it can try to refresh.
|
||||
*/
|
||||
this.refresh = function() {
|
||||
if (ws) {
|
||||
ws.close();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* An event listener to be called when the WebSocket connection's readyState changes to OPEN;
|
||||
* this indicates that the connection is ready to send and receive data.
|
||||
*/
|
||||
ReconnectingWebSocket.prototype.onopen = function(event) {};
|
||||
/** An event listener to be called when the WebSocket connection's readyState changes to CLOSED. */
|
||||
ReconnectingWebSocket.prototype.onclose = function(event) {};
|
||||
/** An event listener to be called when a connection begins being attempted. */
|
||||
ReconnectingWebSocket.prototype.onconnecting = function(event) {};
|
||||
/** An event listener to be called when a message is received from the server. */
|
||||
ReconnectingWebSocket.prototype.onmessage = function(event) {};
|
||||
/** An event listener to be called when an error occurs. */
|
||||
ReconnectingWebSocket.prototype.onerror = function(event) {};
|
||||
|
||||
/**
|
||||
* Whether all instances of ReconnectingWebSocket should log debug messages.
|
||||
* Setting this to true is the equivalent of setting all instances of ReconnectingWebSocket.debug to true.
|
||||
*/
|
||||
ReconnectingWebSocket.debugAll = false;
|
||||
|
||||
ReconnectingWebSocket.CONNECTING = WebSocket.CONNECTING;
|
||||
ReconnectingWebSocket.OPEN = WebSocket.OPEN;
|
||||
ReconnectingWebSocket.CLOSING = WebSocket.CLOSING;
|
||||
ReconnectingWebSocket.CLOSED = WebSocket.CLOSED;
|
||||
|
||||
return ReconnectingWebSocket;
|
||||
});
|
||||
250
awx/network_ui/static/network_ui/vendor/svg-crowbar.js
vendored
Normal file
250
awx/network_ui/static/network_ui/vendor/svg-crowbar.js
vendored
Normal file
@ -0,0 +1,250 @@
|
||||
/**
|
||||
* @license svg-crowbar
|
||||
* (c) 2013 The New York Times
|
||||
* License: MIT
|
||||
*/
|
||||
function svg_crowbar () {
|
||||
var doctype = '<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">';
|
||||
|
||||
window.URL = (window.URL || window.webkitURL);
|
||||
|
||||
var body = document.body;
|
||||
|
||||
var prefix = {
|
||||
xmlns: "http://www.w3.org/2000/xmlns/",
|
||||
xlink: "http://www.w3.org/1999/xlink",
|
||||
svg: "http://www.w3.org/2000/svg"
|
||||
}
|
||||
|
||||
initialize();
|
||||
|
||||
function initialize() {
|
||||
var documents = [window.document],
|
||||
SVGSources = [];
|
||||
iframes = document.querySelectorAll("iframe"),
|
||||
objects = document.querySelectorAll("object");
|
||||
|
||||
[].forEach.call(iframes, function(el) {
|
||||
try {
|
||||
if (el.contentDocument) {
|
||||
documents.push(el.contentDocument);
|
||||
}
|
||||
} catch(err) {
|
||||
console.log(err)
|
||||
}
|
||||
});
|
||||
|
||||
[].forEach.call(objects, function(el) {
|
||||
try {
|
||||
if (el.contentDocument) {
|
||||
documents.push(el.contentDocument);
|
||||
}
|
||||
} catch(err) {
|
||||
console.log(err)
|
||||
}
|
||||
});
|
||||
|
||||
documents.forEach(function(doc) {
|
||||
var styles = getStyles(doc);
|
||||
var newSources = getSources(doc, styles);
|
||||
// because of prototype on NYT pages
|
||||
for (var i = 0; i < newSources.length; i++) {
|
||||
SVGSources.push(newSources[i]);
|
||||
};
|
||||
})
|
||||
if (SVGSources.length > 1) {
|
||||
createPopover(SVGSources);
|
||||
} else if (SVGSources.length > 0) {
|
||||
download(SVGSources[0]);
|
||||
} else {
|
||||
alert("The Crowbar couldn’t find any SVG nodes.");
|
||||
}
|
||||
}
|
||||
|
||||
function createPopover(sources) {
|
||||
cleanup();
|
||||
|
||||
sources.forEach(function(s1) {
|
||||
sources.forEach(function(s2) {
|
||||
if (s1 !== s2) {
|
||||
if ((Math.abs(s1.top - s2.top) < 38) && (Math.abs(s1.left - s2.left) < 38)) {
|
||||
s2.top += 38;
|
||||
s2.left += 38;
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
var buttonsContainer = document.createElement("div");
|
||||
body.appendChild(buttonsContainer);
|
||||
|
||||
buttonsContainer.setAttribute("class", "svg-crowbar");
|
||||
buttonsContainer.style["z-index"] = 1e7;
|
||||
buttonsContainer.style["position"] = "absolute";
|
||||
buttonsContainer.style["top"] = 0;
|
||||
buttonsContainer.style["left"] = 0;
|
||||
|
||||
|
||||
|
||||
var background = document.createElement("div");
|
||||
body.appendChild(background);
|
||||
|
||||
background.setAttribute("class", "svg-crowbar");
|
||||
background.style["background"] = "rgba(255, 255, 255, 0.7)";
|
||||
background.style["position"] = "fixed";
|
||||
background.style["left"] = 0;
|
||||
background.style["top"] = 0;
|
||||
background.style["width"] = "100%";
|
||||
background.style["height"] = "100%";
|
||||
|
||||
sources.forEach(function(d, i) {
|
||||
var buttonWrapper = document.createElement("div");
|
||||
buttonsContainer.appendChild(buttonWrapper);
|
||||
buttonWrapper.setAttribute("class", "svg-crowbar");
|
||||
buttonWrapper.style["position"] = "absolute";
|
||||
buttonWrapper.style["top"] = (d.top + document.body.scrollTop) + "px";
|
||||
buttonWrapper.style["left"] = (document.body.scrollLeft + d.left) + "px";
|
||||
buttonWrapper.style["padding"] = "4px";
|
||||
buttonWrapper.style["border-radius"] = "3px";
|
||||
buttonWrapper.style["color"] = "white";
|
||||
buttonWrapper.style["text-align"] = "center";
|
||||
buttonWrapper.style["font-family"] = "'Helvetica Neue'";
|
||||
buttonWrapper.style["background"] = "rgba(0, 0, 0, 0.8)";
|
||||
buttonWrapper.style["box-shadow"] = "0px 4px 18px rgba(0, 0, 0, 0.4)";
|
||||
buttonWrapper.style["cursor"] = "move";
|
||||
buttonWrapper.textContent = "SVG #" + i + ": " + (d.id ? "#" + d.id : "") + (d.class ? "." + d.class : "");
|
||||
|
||||
var button = document.createElement("button");
|
||||
buttonWrapper.appendChild(button);
|
||||
button.setAttribute("data-source-id", i)
|
||||
button.style["width"] = "150px";
|
||||
button.style["font-size"] = "12px";
|
||||
button.style["line-height"] = "1.4em";
|
||||
button.style["margin"] = "5px 0 0 0";
|
||||
button.textContent = "Download";
|
||||
|
||||
button.onclick = function(el) {
|
||||
// console.log(el, d, i, sources)
|
||||
download(d);
|
||||
};
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function cleanup() {
|
||||
var crowbarElements = document.querySelectorAll(".svg-crowbar");
|
||||
|
||||
[].forEach.call(crowbarElements, function(el) {
|
||||
el.parentNode.removeChild(el);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function getSources(doc, styles) {
|
||||
var svgInfo = [],
|
||||
svgs = doc.querySelectorAll("svg");
|
||||
|
||||
styles = (styles === undefined) ? "" : styles;
|
||||
|
||||
[].forEach.call(svgs, function (svg) {
|
||||
|
||||
svg.setAttribute("version", "1.1");
|
||||
|
||||
var defsEl = document.createElement("defs");
|
||||
svg.insertBefore(defsEl, svg.firstChild); //TODO .insert("defs", ":first-child")
|
||||
// defsEl.setAttribute("class", "svg-crowbar");
|
||||
|
||||
var styleEl = document.createElement("style")
|
||||
defsEl.appendChild(styleEl);
|
||||
styleEl.setAttribute("type", "text/css");
|
||||
|
||||
|
||||
// removing attributes so they aren't doubled up
|
||||
svg.removeAttribute("xmlns");
|
||||
svg.removeAttribute("xlink");
|
||||
|
||||
// These are needed for the svg
|
||||
if (!svg.hasAttributeNS(prefix.xmlns, "xmlns")) {
|
||||
svg.setAttributeNS(prefix.xmlns, "xmlns", prefix.svg);
|
||||
}
|
||||
|
||||
if (!svg.hasAttributeNS(prefix.xmlns, "xmlns:xlink")) {
|
||||
svg.setAttributeNS(prefix.xmlns, "xmlns:xlink", prefix.xlink);
|
||||
}
|
||||
|
||||
var source = (new XMLSerializer()).serializeToString(svg).replace('</style>', '<![CDATA[' + styles + ']]></style>');
|
||||
var rect = svg.getBoundingClientRect();
|
||||
svgInfo.push({
|
||||
top: rect.top,
|
||||
left: rect.left,
|
||||
width: rect.width,
|
||||
height: rect.height,
|
||||
class: svg.getAttribute("class"),
|
||||
id: svg.getAttribute("id"),
|
||||
childElementCount: svg.childElementCount,
|
||||
source: [doctype + source]
|
||||
});
|
||||
});
|
||||
return svgInfo;
|
||||
}
|
||||
|
||||
function download(source) {
|
||||
var filename = "untitled";
|
||||
|
||||
if (source.id) {
|
||||
filename = source.id;
|
||||
} else if (source.class) {
|
||||
filename = source.class;
|
||||
} else if (window.document.title) {
|
||||
filename = window.document.title.replace(/[^a-z0-9]/gi, '-').toLowerCase();
|
||||
}
|
||||
|
||||
var url = window.URL.createObjectURL(new Blob(source.source, { "type" : "text\/xml" }));
|
||||
|
||||
var a = document.createElement("a");
|
||||
body.appendChild(a);
|
||||
a.setAttribute("class", "svg-crowbar");
|
||||
a.setAttribute("download", filename + ".svg");
|
||||
a.setAttribute("href", url);
|
||||
a.style["display"] = "none";
|
||||
a.click();
|
||||
|
||||
setTimeout(function() {
|
||||
window.URL.revokeObjectURL(url);
|
||||
}, 10);
|
||||
}
|
||||
|
||||
function getStyles(doc) {
|
||||
var styles = "",
|
||||
styleSheets = doc.styleSheets;
|
||||
|
||||
if (styleSheets) {
|
||||
for (var i = 0; i < styleSheets.length; i++) {
|
||||
processStyleSheet(styleSheets[i]);
|
||||
}
|
||||
}
|
||||
|
||||
function processStyleSheet(ss) {
|
||||
if (ss.cssRules) {
|
||||
for (var i = 0; i < ss.cssRules.length; i++) {
|
||||
var rule = ss.cssRules[i];
|
||||
if (rule.type === 3) {
|
||||
// Import Rule
|
||||
processStyleSheet(rule.styleSheet);
|
||||
} else {
|
||||
// hack for illustrator crashing on descendent selectors
|
||||
if (rule.selectorText) {
|
||||
if (rule.selectorText.indexOf(">") === -1) {
|
||||
styles += "\n" + rule.cssText;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return styles;
|
||||
}
|
||||
|
||||
}
|
||||
exports.svg_crowbar = svg_crowbar;
|
||||
11
awx/network_ui/static/network_ui/widgets/button.html
Normal file
11
awx/network_ui/static/network_ui/widgets/button.html
Normal file
@ -0,0 +1,11 @@
|
||||
|
||||
|
||||
<rect x=0
|
||||
y=0
|
||||
ng-attr-width={{button.width}}
|
||||
ng-attr-height={{button.height}}
|
||||
rx=3></rect>
|
||||
<text ng-attr-x="{{button.width/2}}"
|
||||
ng-attr-y="{{button.height/2}}"
|
||||
dy=".3em"
|
||||
text-anchor="middle">{{button.name}}</text>
|
||||
4
awx/network_ui/static/network_ui/widgets/cursor.html
Normal file
4
awx/network_ui/static/network_ui/widgets/cursor.html
Normal file
@ -0,0 +1,4 @@
|
||||
<g ng-attr-transform="translate({{cursor.x}},{{cursor.y}})" ng-attr-class="{{cursor.hidden && 'hidden' || ''}}" >
|
||||
<line x1="-15" y1="0" x2="15" y2="0" class="cursor"/>
|
||||
<line x1="0" y1="-15" x2="0" y2="15" class="cursor"/>
|
||||
</g>
|
||||
32
awx/network_ui/static/network_ui/widgets/debug.html
Normal file
32
awx/network_ui/static/network_ui/widgets/debug.html
Normal file
@ -0,0 +1,32 @@
|
||||
|
||||
|
||||
<g ng-attr-class="{{debug.hidden && 'hidden' || ''}} debug">
|
||||
<text ng-attr-x="{{graph.right_column}}" y="15">width: {{graph.width}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="35">height: {{graph.height}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="55">rc: {{graph.right_column}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="75">Mouse down: {{onMouseDownResult}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="95">Mouse up: {{onMouseUpResult}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="115">Mouse move: {{onMouseMoveResult}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="135">Mouse over: {{onMouseOverResult}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="155">Mouse enter: {{onMouseEnterResult}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="175">Mouse leave: {{onMouseLeaveResult}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="195">Current scale: {{current_scale.toFixed(2)}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="215">Pan X: {{panX.toFixed(2)}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="235">Pan Y: {{panY.toFixed(2)}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="255">View State: {{view_controller.state.name}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="275">Mouse X: {{mouseX.toFixed(2)}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="295">Mouse Y: {{mouseY.toFixed(2)}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="315">Scaled X: {{scaledX.toFixed(2)}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="335">Scaled Y: {{scaledY.toFixed(2)}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="355">Key: {{last_key}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="375">Key Code: {{last_key_code}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="395">Move State: {{move_controller.state.name}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="415">Selected devices: {{selected_devices.length}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="435">Selected links: {{selected_links.length}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="455">Link State: {{link_controller.state.name}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="475">Buttons State: {{buttons_controller.state.name}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="495">Time State: {{time_controller.state.name}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="515">Time Pointer: {{time_pointer}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="535">History: {{history.length}}</text>
|
||||
<text ng-attr-x="{{graph.right_column}}" y="555">Touch Data: {{touch_data.xb}} {{touch_data.yb}} {{touch_data.d}}</text>
|
||||
</g>
|
||||
36
awx/network_ui/static/network_ui/widgets/default.html
Normal file
36
awx/network_ui/static/network_ui/widgets/default.html
Normal file
@ -0,0 +1,36 @@
|
||||
|
||||
|
||||
<line ng-attr-x1="{{-50 - 10}}"
|
||||
ng-attr-y1="0"
|
||||
ng-attr-x2="{{50 + 10}}"
|
||||
ng-attr-y2="0"
|
||||
ng-attr-class="{{debug.hidden && 'hidden' || ''}} debug" />
|
||||
<line ng-attr-x1="0"
|
||||
ng-attr-y1="{{-50 - 10}}"
|
||||
ng-attr-x2="0"
|
||||
ng-attr-y2="{{50 + 10}}"
|
||||
ng-attr-class="{{debug.hidden && 'hidden' || ''}} debug" />
|
||||
<rect ng-attr-x="{{-50}}"
|
||||
ng-attr-y="{{-50}}"
|
||||
ng-attr-width="{{50 * 2}}"
|
||||
ng-attr-height="{{50 * 2}}"
|
||||
ng-attr-class="{{debug.hidden && 'hidden' || ''}} debug" />
|
||||
<circle
|
||||
cx="0"
|
||||
cy="0"
|
||||
ng-attr-r="{{50 + 2}}"
|
||||
ng-attr-class="{{device.selected || device.remote_selected ? device.selected && device.remote_selected ? 'selected-conflict' : device.selected ? 'selected' : 'remote-selected' : 'hidden'}}">
|
||||
</circle>
|
||||
<circle
|
||||
cx="0"
|
||||
cy="0"
|
||||
ng-attr-r="{{50}}">
|
||||
</circle>
|
||||
<g ng-show="current_scale > 0.5">
|
||||
<text ng-attr-class="{{device.selected && ! device.edit_label ? 'selected' : 'hidden'}}"
|
||||
filter="url(#selected)"
|
||||
text-anchor="middle"
|
||||
x="0"
|
||||
y="75"> {{device.name}} </text>
|
||||
<text text-anchor="middle" x="0" y="75">{{device.name}}{{device.edit_label?'_':''}}</text>
|
||||
</g>
|
||||
42
awx/network_ui/static/network_ui/widgets/host.html
Normal file
42
awx/network_ui/static/network_ui/widgets/host.html
Normal file
@ -0,0 +1,42 @@
|
||||
|
||||
|
||||
<line ng-attr-x1="{{-50 - 10}}"
|
||||
ng-attr-y1="0"
|
||||
ng-attr-x2="{{50 + 10}}"
|
||||
ng-attr-y2="0"
|
||||
ng-attr-class="{{debug.hidden && 'hidden' || ''}} debug" />
|
||||
<line ng-attr-x1="0"
|
||||
ng-attr-y1="{{-15 - 10}}"
|
||||
ng-attr-x2="0"
|
||||
ng-attr-y2="{{15 + 10}}"
|
||||
ng-attr-class="{{debug.hidden && 'hidden' || ''}} debug" />
|
||||
<rect ng-attr-x="{{-50}}"
|
||||
ng-attr-y="{{-15}}"
|
||||
ng-attr-width="{{50 * 2}}"
|
||||
ng-attr-height="{{15 * 2}}"
|
||||
ng-attr-class="{{debug.hidden && 'hidden' || ''}} debug" />
|
||||
<rect
|
||||
x="-52"
|
||||
y="-17"
|
||||
ng-attr-width="{{100 + 4}}"
|
||||
ng-attr-height="{{30 + 4}}"
|
||||
ng-attr-class="{{device.selected || device.remote_selected ? device.selected && device.remote_selected ? 'selected-conflict' : device.selected ? 'selected' : 'remote-selected' : 'hidden'}}"
|
||||
rx=10>
|
||||
</rect>
|
||||
<rect
|
||||
x="-50"
|
||||
y="-15"
|
||||
ng-attr-width="{{100}}"
|
||||
ng-attr-height="{{30}}"
|
||||
rx=10>
|
||||
</rect>
|
||||
<circle cx="30" cy="0" r=7 />
|
||||
</circle>
|
||||
<g ng-show="current_scale > 0.5">
|
||||
<text ng-attr-class="{{device.selected && ! device.edit_label ? 'selected' : 'hidden'}}"
|
||||
filter="url(#selected)"
|
||||
text-anchor="middle"
|
||||
x="0"
|
||||
y="5"> {{device.name}} </text>
|
||||
<text text-anchor="middle" x="0" y="5">{{device.name}}{{device.edit_label?'_':''}}</text>
|
||||
</g>
|
||||
11
awx/network_ui/static/network_ui/widgets/layer.html
Normal file
11
awx/network_ui/static/network_ui/widgets/layer.html
Normal file
@ -0,0 +1,11 @@
|
||||
|
||||
|
||||
<rect x=0
|
||||
y=0
|
||||
ng-attr-width={{layer.size}}
|
||||
ng-attr-height={{layer.size}}
|
||||
rx=3></rect>
|
||||
<text ng-attr-x="{{layer.size/2}}"
|
||||
ng-attr-y="{{layer.size/2}}"
|
||||
dy=".3em"
|
||||
text-anchor="middle">{{layer.name}}</text>
|
||||
125
awx/network_ui/static/network_ui/widgets/link.html
Normal file
125
awx/network_ui/static/network_ui/widgets/link.html
Normal file
@ -0,0 +1,125 @@
|
||||
<line ng-attr-x1="{{link.from_device.x}}"
|
||||
ng-attr-y1="{{link.from_device.y}}"
|
||||
ng-attr-x2="{{link.to_device !== null ? link.to_device.x : scaledX}}"
|
||||
ng-attr-y2="{{link.to_device !== null ? link.to_device.y : scaledY}}"
|
||||
ng-attr-class="{{link.selected && 'selected' || 'hidden'}}"/>
|
||||
<line ng-attr-x1="{{link.from_device.x}}"
|
||||
ng-attr-y1="{{link.from_device.y}}"
|
||||
ng-attr-x2="{{link.to_device !== null ? link.to_device.x : scaledX}}"
|
||||
ng-attr-y2="{{link.to_device !== null ? link.to_device.y : scaledY}}"
|
||||
class="{{link.status === null ? 'link' : link.status ? 'link-pass' : 'link-fail'}}"/>
|
||||
<g ng-if="!debug.hidden && current_scale > 0.5">
|
||||
<line ng-if="link.to_device !== null && link.plength(scaledX, scaledY) < 100"
|
||||
ng-attr-x1="{{link.pDistanceLine(scaledX, scaledY).x2}}"
|
||||
ng-attr-y1="{{link.pDistanceLine(scaledX, scaledY).y2}}"
|
||||
ng-attr-x2="{{scaledX}}"
|
||||
ng-attr-y2="{{scaledY}}"
|
||||
ng-attr-class="debug" />
|
||||
<g ng-if="link.to_device !== null" ng-attr-transform="translate({{link.to_device.x}},
|
||||
{{link.to_device.y}})
|
||||
rotate({{link.slope()}})
|
||||
translate({{link.length()/2}}, 0)">
|
||||
<circle ng-attr-cx="0"
|
||||
ng-attr-cy="0"
|
||||
r=10
|
||||
class="debug" ></circle>
|
||||
</g>
|
||||
<g ng-if="link.to_device !== null" ng-attr-transform="translate({{link.to_device.x}},
|
||||
{{link.to_device.y}})
|
||||
rotate({{link.slope()}})
|
||||
translate({{link.length()/2}}, 0)">
|
||||
<line x1="0" y1=-20 x2=0 y2=20 class="debug"/>
|
||||
</g>
|
||||
<g ng-if="link.to_device !== null" ng-attr-transform="translate({{link.to_device.x}},
|
||||
{{link.to_device.y}})
|
||||
rotate({{link.slope()}})
|
||||
translate({{link.to_device.size}}, 0)">
|
||||
<circle ng-attr-cx="0"
|
||||
ng-attr-cy="0"
|
||||
r=10
|
||||
class="debug" ></circle>
|
||||
</g>
|
||||
<g ng-if="link.to_device !== null" ng-attr-transform="translate({{link.from_device.x}},
|
||||
{{link.from_device.y}})
|
||||
rotate({{link.slope()}})
|
||||
translate({{-link.from_device.size}}, 0)">
|
||||
<circle ng-attr-cx="0"
|
||||
ng-attr-cy="0"
|
||||
r=10
|
||||
class="debug" ></circle>
|
||||
</g>
|
||||
</g>
|
||||
<g ng-if="link.to_device !== null" ng-attr-transform="translate({{link.to_device.x}},
|
||||
{{link.to_device.y}})
|
||||
rotate({{link.slope()}})
|
||||
translate({{link.to_device.size}}, 0)
|
||||
rotate(180)
|
||||
translate(-19, -9)
|
||||
">
|
||||
</g>
|
||||
|
||||
<g ng-if="(!hide_interfaces && selected_links.length === 0 && selected_interfaces.length === 0) || link.selected || link.to_interface.selected || link.from_interface.selected">
|
||||
<g ng-if="current_scale > 1.0 && link.to_device !== null"
|
||||
ng-attr-transform="translate({{link.from_device.x}},
|
||||
{{link.from_device.y}})
|
||||
rotate({{link.slope()}})
|
||||
translate({{-link.length()/2}}, 0)
|
||||
rotate({{-link.slope()}})
|
||||
translate(0, -5)
|
||||
">
|
||||
<text ng-attr-class="{{link.selected && ! link.edit_label ? 'selected' : 'hidden'}}"
|
||||
filter="url(#selected)"
|
||||
text-anchor="middle"
|
||||
x="0"
|
||||
y="0"> {{link.name}}</text>
|
||||
<text text-anchor="middle" x="0" y="0">{{link.name}}{{link.edit_label?'_':''}}</text>
|
||||
</g>
|
||||
|
||||
<g ng-if="current_scale > 1.0 && link.to_device !== null"
|
||||
ng-attr-transform="translate({{link.from_device.x}},
|
||||
{{link.from_device.y}})
|
||||
rotate({{link.slope()}})
|
||||
translate({{-link.from_interface.dot_d - 20}}, 0)
|
||||
rotate({{-link.slope()}})
|
||||
">
|
||||
<text ng-attr-class="interface {{link.from_interface.selected && ! link.from_interface.edit_label ? 'selected' : 'hidden'}}"
|
||||
filter="url(#selected)"
|
||||
text-anchor="middle"
|
||||
x="0"
|
||||
y="0"> {{link.from_interface.name}}</text>
|
||||
<text class="interface" text-anchor="middle" x="0" y="0">{{link.from_interface.name}}{{link.from_interface.edit_label ?'_':''}}</text>
|
||||
</g>
|
||||
|
||||
<g ng-if="current_scale > 1.0 && link.to_device !== null"
|
||||
ng-attr-transform="translate({{link.from_device.x}},
|
||||
{{link.from_device.y}})
|
||||
rotate({{link.slope()}})
|
||||
translate({{-link.length() + link.to_interface.dot_d + 20}}, 0)
|
||||
rotate({{-link.slope()}})
|
||||
">
|
||||
<text ng-attr-class="interface {{link.to_interface.selected && ! link.to_interface.edit_label ? 'selected' : 'hidden'}}"
|
||||
filter="url(#selected)"
|
||||
text-anchor="middle"
|
||||
x="0"
|
||||
y="0"> {{link.to_interface.name}}</text>
|
||||
<text class="interface" text-anchor="middle" x="0" y="0">{{link.to_interface.name}}{{link.to_interface.edit_label?'_':''}}</text>
|
||||
</g>
|
||||
<g ng-if="current_scale > 1.0 && link.to_device !== null">
|
||||
<circle ng-attr-cx="{{link.from_interface.dot_x}}"
|
||||
ng-attr-cy="{{link.from_interface.dot_y}}"
|
||||
r=14
|
||||
ng-attr-class="{{link.from_interface.selected && ! link.from_interface.edit_label ? 'selected' : 'hidden'}}" ></circle>
|
||||
<circle ng-attr-cx="{{link.from_interface.dot_x}}"
|
||||
ng-attr-cy="{{link.from_interface.dot_y}}"
|
||||
r=10
|
||||
class="interface" ></circle>
|
||||
<circle ng-attr-cx="{{link.to_interface.dot_x}}"
|
||||
ng-attr-cy="{{link.to_interface.dot_y}}"
|
||||
r=14
|
||||
ng-attr-class="{{link.to_interface.selected && ! link.to_interface.edit_label ? 'selected' : 'hidden'}}" ></circle>
|
||||
<circle ng-attr-cx="{{link.to_interface.dot_x}}"
|
||||
ng-attr-cy="{{link.to_interface.dot_y}}"
|
||||
r=10
|
||||
class="interface" ></circle>
|
||||
</g>
|
||||
</g> <!-- end hide_interfaces -->
|
||||
10
awx/network_ui/static/network_ui/widgets/quadrants.html
Normal file
10
awx/network_ui/static/network_ui/widgets/quadrants.html
Normal file
@ -0,0 +1,10 @@
|
||||
<line ng-attr-x1="-100000"
|
||||
ng-attr-y1="0"
|
||||
ng-attr-x2="100000"
|
||||
ng-attr-y2="0"
|
||||
ng-attr-class="{{debug.hidden && 'hidden' || ''}} debug" />
|
||||
<line ng-attr-x1="0"
|
||||
ng-attr-y1="-100000"
|
||||
ng-attr-x2="0"
|
||||
ng-attr-y2="100000"
|
||||
ng-attr-class="{{debug.hidden && 'hidden' || ''}} debug" />
|
||||
67
awx/network_ui/static/network_ui/widgets/rack.html
Normal file
67
awx/network_ui/static/network_ui/widgets/rack.html
Normal file
@ -0,0 +1,67 @@
|
||||
|
||||
|
||||
<line ng-attr-x1="{{-50 - 10}}"
|
||||
ng-attr-y1="0"
|
||||
ng-attr-x2="{{50 + 10}}"
|
||||
ng-attr-y2="0"
|
||||
ng-attr-class="{{debug.hidden && 'hidden' || ''}} debug" />
|
||||
<line ng-attr-x1="0"
|
||||
ng-attr-y1="{{-50 - 10}}"
|
||||
ng-attr-x2="0"
|
||||
ng-attr-y2="{{50 + 10}}"
|
||||
ng-attr-class="{{debug.hidden && 'hidden' || ''}} debug" />
|
||||
<rect ng-attr-x="{{-50}}"
|
||||
ng-attr-y="{{-50}}"
|
||||
ng-attr-width="{{50 * 2}}"
|
||||
ng-attr-height="{{50 * 2}}"
|
||||
ng-attr-class="{{debug.hidden && 'hidden' || ''}} debug" />
|
||||
<rect
|
||||
x="-52"
|
||||
y="-52"
|
||||
ng-attr-width="{{100 + 4}}"
|
||||
ng-attr-height="{{100 + 4}}"
|
||||
ng-attr-class="{{device.selected || device.remote_selected ? device.selected && device.remote_selected ? 'selected-conflict' : device.selected ? 'selected' : 'remote-selected' : 'hidden'}}"
|
||||
rx=10>
|
||||
</rect>
|
||||
<rect
|
||||
x="-50"
|
||||
y="-50"
|
||||
ng-attr-width="{{100}}"
|
||||
ng-attr-height="{{100}}"
|
||||
rx=10
|
||||
class="background">
|
||||
</rect>
|
||||
<rect
|
||||
x="-50"
|
||||
y="-50"
|
||||
ng-attr-width="{{100}}"
|
||||
ng-attr-height="{{30}}"
|
||||
rx=10>
|
||||
</rect>
|
||||
<rect
|
||||
x="-50"
|
||||
y="-15"
|
||||
ng-attr-width="{{100}}"
|
||||
ng-attr-height="{{30}}"
|
||||
rx=10>
|
||||
</rect>
|
||||
<rect
|
||||
x="-50"
|
||||
y="20"
|
||||
ng-attr-width="{{100}}"
|
||||
ng-attr-height="{{30}}"
|
||||
rx=10>
|
||||
</rect>
|
||||
<circle cx="30" cy="-35" r=7 />
|
||||
<circle cx="30" cy="0" r=7 />
|
||||
<circle cx="30" cy="35" r=7 />
|
||||
</circle>
|
||||
<g ng-show="current_scale > 0.5">
|
||||
<text ng-attr-class="{{device.selected && ! device.edit_label ? 'selected' : 'hidden'}}"
|
||||
filter="url(#selected)"
|
||||
text-anchor="middle"
|
||||
x="0"
|
||||
y="75"> {{device.name}} </text>
|
||||
<text text-anchor="middle" x="0" y="75">{{device.name}}{{device.edit_label?'_':''}}</text>
|
||||
</g>
|
||||
|
||||
59
awx/network_ui/static/network_ui/widgets/router.html
Normal file
59
awx/network_ui/static/network_ui/widgets/router.html
Normal file
@ -0,0 +1,59 @@
|
||||
|
||||
|
||||
<line ng-attr-x1="{{-50 - 10}}"
|
||||
ng-attr-y1="0"
|
||||
ng-attr-x2="{{50 + 10}}"
|
||||
ng-attr-y2="0"
|
||||
ng-attr-class="{{debug.hidden && 'hidden' || ''}} debug" />
|
||||
<line ng-attr-x1="0"
|
||||
ng-attr-y1="{{-50 - 10}}"
|
||||
ng-attr-x2="0"
|
||||
ng-attr-y2="{{50 + 10}}"
|
||||
ng-attr-class="{{debug.hidden && 'hidden' || ''}} debug" />
|
||||
<rect ng-attr-x="{{-50}}"
|
||||
ng-attr-y="{{-50}}"
|
||||
ng-attr-width="{{50 * 2}}"
|
||||
ng-attr-height="{{50 * 2}}"
|
||||
ng-attr-class="{{debug.hidden && 'hidden' || ''}} debug" />
|
||||
<circle
|
||||
cx="0"
|
||||
cy="0"
|
||||
ng-attr-r="{{50 + 2}}"
|
||||
ng-attr-class="{{device.selected || device.remote_selected ? device.selected && device.remote_selected ? 'selected-conflict' : device.selected ? 'selected' : 'remote-selected' : 'hidden'}}">
|
||||
</circle>
|
||||
<circle
|
||||
cx="0"
|
||||
cy="0"
|
||||
ng-attr-r="{{50}}">
|
||||
</circle>
|
||||
<g transform="rotate(45)">
|
||||
<line ng-attr-x1="12"
|
||||
ng-attr-y1="0"
|
||||
ng-attr-x2="{{50-18}}"
|
||||
ng-attr-y2="0"/>
|
||||
<line ng-attr-x1="-12"
|
||||
ng-attr-y1="0"
|
||||
ng-attr-x2="{{-50+18}}"
|
||||
ng-attr-y2="0"/>
|
||||
<polygon points="0 0, 10 10, 0 20" ng-attr-transform="rotate(0) translate({{50-22}}, -20) scale(2.0)"/>
|
||||
<polygon points="0 0, 10 10, 0 20" ng-attr-transform="rotate(180) translate({{50-22}}, -20) scale(2.0)"/>
|
||||
<line ng-attr-x1="0"
|
||||
ng-attr-y1="17"
|
||||
ng-attr-x2="0"
|
||||
ng-attr-y2="{{50-5}}"/>
|
||||
<line ng-attr-x1="0"
|
||||
ng-attr-y1="-17"
|
||||
ng-attr-x2="0"
|
||||
ng-attr-y2="{{-50+5}}"/>
|
||||
<polygon points="0 0, 10 10, 0 20" ng-attr-transform="rotate(90) translate(-22, -20) scale(2.0)" />
|
||||
<polygon points="0 0, 10 10, 0 20" ng-attr-transform="rotate(270) translate(-22, -20) scale(2.0)"/>
|
||||
</g>
|
||||
<g ng-show="current_scale > 0.5">
|
||||
<text ng-attr-class="{{device.selected && ! device.edit_label ? 'selected' : 'hidden'}}"
|
||||
filter="url(#selected)"
|
||||
text-anchor="middle"
|
||||
x="0"
|
||||
y="0"> {{device.name}}</text>
|
||||
<text text-anchor="middle" x="0" y="0">{{device.name}}{{device.edit_label?'_':''}}</text>
|
||||
</g>
|
||||
|
||||
10
awx/network_ui/static/network_ui/widgets/status_light.html
Normal file
10
awx/network_ui/static/network_ui/widgets/status_light.html
Normal file
@ -0,0 +1,10 @@
|
||||
<g ng-if="device.working">
|
||||
<path ng-attr-transform="translate({{-device.width}}, {{-device.height}}) rotate({{frame/3}})" class="status" ng-attr-d="{{device.describeArc(0, 0, 10, 0, 270)}}"/>
|
||||
</g>
|
||||
<g ng-if="!device.working">
|
||||
<circle ng-attr-cx="{{-device.width}}"
|
||||
ng-attr-cy="{{-device.height}}"
|
||||
r=10
|
||||
ng-attr-class="{{device.status === null ? 'hidden' : device.status ? 'pass': 'fail'}} status">
|
||||
</circle>
|
||||
</g>
|
||||
11
awx/network_ui/static/network_ui/widgets/stencil.html
Normal file
11
awx/network_ui/static/network_ui/widgets/stencil.html
Normal file
@ -0,0 +1,11 @@
|
||||
|
||||
|
||||
<rect x=0
|
||||
y=0
|
||||
ng-attr-width={{stencil.size}}
|
||||
ng-attr-height={{stencil.size}}
|
||||
rx=3></rect>
|
||||
<text ng-attr-x="{{stencil.size/2}}"
|
||||
ng-attr-y="{{stencil.size/2}}"
|
||||
dy=".3em"
|
||||
text-anchor="middle">{{stencil.name}}</text>
|
||||
61
awx/network_ui/static/network_ui/widgets/switch.html
Normal file
61
awx/network_ui/static/network_ui/widgets/switch.html
Normal file
@ -0,0 +1,61 @@
|
||||
|
||||
|
||||
<line ng-attr-x1="{{-50 - 10}}"
|
||||
ng-attr-y1="0"
|
||||
ng-attr-x2="{{50 + 10}}"
|
||||
ng-attr-y2="0"
|
||||
ng-attr-class="{{debug.hidden && 'hidden' || ''}} debug" />
|
||||
<line ng-attr-x1="0"
|
||||
ng-attr-y1="{{-50 - 10}}"
|
||||
ng-attr-x2="0"
|
||||
ng-attr-y2="{{50 + 10}}"
|
||||
ng-attr-class="{{debug.hidden && 'hidden' || ''}} debug" />
|
||||
<rect ng-attr-x="{{-50}}"
|
||||
ng-attr-y="{{-50}}"
|
||||
ng-attr-width="{{50 * 2}}"
|
||||
ng-attr-height="{{50 * 2}}"
|
||||
ng-attr-class="{{debug.hidden && 'hidden' || ''}} debug" />
|
||||
<rect
|
||||
x="-52"
|
||||
y="-52"
|
||||
ng-attr-width="{{100 + 4}}"
|
||||
ng-attr-height="{{100 + 4}}"
|
||||
ng-attr-class="{{device.selected || device.remote_selected ? device.selected && device.remote_selected ? 'selected-conflict' : device.selected ? 'selected' : 'remote-selected' : 'hidden'}}"
|
||||
rx=10>
|
||||
</rect>
|
||||
|
||||
<rect
|
||||
x="-50"
|
||||
y="-50"
|
||||
ng-attr-width="{{100}}"
|
||||
ng-attr-height="{{100}}"
|
||||
rx=10>
|
||||
</rect>
|
||||
<line ng-attr-x1="2"
|
||||
ng-attr-y1="-28"
|
||||
ng-attr-x2="38"
|
||||
ng-attr-y2="-28"/>
|
||||
<polygon points="0 0, 10 10, 0 20" ng-attr-transform="rotate(0) translate(28, -48) scale(2.0)"/>
|
||||
<line ng-attr-x1="2"
|
||||
ng-attr-y1="14"
|
||||
ng-attr-x2="38"
|
||||
ng-attr-y2="14"/>
|
||||
<polygon points="0 0, 10 10, 0 20" ng-attr-transform="rotate(0) translate(28, -6) scale(2.0)"/>
|
||||
<line ng-attr-x1="-2"
|
||||
ng-attr-y1="28"
|
||||
ng-attr-x2="-38"
|
||||
ng-attr-y2="28"/>
|
||||
<polygon points="0 0, 10 10, 0 20" ng-attr-transform="rotate(180) translate(28, -48) scale(2.0)"/>
|
||||
<line ng-attr-x1="-2"
|
||||
ng-attr-y1="-14"
|
||||
ng-attr-x2="-38"
|
||||
ng-attr-y2="-14"/>
|
||||
<polygon points="0 0, 10 10, 0 20" ng-attr-transform="rotate(180) translate(28, -6) scale(2.0)"/>
|
||||
<g ng-show="current_scale > 0.5">
|
||||
<text ng-attr-class="{{device.selected && ! device.edit_label ? 'selected' : 'hidden'}}"
|
||||
filter="url(#selected)"
|
||||
text-anchor="middle"
|
||||
x="0"
|
||||
y="0"> {{device.name}} </text>
|
||||
<text text-anchor="middle" x="0" y="0">{{device.name}}{{device.edit_label?'_':''}}</text>
|
||||
</g>
|
||||
15
awx/network_ui/static/network_ui/widgets/task_status.html
Normal file
15
awx/network_ui/static/network_ui/widgets/task_status.html
Normal file
@ -0,0 +1,15 @@
|
||||
<g ng-attr-transform="translate({{-device.width}}, {{-device.height}})">
|
||||
<g ng-repeat="task in device.tasks | limitTo: -7">
|
||||
<g ng-if="task.working && current_scale > 0.5">
|
||||
<path ng-attr-transform="translate({{$index * 12 + 17}}, -5 ) rotate({{frame/3}})" class="status" ng-attr-d="{{task.describeArc(0, 0, 5, 0, 270)}}"/>
|
||||
</g>
|
||||
<g ng-if="!task.working && current_scale > 0.5">
|
||||
<circle ng-attr-cx="{{$index * 12 + 17}}"
|
||||
ng-attr-cy="-5"
|
||||
r=5
|
||||
ng-attr-class="{{task.status === null ? 'hidden' : task.status ? 'pass': 'fail'}} status"
|
||||
|
||||
</circle>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
3
awx/network_ui/static/network_ui/widgets/touch.html
Normal file
3
awx/network_ui/static/network_ui/widgets/touch.html
Normal file
@ -0,0 +1,3 @@
|
||||
<g ng-attr-transform="translate({{touch.screenX}},{{touch.screenY}})" ng-attr-class="touch {{touch.hidden && 'hidden' || ''}}" >
|
||||
<circle cx=0 cy=0 r=40></circle>
|
||||
</g>
|
||||
12
awx/network_ui/templates/admin.pyt
Normal file
12
awx/network_ui/templates/admin.pyt
Normal file
@ -0,0 +1,12 @@
|
||||
from django.contrib import admin
|
||||
{%for model in models%}
|
||||
from {{app}}.models import {{model.name}}
|
||||
{%endfor%}
|
||||
|
||||
{%for model in models%}
|
||||
class {{model.name}}Admin(admin.ModelAdmin):
|
||||
fields = ({%for field in model.fields%}{%if not field.pk%}'{{field.name}}',{%endif%}{%endfor%})
|
||||
raw_id_fields = ({%for field in model.fields%}{%if field.ref%}'{{field.name}}',{%endif%}{%endfor%})
|
||||
admin.site.register({{model.name}}, {{model.name}}Admin)
|
||||
{%endfor%}
|
||||
|
||||
15
awx/network_ui/templates/models.pyt
Normal file
15
awx/network_ui/templates/models.pyt
Normal file
@ -0,0 +1,15 @@
|
||||
from django.db import models
|
||||
|
||||
|
||||
{%for model in models%}
|
||||
class {{model.name}}(models.Model):
|
||||
|
||||
{%for field in model.fields%}{{field.name}} = models.{{field.type}}( {%if field.ref%}'{{field.ref}}', {%endif%}{%if field.pk%}primary_key=True, {%endif%} {%if field.len%}max_length={{field.len}}, {%endif%}{%if field.related_name%}related_name='{{field.related_name}}', {%endif%}{%if field.default is defined%}default={{field.default}}{%endif%})
|
||||
{%endfor%}
|
||||
|
||||
{%if model.display%}
|
||||
def __unicode__(self):
|
||||
return self.{{model.display}}
|
||||
{%endif%}
|
||||
|
||||
{%endfor%}
|
||||
11
awx/network_ui/templates/prototype/index.html
Normal file
11
awx/network_ui/templates/prototype/index.html
Normal file
@ -0,0 +1,11 @@
|
||||
<ul>
|
||||
<li><a href="/static/prototype/index.html">New</a></li>
|
||||
{%for o in topologies%}
|
||||
<li>
|
||||
<a href="/static/prototype/index.html#!?topology_id={{o.pk}}">{{o.pk}} {{o}}</a>
|
||||
{%for device in o.device_set.all%}
|
||||
{{device}}
|
||||
{%endfor%}
|
||||
</li>
|
||||
{%endfor%}
|
||||
</ul>
|
||||
15
awx/network_ui/tests.py
Normal file
15
awx/network_ui/tests.py
Normal file
@ -0,0 +1,15 @@
|
||||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
||||
|
||||
from awx.network_ui.models import Topology, Device, Interface, MessageType, Link
|
||||
|
||||
|
||||
class TestToString(TestCase):
|
||||
|
||||
def test(self):
|
||||
print str(Topology(name='foo'))
|
||||
print str(Device(name='foo'))
|
||||
print str(Device(name='foo'))
|
||||
print str(Interface(name='foo'))
|
||||
print str(MessageType(name='foo'))
|
||||
11
awx/network_ui/urls.py
Normal file
11
awx/network_ui/urls.py
Normal file
@ -0,0 +1,11 @@
|
||||
from django.conf.urls import include, url
|
||||
import sys
|
||||
|
||||
from . import views
|
||||
import awx.network_ui.routing
|
||||
|
||||
app_name = 'network_ui'
|
||||
urlpatterns = [
|
||||
url(r'^$', views.index, name='index'),
|
||||
]
|
||||
|
||||
4
awx/network_ui/utils.py
Normal file
4
awx/network_ui/utils.py
Normal file
@ -0,0 +1,4 @@
|
||||
|
||||
def transform_dict(dict_map, d):
|
||||
return {to_key: d[from_key] for from_key, to_key in dict_map.iteritems()}
|
||||
|
||||
8
awx/network_ui/views.py
Normal file
8
awx/network_ui/views.py
Normal file
@ -0,0 +1,8 @@
|
||||
from django.shortcuts import render
|
||||
|
||||
# Create your views here.
|
||||
from .models import Topology
|
||||
|
||||
|
||||
def index(request):
|
||||
return render(request, "network_ui/index.html", dict(topologies=Topology.objects.all().order_by('-pk')))
|
||||
@ -279,6 +279,7 @@ INSTALLED_APPS = (
|
||||
'awx.ui',
|
||||
'awx.sso',
|
||||
'solo',
|
||||
'awx.network_ui',
|
||||
)
|
||||
|
||||
INTERNAL_IPS = ('127.0.0.1',)
|
||||
|
||||
272
recordings/test_create_two_switches.replay
Normal file
272
recordings/test_create_two_switches.replay
Normal file
@ -0,0 +1,272 @@
|
||||
{"panX": 0, "panY": 0, "scale": 1, "sender": 3692, "msg_type": "ViewPort", "message_id": 0}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 44, "x": 195, "type": "mousemove", "message_id": 2}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 44, "x": 195, "type": "mousemove", "message_id": 3}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 44, "x": 195, "type": "mousemove", "message_id": 4}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 45, "x": 195, "type": "mousemove", "message_id": 5}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 46, "x": 196, "type": "mousemove", "message_id": 6}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 48, "x": 197, "type": "mousemove", "message_id": 7}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 50, "x": 199, "type": "mouseover", "message_id": 8}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 50, "x": 199, "type": "mouseover", "message_id": 9}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 53, "x": 201, "type": "mousemove", "message_id": 11}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 50, "x": 199, "type": "mousemove", "message_id": 10}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 57, "x": 203, "type": "mousemove", "message_id": 12}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 62, "x": 205, "type": "mouseover", "message_id": 13}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 62, "x": 205, "type": "mousemove", "message_id": 15}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 62, "x": 205, "type": "mouseover", "message_id": 14}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 71, "x": 206, "type": "mouseover", "message_id": 16}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 71, "x": 206, "type": "mouseover", "message_id": 17}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 71, "x": 206, "type": "mousemove", "message_id": 18}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 84, "x": 209, "type": "mouseover", "message_id": 20}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 84, "x": 209, "type": "mouseover", "message_id": 19}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 84, "x": 209, "type": "mousemove", "message_id": 21}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 101, "x": 212, "type": "mousemove", "message_id": 22}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 122, "x": 214, "type": "mousemove", "message_id": 23}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 144, "x": 218, "type": "mousemove", "message_id": 24}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 165, "x": 221, "type": "mousemove", "message_id": 25}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 184, "x": 224, "type": "mousemove", "message_id": 26}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 195, "x": 225, "type": "mouseover", "message_id": 27}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 195, "x": 225, "type": "mouseover", "message_id": 28}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 195, "x": 225, "type": "mousemove", "message_id": 29}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 207, "x": 225, "type": "mousemove", "message_id": 30}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 217, "x": 224, "type": "mousemove", "message_id": 31}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 225, "x": 221, "type": "mouseover", "message_id": 32}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 225, "x": 221, "type": "mouseover", "message_id": 33}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 225, "x": 221, "type": "mousemove", "message_id": 34}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 233, "x": 218, "type": "mousemove", "message_id": 35}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 242, "x": 214, "type": "mousemove", "message_id": 36}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 249, "x": 211, "type": "mousemove", "message_id": 37}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 256, "x": 207, "type": "mousemove", "message_id": 38}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 261, "x": 205, "type": "mousemove", "message_id": 39}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 265, "x": 202, "type": "mousemove", "message_id": 40}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 268, "x": 200, "type": "mousemove", "message_id": 41}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 269, "x": 198, "type": "mouseover", "message_id": 42}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 269, "x": 198, "type": "mouseover", "message_id": 43}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 270, "x": 198, "type": "mouseover", "message_id": 45}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 269, "x": 198, "type": "mousemove", "message_id": 44}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 270, "x": 198, "type": "mousemove", "message_id": 47}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 270, "x": 198, "type": "mouseover", "message_id": 46}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 271, "x": 198, "type": "mousemove", "message_id": 48}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 198, "type": "mousemove", "message_id": 49}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 273, "x": 198, "type": "mousemove", "message_id": 50}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 198, "type": "mousemove", "message_id": 51}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 199, "type": "mousemove", "message_id": 52}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 276, "x": 199, "type": "mousemove", "message_id": 53}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 276, "x": 199, "type": "mousemove", "message_id": 54}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 276, "x": 199, "type": "mousemove", "message_id": 55}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 276, "x": 199, "type": "mousemove", "message_id": 56}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 276, "x": 199, "type": "mousemove", "message_id": 57}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 277, "x": 199, "type": "mousemove", "message_id": 58}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 277, "x": 199, "type": "mousemove", "message_id": 59}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 199, "type": "mousemove", "message_id": 60}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 199, "type": "mousemove", "message_id": 61}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 199, "type": "mousemove", "message_id": 62}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 199, "type": "mousemove", "message_id": 63}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 279, "x": 199, "type": "mousemove", "message_id": 64}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 279, "x": 199, "type": "mousemove", "message_id": 65}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 279, "x": 199, "type": "mousemove", "message_id": 66}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 279, "x": 199, "type": "mousemove", "message_id": 67}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 279, "x": 199, "type": "mousedown", "message_id": 68}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 279, "x": 199, "type": "mouseup", "message_id": 69}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 279, "x": 199, "type": "mousemove", "message_id": 70}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 199, "type": "mousemove", "message_id": 71}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 199, "type": "mousemove", "message_id": 72}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 199, "type": "mousemove", "message_id": 73}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 199, "type": "mousemove", "message_id": 74}
|
||||
{"sender": 3692, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 75, "altKey": false, "metaKey": false, "key": "s", "ctrlKey": false, "type": "keydown", "keyCode": 83}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 199, "type": "mousemove", "message_id": 77}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 199, "type": "mousemove", "message_id": 78}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 201, "type": "mouseover", "message_id": 79}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 201, "type": "mouseover", "message_id": 80}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 201, "type": "mousemove", "message_id": 81}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 206, "type": "mousemove", "message_id": 82}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 215, "type": "mousemove", "message_id": 83}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 226, "type": "mousemove", "message_id": 84}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 279, "x": 241, "type": "mousemove", "message_id": 85}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 279, "x": 259, "type": "mouseover", "message_id": 87}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 279, "x": 259, "type": "mouseover", "message_id": 86}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 279, "x": 259, "type": "mousemove", "message_id": 88}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 278, "type": "mousemove", "message_id": 89}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 277, "x": 298, "type": "mousemove", "message_id": 90}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 277, "x": 320, "type": "mousemove", "message_id": 91}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 277, "x": 335, "type": "mouseover", "message_id": 92}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 277, "x": 335, "type": "mouseover", "message_id": 93}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 277, "x": 335, "type": "mousemove", "message_id": 94}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 276, "x": 355, "type": "mouseover", "message_id": 95}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 276, "x": 355, "type": "mousemove", "message_id": 97}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 276, "x": 355, "type": "mouseover", "message_id": 96}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 276, "x": 371, "type": "mousemove", "message_id": 98}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 276, "x": 384, "type": "mouseover", "message_id": 99}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 276, "x": 384, "type": "mouseover", "message_id": 100}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 276, "x": 384, "type": "mousemove", "message_id": 101}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 395, "type": "mousemove", "message_id": 102}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 403, "type": "mousemove", "message_id": 103}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 410, "type": "mousemove", "message_id": 104}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 416, "type": "mousemove", "message_id": 105}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 273, "x": 420, "type": "mousemove", "message_id": 106}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 273, "x": 423, "type": "mousemove", "message_id": 107}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 273, "x": 425, "type": "mousemove", "message_id": 108}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 273, "x": 426, "type": "mouseover", "message_id": 109}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 273, "x": 426, "type": "mousemove", "message_id": 111}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 273, "x": 426, "type": "mouseover", "message_id": 110}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 273, "x": 426, "type": "mousemove", "message_id": 112}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 273, "x": 426, "type": "mousemove", "message_id": 113}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 273, "x": 426, "type": "mousemove", "message_id": 114}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 273, "x": 428, "type": "mouseover", "message_id": 115}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 273, "x": 428, "type": "mouseover", "message_id": 116}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 273, "x": 428, "type": "mousemove", "message_id": 117}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 273, "x": 429, "type": "mouseover", "message_id": 118}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 273, "x": 429, "type": "mousemove", "message_id": 120}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 273, "x": 429, "type": "mouseover", "message_id": 119}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 431, "type": "mouseover", "message_id": 122}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 431, "type": "mouseover", "message_id": 121}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 431, "type": "mousemove", "message_id": 123}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 432, "type": "mouseover", "message_id": 124}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 432, "type": "mouseover", "message_id": 125}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 432, "type": "mousemove", "message_id": 126}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 433, "type": "mousemove", "message_id": 127}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 434, "type": "mousemove", "message_id": 128}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 435, "type": "mousemove", "message_id": 129}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 436, "type": "mousemove", "message_id": 130}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 436, "type": "mousemove", "message_id": 131}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 436, "type": "mousemove", "message_id": 132}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 437, "type": "mousemove", "message_id": 133}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 438, "type": "mousemove", "message_id": 134}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 438, "type": "mousemove", "message_id": 135}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 439, "type": "mousemove", "message_id": 136}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 439, "type": "mousemove", "message_id": 137}
|
||||
{"sender": 3692, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 138, "altKey": false, "metaKey": false, "key": "s", "ctrlKey": false, "type": "keydown", "keyCode": 83}
|
||||
{"sender": 3692, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 140, "altKey": false, "metaKey": false, "key": "l", "ctrlKey": false, "type": "keydown", "keyCode": 76}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 439, "type": "mousedown", "message_id": 141}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 439, "type": "mouseup", "message_id": 142}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 439, "type": "mousemove", "message_id": 144}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 434, "type": "mouseover", "message_id": 145}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 434, "type": "mouseover", "message_id": 146}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 434, "type": "mousemove", "message_id": 147}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 429, "type": "mousemove", "message_id": 148}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 420, "type": "mousemove", "message_id": 149}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 410, "type": "mousemove", "message_id": 150}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 400, "type": "mousemove", "message_id": 151}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 393, "type": "mousemove", "message_id": 152}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 385, "type": "mousemove", "message_id": 153}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 375, "type": "mousemove", "message_id": 154}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 365, "type": "mousemove", "message_id": 155}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 355, "type": "mousemove", "message_id": 156}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 339, "type": "mouseover", "message_id": 157}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 339, "type": "mouseover", "message_id": 158}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 339, "type": "mousemove", "message_id": 159}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 320, "type": "mousemove", "message_id": 160}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 301, "type": "mousemove", "message_id": 161}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 290, "type": "mouseover", "message_id": 162}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 290, "type": "mouseover", "message_id": 163}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 290, "type": "mousemove", "message_id": 164}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 273, "x": 277, "type": "mousemove", "message_id": 165}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 273, "x": 267, "type": "mousemove", "message_id": 166}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 273, "x": 261, "type": "mousemove", "message_id": 167}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 253, "type": "mousemove", "message_id": 168}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 247, "type": "mousemove", "message_id": 169}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 241, "type": "mousemove", "message_id": 170}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 237, "type": "mousemove", "message_id": 171}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 233, "type": "mousemove", "message_id": 172}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 230, "type": "mousemove", "message_id": 173}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 228, "type": "mousemove", "message_id": 174}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 227, "type": "mouseover", "message_id": 175}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 227, "type": "mouseover", "message_id": 176}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 227, "type": "mousemove", "message_id": 177}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 225, "type": "mouseover", "message_id": 178}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 225, "type": "mouseover", "message_id": 179}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 225, "type": "mousemove", "message_id": 180}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 223, "type": "mousemove", "message_id": 181}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 222, "type": "mouseover", "message_id": 182}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 222, "type": "mouseover", "message_id": 183}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 222, "type": "mousemove", "message_id": 184}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 221, "type": "mousemove", "message_id": 185}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 220, "type": "mousemove", "message_id": 186}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 220, "type": "mousemove", "message_id": 187}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 220, "type": "mousedown", "message_id": 188}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 272, "x": 220, "type": "mouseup", "message_id": 189}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 273, "x": 220, "type": "mousemove", "message_id": 194}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 222, "type": "mouseover", "message_id": 195}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 222, "type": "mousemove", "message_id": 197}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 222, "type": "mouseover", "message_id": 196}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 223, "type": "mouseover", "message_id": 199}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 223, "type": "mousemove", "message_id": 200}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 275, "x": 223, "type": "mouseover", "message_id": 198}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 225, "type": "mouseover", "message_id": 201}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 225, "type": "mouseover", "message_id": 202}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 225, "type": "mousemove", "message_id": 203}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 281, "x": 226, "type": "mouseover", "message_id": 204}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 281, "x": 226, "type": "mouseover", "message_id": 205}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 283, "x": 228, "type": "mouseover", "message_id": 207}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 281, "x": 226, "type": "mousemove", "message_id": 206}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 283, "x": 228, "type": "mouseover", "message_id": 208}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 283, "x": 228, "type": "mousemove", "message_id": 209}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 283, "x": 230, "type": "mouseover", "message_id": 210}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 283, "x": 230, "type": "mouseover", "message_id": 211}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 283, "x": 230, "type": "mousemove", "message_id": 212}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 283, "x": 232, "type": "mousemove", "message_id": 213}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 283, "x": 233, "type": "mouseover", "message_id": 214}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 283, "x": 233, "type": "mouseover", "message_id": 215}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 283, "x": 233, "type": "mousemove", "message_id": 216}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 283, "x": 233, "type": "mousemove", "message_id": 217}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 282, "x": 233, "type": "mousemove", "message_id": 218}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 282, "x": 233, "type": "mousemove", "message_id": 219}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 281, "x": 234, "type": "mousemove", "message_id": 220}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 278, "x": 235, "type": "mousemove", "message_id": 221}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 237, "type": "mouseover", "message_id": 222}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 237, "type": "mouseover", "message_id": 223}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 274, "x": 237, "type": "mousemove", "message_id": 224}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 268, "x": 241, "type": "mousemove", "message_id": 225}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 252, "x": 250, "type": "mousemove", "message_id": 227}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 261, "x": 246, "type": "mousemove", "message_id": 226}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 242, "x": 255, "type": "mouseover", "message_id": 229}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 242, "x": 255, "type": "mouseover", "message_id": 228}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 242, "x": 255, "type": "mousemove", "message_id": 230}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 231, "x": 258, "type": "mousemove", "message_id": 231}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 219, "x": 260, "type": "mousemove", "message_id": 232}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 206, "x": 260, "type": "mouseover", "message_id": 233}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 206, "x": 260, "type": "mouseover", "message_id": 234}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 206, "x": 260, "type": "mousemove", "message_id": 235}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 193, "x": 259, "type": "mousemove", "message_id": 236}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 179, "x": 257, "type": "mouseover", "message_id": 237}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 179, "x": 257, "type": "mouseover", "message_id": 238}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 165, "x": 253, "type": "mousemove", "message_id": 240}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 179, "x": 257, "type": "mousemove", "message_id": 239}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 149, "x": 245, "type": "mousemove", "message_id": 241}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 129, "x": 235, "type": "mousemove", "message_id": 242}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 112, "x": 227, "type": "mousemove", "message_id": 243}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 87, "x": 218, "type": "mousemove", "message_id": 244}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 65, "x": 213, "type": "mousemove", "message_id": 245}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 47, "x": 211, "type": "mousemove", "message_id": 246}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 33, "x": 211, "type": "mouseover", "message_id": 247}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 33, "x": 211, "type": "mouseover", "message_id": 248}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 33, "x": 211, "type": "mousemove", "message_id": 249}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 24, "x": 211, "type": "mousemove", "message_id": 250}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 18, "x": 211, "type": "mousemove", "message_id": 251}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 15, "x": 210, "type": "mousemove", "message_id": 252}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 13, "x": 210, "type": "mousemove", "message_id": 253}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 13, "x": 210, "type": "mousemove", "message_id": 254}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 13, "x": 209, "type": "mousemove", "message_id": 255}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 14, "x": 209, "type": "mousemove", "message_id": 256}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 15, "x": 208, "type": "mousemove", "message_id": 257}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 17, "x": 208, "type": "mousemove", "message_id": 258}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 18, "x": 208, "type": "mousemove", "message_id": 259}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 19, "x": 208, "type": "mousemove", "message_id": 260}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 19, "x": 208, "type": "mousemove", "message_id": 261}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 20, "x": 208, "type": "mousemove", "message_id": 262}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 21, "x": 207, "type": "mousemove", "message_id": 263}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 22, "x": 207, "type": "mousemove", "message_id": 264}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 23, "x": 207, "type": "mousemove", "message_id": 265}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 24, "x": 207, "type": "mousemove", "message_id": 266}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 25, "x": 206, "type": "mousemove", "message_id": 267}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 27, "x": 204, "type": "mouseover", "message_id": 268}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 27, "x": 204, "type": "mouseover", "message_id": 269}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 27, "x": 204, "type": "mousemove", "message_id": 270}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 30, "x": 203, "type": "mouseover", "message_id": 271}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 30, "x": 203, "type": "mousemove", "message_id": 273}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 30, "x": 203, "type": "mouseover", "message_id": 272}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 32, "x": 200, "type": "mouseover", "message_id": 274}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 32, "x": 200, "type": "mouseover", "message_id": 275}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 32, "x": 200, "type": "mousemove", "message_id": 276}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 34, "x": 198, "type": "mousemove", "message_id": 277}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 36, "x": 196, "type": "mousemove", "message_id": 278}
|
||||
{"sender": 3692, "msg_type": "MouseEvent", "y": 37, "x": 195, "type": "mouseover", "message_id": 279}
|
||||
962
recordings/test_deploy_destroy.replay
Normal file
962
recordings/test_deploy_destroy.replay
Normal file
@ -0,0 +1,962 @@
|
||||
{"panX": -409.47752934156085, "panY": -220.16629034286456, "scale": 2.609999999999994, "sender": 3699, "msg_type": "ViewPort", "message_id": 0}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 48, "x": 183, "type": "mousemove", "message_id": 1222}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 48, "x": 184, "type": "mousemove", "message_id": 1223}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 49, "x": 186, "type": "mouseover", "message_id": 1224}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 49, "x": 186, "type": "mouseover", "message_id": 1225}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 49, "x": 188, "type": "mousemove", "message_id": 1227}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 49, "x": 186, "type": "mousemove", "message_id": 1226}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 50, "x": 189, "type": "mouseover", "message_id": 1228}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 50, "x": 189, "type": "mouseover", "message_id": 1229}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 50, "x": 189, "type": "mousemove", "message_id": 1230}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 50, "x": 190, "type": "mousemove", "message_id": 1231}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 50, "x": 191, "type": "mousemove", "message_id": 1232}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 51, "x": 191, "type": "mousemove", "message_id": 1233}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 51, "x": 191, "type": "mousemove", "message_id": 1234}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 53, "x": 191, "type": "mousemove", "message_id": 1235}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 55, "x": 191, "type": "mousemove", "message_id": 1236}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 59, "x": 191, "type": "mousemove", "message_id": 1237}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 64, "x": 191, "type": "mousemove", "message_id": 1238}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 69, "x": 192, "type": "mousemove", "message_id": 1239}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 77, "x": 194, "type": "mouseover", "message_id": 1240}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 77, "x": 194, "type": "mouseover", "message_id": 1241}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 77, "x": 194, "type": "mousemove", "message_id": 1242}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 84, "x": 197, "type": "mousemove", "message_id": 1243}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 97, "x": 205, "type": "mousemove", "message_id": 1244}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 111, "x": 216, "type": "mousemove", "message_id": 1245}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 127, "x": 229, "type": "mousemove", "message_id": 1246}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 144, "x": 241, "type": "mousemove", "message_id": 1247}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 161, "x": 250, "type": "mousemove", "message_id": 1248}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 176, "x": 254, "type": "mousemove", "message_id": 1249}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 188, "x": 254, "type": "mouseover", "message_id": 1251}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 188, "x": 254, "type": "mouseover", "message_id": 1250}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 188, "x": 254, "type": "mousemove", "message_id": 1252}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 200, "x": 253, "type": "mousemove", "message_id": 1253}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 213, "x": 249, "type": "mouseover", "message_id": 1254}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 213, "x": 249, "type": "mouseover", "message_id": 1255}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 213, "x": 249, "type": "mousemove", "message_id": 1256}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 224, "x": 245, "type": "mousemove", "message_id": 1257}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 239, "x": 238, "type": "mousemove", "message_id": 1258}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 252, "x": 232, "type": "mousemove", "message_id": 1259}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 262, "x": 226, "type": "mousemove", "message_id": 1260}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 271, "x": 220, "type": "mousemove", "message_id": 1261}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 281, "x": 214, "type": "mousemove", "message_id": 1262}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 289, "x": 209, "type": "mousemove", "message_id": 1263}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 294, "x": 206, "type": "mousemove", "message_id": 1264}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 296, "x": 205, "type": "mouseover", "message_id": 1265}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 296, "x": 205, "type": "mouseover", "message_id": 1266}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 296, "x": 205, "type": "mousemove", "message_id": 1267}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 296, "x": 205, "type": "mousemove", "message_id": 1268}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 295, "x": 205, "type": "mousemove", "message_id": 1269}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 293, "x": 205, "type": "mousemove", "message_id": 1270}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 290, "x": 205, "type": "mousemove", "message_id": 1271}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 286, "x": 204, "type": "mousemove", "message_id": 1272}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 204, "type": "mousemove", "message_id": 1273}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 203, "type": "mousemove", "message_id": 1274}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 203, "type": "mousemove", "message_id": 1275}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 277, "x": 203, "type": "mousemove", "message_id": 1276}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1277}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1278}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 277, "x": 203, "type": "mousedown", "message_id": 1279}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1280}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 1281}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 277, "x": 203, "type": "mouseup", "message_id": 1282}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 2, "delta": 2, "type": "wheel", "message_id": 1283}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 202, "type": "mousemove", "message_id": 1284}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 201, "type": "mousemove", "message_id": 1285}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 200, "type": "mousemove", "message_id": 1286}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 200, "type": "mousemove", "message_id": 1287}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 200, "type": "mousemove", "message_id": 1288}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 200, "type": "mousemove", "message_id": 1289}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 200, "type": "mousemove", "message_id": 1290}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 200, "type": "mousemove", "message_id": 1291}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 286, "x": 200, "type": "mousemove", "message_id": 1292}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 286, "x": 200, "type": "mousemove", "message_id": 1293}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 286, "x": 200, "type": "mousemove", "message_id": 1295}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 286, "x": 200, "type": "mousemove", "message_id": 1294}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 286, "x": 200, "type": "mousemove", "message_id": 1296}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 1297, "altKey": false, "metaKey": false, "key": "s", "ctrlKey": false, "type": "keydown", "keyCode": 83}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 286, "x": 200, "type": "mousemove", "message_id": 1299}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 287, "x": 200, "type": "mousemove", "message_id": 1300}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 287, "x": 203, "type": "mouseover", "message_id": 1301}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 287, "x": 203, "type": "mousemove", "message_id": 1303}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 287, "x": 203, "type": "mouseover", "message_id": 1302}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 288, "x": 209, "type": "mousemove", "message_id": 1304}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 290, "x": 222, "type": "mouseover", "message_id": 1305}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 290, "x": 222, "type": "mouseover", "message_id": 1306}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 291, "x": 241, "type": "mousemove", "message_id": 1308}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 290, "x": 222, "type": "mousemove", "message_id": 1307}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 291, "x": 270, "type": "mouseover", "message_id": 1309}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 291, "x": 270, "type": "mouseover", "message_id": 1310}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 290, "x": 312, "type": "mousemove", "message_id": 1312}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 290, "x": 353, "type": "mouseover", "message_id": 1313}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 291, "x": 270, "type": "mousemove", "message_id": 1311}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 290, "x": 353, "type": "mouseover", "message_id": 1314}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 290, "x": 353, "type": "mousemove", "message_id": 1315}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 287, "x": 440, "type": "mousemove", "message_id": 1317}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 288, "x": 404, "type": "mousemove", "message_id": 1316}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 489, "type": "mousemove", "message_id": 1318}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 526, "type": "mousemove", "message_id": 1319}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 545, "type": "mousemove", "message_id": 1320}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 568, "type": "mousemove", "message_id": 1321}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 584, "type": "mousemove", "message_id": 1322}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 594, "type": "mouseover", "message_id": 1323}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 594, "type": "mouseover", "message_id": 1324}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 594, "type": "mousemove", "message_id": 1325}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 598, "type": "mousemove", "message_id": 1326}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 601, "type": "mousemove", "message_id": 1327}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 602, "type": "mouseover", "message_id": 1329}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 602, "type": "mouseover", "message_id": 1328}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 602, "type": "mousemove", "message_id": 1330}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 603, "type": "mousemove", "message_id": 1331}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 605, "type": "mouseover", "message_id": 1332}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 605, "type": "mouseover", "message_id": 1333}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 605, "type": "mousemove", "message_id": 1334}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 609, "type": "mousemove", "message_id": 1335}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 617, "type": "mousemove", "message_id": 1336}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 624, "type": "mousemove", "message_id": 1337}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 635, "type": "mousemove", "message_id": 1338}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 645, "type": "mousemove", "message_id": 1339}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 652, "type": "mousemove", "message_id": 1340}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 655, "type": "mousemove", "message_id": 1341}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 656, "type": "mouseover", "message_id": 1342}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 656, "type": "mousemove", "message_id": 1344}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 656, "type": "mouseover", "message_id": 1343}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 656, "type": "mousedown", "message_id": 1345}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 656, "type": "mouseup", "message_id": 1346}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 655, "type": "mousemove", "message_id": 1347}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 655, "type": "mousemove", "message_id": 1348}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 655, "type": "mousemove", "message_id": 1349}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 654, "type": "mousemove", "message_id": 1350}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 654, "type": "mousemove", "message_id": 1351}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 654, "type": "mousemove", "message_id": 1352}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 285, "x": 654, "type": "mousemove", "message_id": 1353}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 653, "type": "mousemove", "message_id": 1354}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 653, "type": "mousemove", "message_id": 1355}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 653, "type": "mousemove", "message_id": 1356}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 653, "type": "mousemove", "message_id": 1357}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 1358, "altKey": false, "metaKey": false, "key": "s", "ctrlKey": false, "type": "keydown", "keyCode": 83}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 1360, "altKey": false, "metaKey": false, "key": "l", "ctrlKey": false, "type": "keydown", "keyCode": 76}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 653, "type": "mousedown", "message_id": 1361}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 653, "type": "mouseup", "message_id": 1362}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 648, "type": "mouseover", "message_id": 1364}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 648, "type": "mouseover", "message_id": 1365}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 648, "type": "mousemove", "message_id": 1366}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 635, "type": "mousemove", "message_id": 1367}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 282, "x": 610, "type": "mouseover", "message_id": 1369}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 282, "x": 610, "type": "mouseover", "message_id": 1368}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 282, "x": 610, "type": "mousemove", "message_id": 1370}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 281, "x": 580, "type": "mouseover", "message_id": 1371}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 281, "x": 580, "type": "mouseover", "message_id": 1372}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 281, "x": 580, "type": "mousemove", "message_id": 1373}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 279, "x": 546, "type": "mousemove", "message_id": 1374}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 276, "x": 521, "type": "mousemove", "message_id": 1375}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 487, "type": "mouseover", "message_id": 1376}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 487, "type": "mouseover", "message_id": 1377}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 487, "type": "mousemove", "message_id": 1378}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 272, "x": 459, "type": "mousemove", "message_id": 1379}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 271, "x": 433, "type": "mousemove", "message_id": 1380}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 270, "x": 418, "type": "mouseover", "message_id": 1381}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 270, "x": 418, "type": "mouseover", "message_id": 1382}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 270, "x": 418, "type": "mousemove", "message_id": 1383}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 270, "x": 403, "type": "mousemove", "message_id": 1384}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 269, "x": 395, "type": "mousemove", "message_id": 1385}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 269, "x": 392, "type": "mousemove", "message_id": 1386}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 269, "x": 390, "type": "mousemove", "message_id": 1387}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 270, "x": 389, "type": "mouseover", "message_id": 1388}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 270, "x": 389, "type": "mouseover", "message_id": 1389}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 270, "x": 389, "type": "mousemove", "message_id": 1390}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 270, "x": 389, "type": "mousemove", "message_id": 1391}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 271, "x": 387, "type": "mouseover", "message_id": 1392}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 271, "x": 387, "type": "mouseover", "message_id": 1393}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 271, "x": 387, "type": "mousemove", "message_id": 1394}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 272, "x": 384, "type": "mousemove", "message_id": 1395}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 272, "x": 380, "type": "mousemove", "message_id": 1396}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 376, "type": "mousemove", "message_id": 1397}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 274, "x": 373, "type": "mousemove", "message_id": 1398}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 274, "x": 371, "type": "mousemove", "message_id": 1399}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 275, "x": 367, "type": "mousemove", "message_id": 1400}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 276, "x": 363, "type": "mousemove", "message_id": 1401}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 277, "x": 357, "type": "mousemove", "message_id": 1402}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 277, "x": 351, "type": "mousemove", "message_id": 1403}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 344, "type": "mousemove", "message_id": 1404}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 337, "type": "mousemove", "message_id": 1405}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 332, "type": "mousemove", "message_id": 1406}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 329, "type": "mousemove", "message_id": 1407}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 327, "type": "mousemove", "message_id": 1408}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 326, "type": "mouseover", "message_id": 1409}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 326, "type": "mouseover", "message_id": 1410}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 326, "type": "mousemove", "message_id": 1411}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 325, "type": "mousemove", "message_id": 1412}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 324, "type": "mousemove", "message_id": 1413}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 323, "type": "mousemove", "message_id": 1414}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 321, "type": "mouseover", "message_id": 1415}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 321, "type": "mouseover", "message_id": 1416}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 321, "type": "mousemove", "message_id": 1417}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 320, "type": "mouseover", "message_id": 1418}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 320, "type": "mouseover", "message_id": 1419}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 320, "type": "mousemove", "message_id": 1420}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 318, "type": "mouseover", "message_id": 1421}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 318, "type": "mouseover", "message_id": 1422}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 318, "type": "mousemove", "message_id": 1423}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 317, "type": "mouseover", "message_id": 1424}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 317, "type": "mouseover", "message_id": 1425}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 317, "type": "mousemove", "message_id": 1426}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 317, "type": "mousedown", "message_id": 1427}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 316, "type": "mousemove", "message_id": 1428}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 316, "type": "mouseup", "message_id": 1429}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 279, "x": 316, "type": "mousemove", "message_id": 1434}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 279, "x": 315, "type": "mousemove", "message_id": 1435}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 279, "x": 313, "type": "mouseover", "message_id": 1436}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 279, "x": 313, "type": "mouseover", "message_id": 1437}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 279, "x": 313, "type": "mousemove", "message_id": 1438}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 311, "type": "mousemove", "message_id": 1439}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 310, "type": "mouseover", "message_id": 1440}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 310, "type": "mouseover", "message_id": 1441}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 310, "type": "mousemove", "message_id": 1442}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 309, "type": "mousemove", "message_id": 1443}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 281, "x": 308, "type": "mousemove", "message_id": 1444}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 281, "x": 307, "type": "mousemove", "message_id": 1445}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 282, "x": 304, "type": "mouseover", "message_id": 1446}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 282, "x": 304, "type": "mouseover", "message_id": 1447}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 282, "x": 304, "type": "mousemove", "message_id": 1448}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 282, "x": 300, "type": "mousemove", "message_id": 1449}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 296, "type": "mousemove", "message_id": 1450}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 291, "type": "mousemove", "message_id": 1451}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 288, "type": "mousemove", "message_id": 1452}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 287, "type": "mouseover", "message_id": 1453}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 287, "type": "mouseover", "message_id": 1454}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 287, "type": "mousemove", "message_id": 1455}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 286, "type": "mousemove", "message_id": 1456}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 284, "type": "mouseover", "message_id": 1457}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 284, "type": "mouseover", "message_id": 1458}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 284, "type": "mousemove", "message_id": 1459}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 283, "type": "mouseover", "message_id": 1460}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 283, "type": "mouseover", "message_id": 1461}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 283, "type": "mousemove", "message_id": 1462}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 280, "type": "mouseover", "message_id": 1463}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 280, "type": "mouseover", "message_id": 1464}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 280, "type": "mousemove", "message_id": 1465}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 274, "type": "mousemove", "message_id": 1467}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 277, "type": "mousemove", "message_id": 1466}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 272, "type": "mousemove", "message_id": 1468}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 270, "type": "mousemove", "message_id": 1469}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 269, "type": "mouseover", "message_id": 1470}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 269, "type": "mouseover", "message_id": 1471}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 269, "type": "mousemove", "message_id": 1472}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 268, "type": "mousemove", "message_id": 1473}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 268, "type": "mousemove", "message_id": 1474}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 284, "x": 268, "type": "mousemove", "message_id": 1475}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 268, "type": "mousemove", "message_id": 1476}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 268, "type": "mousemove", "message_id": 1477}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 283, "x": 268, "type": "mousemove", "message_id": 1478}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 282, "x": 268, "type": "mousemove", "message_id": 1479}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 281, "x": 268, "type": "mousemove", "message_id": 1480}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 281, "x": 268, "type": "mousemove", "message_id": 1481}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 268, "type": "mousemove", "message_id": 1482}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 268, "type": "mousemove", "message_id": 1483}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 268, "type": "mousedown", "message_id": 1484}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 268, "type": "mouseup", "message_id": 1486}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 269, "type": "mousemove", "message_id": 1487}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 270, "type": "mousemove", "message_id": 1488}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 270, "type": "mousemove", "message_id": 1489}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 271, "type": "mousemove", "message_id": 1490}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 271, "type": "mousemove", "message_id": 1491}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 271, "type": "mousemove", "message_id": 1492}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 271, "type": "mousemove", "message_id": 1493}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 271, "type": "mousedown", "message_id": 1494}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 271, "type": "mouseup", "message_id": 1497}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 1498, "altKey": false, "metaKey": false, "key": "1", "ctrlKey": false, "type": "keydown", "keyCode": 49}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 271, "type": "mousemove", "message_id": 1500}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 273, "type": "mouseover", "message_id": 1501}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 273, "type": "mousemove", "message_id": 1503}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 273, "type": "mouseover", "message_id": 1502}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 276, "type": "mousemove", "message_id": 1504}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 279, "x": 278, "type": "mousemove", "message_id": 1505}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 279, "x": 281, "type": "mousemove", "message_id": 1506}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 279, "x": 283, "type": "mousemove", "message_id": 1507}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 279, "x": 287, "type": "mousemove", "message_id": 1508}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 279, "x": 294, "type": "mousemove", "message_id": 1509}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 278, "x": 306, "type": "mousemove", "message_id": 1510}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 277, "x": 326, "type": "mouseover", "message_id": 1511}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 277, "x": 326, "type": "mouseover", "message_id": 1512}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 277, "x": 326, "type": "mousemove", "message_id": 1513}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 275, "x": 355, "type": "mouseover", "message_id": 1515}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 275, "x": 355, "type": "mouseover", "message_id": 1514}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 275, "x": 355, "type": "mousemove", "message_id": 1516}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 271, "x": 395, "type": "mousemove", "message_id": 1517}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 265, "x": 443, "type": "mousemove", "message_id": 1518}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 262, "x": 475, "type": "mousemove", "message_id": 1519}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 259, "x": 521, "type": "mouseover", "message_id": 1520}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 259, "x": 521, "type": "mouseover", "message_id": 1521}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 259, "x": 521, "type": "mousemove", "message_id": 1522}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 255, "x": 565, "type": "mouseover", "message_id": 1523}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 255, "x": 565, "type": "mouseover", "message_id": 1524}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 255, "x": 565, "type": "mousemove", "message_id": 1525}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 252, "x": 603, "type": "mouseover", "message_id": 1526}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 252, "x": 603, "type": "mousemove", "message_id": 1528}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 252, "x": 603, "type": "mouseover", "message_id": 1527}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 626, "type": "mousemove", "message_id": 1529}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 650, "type": "mousemove", "message_id": 1530}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 664, "type": "mouseover", "message_id": 1531}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 664, "type": "mouseover", "message_id": 1532}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 664, "type": "mousemove", "message_id": 1533}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 671, "type": "mousemove", "message_id": 1534}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 675, "type": "mousemove", "message_id": 1535}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 678, "type": "mousemove", "message_id": 1536}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 679, "type": "mouseover", "message_id": 1537}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 679, "type": "mouseover", "message_id": 1538}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 679, "type": "mousemove", "message_id": 1539}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 680, "type": "mousemove", "message_id": 1540}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 681, "type": "mousemove", "message_id": 1541}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 681, "type": "mousemove", "message_id": 1542}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 682, "type": "mousemove", "message_id": 1543}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 682, "type": "mousedown", "message_id": 1544}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 682, "type": "mouseup", "message_id": 1547}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 682, "type": "mousedown", "message_id": 1548}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 682, "type": "mouseup", "message_id": 1551}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 1552, "altKey": false, "metaKey": false, "key": "2", "ctrlKey": false, "type": "keydown", "keyCode": 50}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 681, "type": "mousemove", "message_id": 1554}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 680, "type": "mousemove", "message_id": 1555}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 678, "type": "mouseover", "message_id": 1556}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 678, "type": "mouseover", "message_id": 1557}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 678, "type": "mousemove", "message_id": 1558}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 252, "x": 674, "type": "mousemove", "message_id": 1559}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 254, "x": 669, "type": "mouseover", "message_id": 1560}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 254, "x": 669, "type": "mouseover", "message_id": 1561}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 254, "x": 669, "type": "mousemove", "message_id": 1562}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 255, "x": 664, "type": "mouseover", "message_id": 1563}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 255, "x": 664, "type": "mouseover", "message_id": 1564}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 255, "x": 664, "type": "mousemove", "message_id": 1565}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 255, "x": 655, "type": "mousemove", "message_id": 1566}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 255, "x": 643, "type": "mousemove", "message_id": 1567}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 255, "x": 626, "type": "mouseover", "message_id": 1568}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 255, "x": 626, "type": "mouseover", "message_id": 1569}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 255, "x": 611, "type": "mouseover", "message_id": 1571}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 255, "x": 626, "type": "mousemove", "message_id": 1570}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 255, "x": 611, "type": "mouseover", "message_id": 1572}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 255, "x": 611, "type": "mousemove", "message_id": 1573}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 254, "x": 598, "type": "mousemove", "message_id": 1574}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 254, "x": 590, "type": "mousemove", "message_id": 1575}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 254, "x": 584, "type": "mousemove", "message_id": 1576}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 254, "x": 580, "type": "mousemove", "message_id": 1577}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 254, "x": 574, "type": "mousemove", "message_id": 1578}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 253, "x": 566, "type": "mousemove", "message_id": 1579}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 555, "type": "mouseover", "message_id": 1580}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 555, "type": "mouseover", "message_id": 1581}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 555, "type": "mousemove", "message_id": 1582}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 247, "x": 542, "type": "mousemove", "message_id": 1583}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 244, "x": 529, "type": "mouseover", "message_id": 1584}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 244, "x": 529, "type": "mouseover", "message_id": 1585}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 244, "x": 529, "type": "mousemove", "message_id": 1586}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 241, "x": 516, "type": "mouseover", "message_id": 1587}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 241, "x": 516, "type": "mouseover", "message_id": 1588}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 241, "x": 516, "type": "mousemove", "message_id": 1589}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 238, "x": 503, "type": "mouseover", "message_id": 1590}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 238, "x": 503, "type": "mouseover", "message_id": 1591}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 238, "x": 503, "type": "mousemove", "message_id": 1592}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 237, "x": 493, "type": "mouseover", "message_id": 1593}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 237, "x": 493, "type": "mouseover", "message_id": 1594}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 237, "x": 493, "type": "mousemove", "message_id": 1595}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 236, "x": 486, "type": "mousemove", "message_id": 1596}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 235, "x": 484, "type": "mousemove", "message_id": 1597}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 234, "x": 482, "type": "mousemove", "message_id": 1598}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 233, "x": 481, "type": "mouseover", "message_id": 1599}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 233, "x": 481, "type": "mouseover", "message_id": 1600}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 233, "x": 481, "type": "mousemove", "message_id": 1601}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 233, "x": 481, "type": "mousemove", "message_id": 1602}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 233, "x": 481, "type": "mousemove", "message_id": 1603}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 233, "x": 481, "type": "mousedown", "message_id": 1604}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 233, "x": 481, "type": "mouseup", "message_id": 1606}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 233, "x": 481, "type": "mousemove", "message_id": 1607}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 234, "x": 481, "type": "mousemove", "message_id": 1608}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 234, "x": 481, "type": "mousemove", "message_id": 1609}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 235, "x": 481, "type": "mousemove", "message_id": 1610}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 236, "x": 481, "type": "mousemove", "message_id": 1611}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 238, "x": 479, "type": "mouseover", "message_id": 1612}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 238, "x": 479, "type": "mouseover", "message_id": 1613}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 240, "x": 476, "type": "mousemove", "message_id": 1615}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 238, "x": 479, "type": "mousemove", "message_id": 1614}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 243, "x": 473, "type": "mousemove", "message_id": 1616}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 246, "x": 469, "type": "mousemove", "message_id": 1617}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 250, "x": 464, "type": "mousemove", "message_id": 1618}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 256, "x": 459, "type": "mousemove", "message_id": 1619}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 261, "x": 454, "type": "mousemove", "message_id": 1620}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 266, "x": 449, "type": "mousemove", "message_id": 1621}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 270, "x": 445, "type": "mousemove", "message_id": 1622}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 272, "x": 442, "type": "mousemove", "message_id": 1623}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 440, "type": "mouseover", "message_id": 1624}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 440, "type": "mouseover", "message_id": 1625}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 274, "x": 440, "type": "mouseover", "message_id": 1627}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 440, "type": "mousemove", "message_id": 1626}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 274, "x": 440, "type": "mouseover", "message_id": 1628}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 274, "x": 440, "type": "mousemove", "message_id": 1629}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 274, "x": 440, "type": "mousemove", "message_id": 1630}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 274, "x": 440, "type": "mousemove", "message_id": 1631}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 440, "type": "mousemove", "message_id": 1632}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 272, "x": 439, "type": "mousemove", "message_id": 1633}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 271, "x": 439, "type": "mousemove", "message_id": 1634}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 270, "x": 439, "type": "mousemove", "message_id": 1635}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 268, "x": 439, "type": "mousemove", "message_id": 1636}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 267, "x": 440, "type": "mousemove", "message_id": 1637}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 265, "x": 440, "type": "mousemove", "message_id": 1638}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 264, "x": 440, "type": "mousemove", "message_id": 1639}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 264, "x": 440, "type": "mousemove", "message_id": 1640}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 263, "x": 440, "type": "mousemove", "message_id": 1641}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 263, "x": 440, "type": "mousemove", "message_id": 1642}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1643}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -5, "delta": -5, "type": "wheel", "message_id": 1644}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -6, "delta": -6, "type": "wheel", "message_id": 1645}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -6, "delta": -6, "type": "wheel", "message_id": 1646}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -3, "deltaY": -7, "delta": -7, "type": "wheel", "message_id": 1647}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -6, "delta": -6, "type": "wheel", "message_id": 1648}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -3, "deltaY": -4, "delta": -4, "type": "wheel", "message_id": 1649}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 1650}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -6, "delta": -6, "type": "wheel", "message_id": 1651}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -2, "deltaY": -5, "delta": -5, "type": "wheel", "message_id": 1652}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -2, "deltaY": -3, "delta": -3, "type": "wheel", "message_id": 1653}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -3, "delta": -3, "type": "wheel", "message_id": 1654}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 1655}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1656}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1657}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 263, "x": 440, "type": "mousemove", "message_id": 1658}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1659}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": 0, "delta": 1, "type": "wheel", "message_id": 1660}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1661}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1663}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1662}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 1664}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 263, "x": 439, "type": "mousemove", "message_id": 1665}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1666}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 264, "x": 439, "type": "mousemove", "message_id": 1667}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 264, "x": 439, "type": "mousemove", "message_id": 1668}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1669}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": 0, "delta": 1, "type": "wheel", "message_id": 1670}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1671}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1672}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1673}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1674}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1675}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 264, "x": 439, "type": "mousemove", "message_id": 1676}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 1677}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 264, "x": 439, "type": "mousemove", "message_id": 1678}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1679}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 264, "x": 439, "type": "mousemove", "message_id": 1680}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -3, "delta": -3, "type": "wheel", "message_id": 1681}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -2, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 1682}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -3, "delta": -3, "type": "wheel", "message_id": 1683}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -3, "delta": -3, "type": "wheel", "message_id": 1684}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -2, "deltaY": -3, "delta": -3, "type": "wheel", "message_id": 1685}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -3, "delta": -3, "type": "wheel", "message_id": 1686}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -3, "delta": -3, "type": "wheel", "message_id": 1687}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 264, "x": 440, "type": "mousemove", "message_id": 1688}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 264, "x": 443, "type": "mouseover", "message_id": 1689}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 264, "x": 443, "type": "mouseover", "message_id": 1690}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 264, "x": 443, "type": "mousemove", "message_id": 1691}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 264, "x": 448, "type": "mousemove", "message_id": 1692}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 265, "x": 454, "type": "mousemove", "message_id": 1693}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 266, "x": 460, "type": "mousemove", "message_id": 1694}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 266, "x": 468, "type": "mousemove", "message_id": 1695}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 266, "x": 478, "type": "mousemove", "message_id": 1696}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 265, "x": 492, "type": "mousemove", "message_id": 1697}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 265, "x": 510, "type": "mouseover", "message_id": 1698}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 265, "x": 510, "type": "mousemove", "message_id": 1700}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 265, "x": 510, "type": "mouseover", "message_id": 1699}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 265, "x": 523, "type": "mouseover", "message_id": 1701}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 265, "x": 523, "type": "mouseover", "message_id": 1702}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 265, "x": 523, "type": "mousemove", "message_id": 1703}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 265, "x": 535, "type": "mousemove", "message_id": 1704}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 266, "x": 542, "type": "mousemove", "message_id": 1705}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 267, "x": 546, "type": "mousemove", "message_id": 1706}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 267, "x": 549, "type": "mousemove", "message_id": 1707}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 267, "x": 549, "type": "mouseover", "message_id": 1708}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 267, "x": 549, "type": "mouseover", "message_id": 1709}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 267, "x": 549, "type": "mousemove", "message_id": 1710}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 267, "x": 550, "type": "mousemove", "message_id": 1711}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 268, "x": 550, "type": "mousemove", "message_id": 1712}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 268, "x": 550, "type": "mousemove", "message_id": 1713}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 268, "x": 551, "type": "mousemove", "message_id": 1714}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 268, "x": 552, "type": "mousemove", "message_id": 1715}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 269, "x": 555, "type": "mouseover", "message_id": 1716}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 269, "x": 555, "type": "mouseover", "message_id": 1717}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 269, "x": 555, "type": "mousemove", "message_id": 1718}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 269, "x": 555, "type": "mouseover", "message_id": 1719}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 269, "x": 555, "type": "mouseover", "message_id": 1720}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 269, "x": 555, "type": "mousedown", "message_id": 1721}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 269, "x": 561, "type": "mouseover", "message_id": 1723}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 269, "x": 561, "type": "mouseover", "message_id": 1724}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 269, "x": 561, "type": "mousemove", "message_id": 1725}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 270, "x": 569, "type": "mousemove", "message_id": 1726}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 270, "x": 578, "type": "mousemove", "message_id": 1728}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 271, "x": 589, "type": "mousemove", "message_id": 1730}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 272, "x": 602, "type": "mousemove", "message_id": 1732}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 272, "x": 613, "type": "mousemove", "message_id": 1734}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 624, "type": "mousemove", "message_id": 1736}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 633, "type": "mousemove", "message_id": 1738}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 642, "type": "mousemove", "message_id": 1740}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 649, "type": "mousemove", "message_id": 1742}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 653, "type": "mousemove", "message_id": 1744}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 655, "type": "mousemove", "message_id": 1746}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 656, "type": "mouseover", "message_id": 1748}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 656, "type": "mouseover", "message_id": 1749}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 656, "type": "mousemove", "message_id": 1750}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 657, "type": "mousemove", "message_id": 1752}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 657, "type": "mousemove", "message_id": 1754}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 658, "type": "mousemove", "message_id": 1756}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 659, "type": "mousemove", "message_id": 1758}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 660, "type": "mousemove", "message_id": 1760}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 661, "type": "mousemove", "message_id": 1762}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 662, "type": "mousemove", "message_id": 1764}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 662, "type": "mousemove", "message_id": 1766}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 662, "type": "mouseup", "message_id": 1768}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 662, "type": "mousemove", "message_id": 1769}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 661, "type": "mousemove", "message_id": 1770}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 658, "type": "mouseover", "message_id": 1771}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 658, "type": "mouseover", "message_id": 1772}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 658, "type": "mousemove", "message_id": 1773}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 273, "x": 655, "type": "mousemove", "message_id": 1774}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 272, "x": 651, "type": "mousemove", "message_id": 1775}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 271, "x": 642, "type": "mousemove", "message_id": 1776}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 268, "x": 627, "type": "mousemove", "message_id": 1779}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 268, "x": 627, "type": "mouseover", "message_id": 1777}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 268, "x": 627, "type": "mouseover", "message_id": 1778}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 265, "x": 612, "type": "mouseover", "message_id": 1780}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 265, "x": 612, "type": "mouseover", "message_id": 1781}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 265, "x": 612, "type": "mousemove", "message_id": 1782}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 260, "x": 593, "type": "mouseover", "message_id": 1783}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 260, "x": 593, "type": "mouseover", "message_id": 1784}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 260, "x": 593, "type": "mousemove", "message_id": 1785}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 254, "x": 574, "type": "mouseover", "message_id": 1786}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 254, "x": 574, "type": "mouseover", "message_id": 1787}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 254, "x": 574, "type": "mousemove", "message_id": 1788}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 242, "x": 549, "type": "mousemove", "message_id": 1790}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 248, "x": 559, "type": "mousemove", "message_id": 1789}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 238, "x": 542, "type": "mousemove", "message_id": 1791}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 234, "x": 537, "type": "mousemove", "message_id": 1792}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 230, "x": 531, "type": "mousemove", "message_id": 1793}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 226, "x": 526, "type": "mousemove", "message_id": 1794}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 223, "x": 521, "type": "mousemove", "message_id": 1795}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 221, "x": 520, "type": "mouseover", "message_id": 1796}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 221, "x": 520, "type": "mouseover", "message_id": 1797}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 221, "x": 520, "type": "mousemove", "message_id": 1798}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 220, "x": 519, "type": "mousemove", "message_id": 1799}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 219, "x": 519, "type": "mousemove", "message_id": 1800}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 219, "x": 519, "type": "mousemove", "message_id": 1801}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 219, "x": 519, "type": "mousemove", "message_id": 1802}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 219, "x": 519, "type": "mousedown", "message_id": 1803}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 219, "x": 519, "type": "mouseup", "message_id": 1805}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 219, "x": 519, "type": "mousemove", "message_id": 1806}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 219, "x": 518, "type": "mousemove", "message_id": 1807}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 219, "x": 518, "type": "mousemove", "message_id": 1808}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 219, "x": 518, "type": "mousemove", "message_id": 1809}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 219, "x": 518, "type": "mousemove", "message_id": 1810}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 219, "x": 518, "type": "mousemove", "message_id": 1811}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 218, "x": 517, "type": "mousemove", "message_id": 1812}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 217, "x": 516, "type": "mousemove", "message_id": 1813}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 215, "x": 514, "type": "mouseover", "message_id": 1814}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 215, "x": 514, "type": "mouseover", "message_id": 1815}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 214, "x": 513, "type": "mouseover", "message_id": 1817}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 215, "x": 514, "type": "mousemove", "message_id": 1816}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 214, "x": 513, "type": "mouseover", "message_id": 1818}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 214, "x": 513, "type": "mousemove", "message_id": 1819}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 212, "x": 511, "type": "mouseover", "message_id": 1820}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 212, "x": 511, "type": "mouseover", "message_id": 1821}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 212, "x": 511, "type": "mousemove", "message_id": 1822}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 211, "x": 508, "type": "mouseover", "message_id": 1823}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 211, "x": 508, "type": "mouseover", "message_id": 1824}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 211, "x": 508, "type": "mousemove", "message_id": 1825}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 209, "x": 507, "type": "mouseover", "message_id": 1826}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 209, "x": 507, "type": "mouseover", "message_id": 1827}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 209, "x": 507, "type": "mousemove", "message_id": 1828}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 208, "x": 506, "type": "mousemove", "message_id": 1829}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 208, "x": 505, "type": "mousemove", "message_id": 1830}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 207, "x": 505, "type": "mousemove", "message_id": 1831}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 206, "x": 505, "type": "mousemove", "message_id": 1832}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 205, "x": 505, "type": "mousemove", "message_id": 1833}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 205, "x": 505, "type": "mousemove", "message_id": 1834}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 204, "x": 505, "type": "mousemove", "message_id": 1835}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 204, "x": 504, "type": "mousemove", "message_id": 1836}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 204, "x": 504, "type": "mousemove", "message_id": 1837}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 205, "x": 504, "type": "mousemove", "message_id": 1838}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 205, "x": 504, "type": "mousedown", "message_id": 1839}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 206, "x": 502, "type": "mouseover", "message_id": 1840}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 206, "x": 502, "type": "mouseover", "message_id": 1841}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 206, "x": 502, "type": "mousemove", "message_id": 1842}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 209, "x": 500, "type": "mouseover", "message_id": 1843}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 209, "x": 500, "type": "mouseover", "message_id": 1844}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 209, "x": 500, "type": "mousemove", "message_id": 1845}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 217, "x": 493, "type": "mousemove", "message_id": 1847}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 212, "x": 497, "type": "mousemove", "message_id": 1846}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 222, "x": 487, "type": "mousemove", "message_id": 1848}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 229, "x": 480, "type": "mousemove", "message_id": 1849}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 235, "x": 475, "type": "mousemove", "message_id": 1850}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 241, "x": 470, "type": "mousemove", "message_id": 1851}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 248, "x": 466, "type": "mousemove", "message_id": 1852}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 255, "x": 462, "type": "mousemove", "message_id": 1853}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 262, "x": 458, "type": "mousemove", "message_id": 1854}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 266, "x": 454, "type": "mousemove", "message_id": 1855}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 270, "x": 451, "type": "mousemove", "message_id": 1856}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 271, "x": 449, "type": "mouseover", "message_id": 1857}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 271, "x": 449, "type": "mousemove", "message_id": 1859}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 271, "x": 449, "type": "mouseover", "message_id": 1858}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 272, "x": 449, "type": "mouseover", "message_id": 1860}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 272, "x": 449, "type": "mouseover", "message_id": 1861}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 272, "x": 449, "type": "mousemove", "message_id": 1862}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 272, "x": 449, "type": "mousemove", "message_id": 1863}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 272, "x": 449, "type": "mouseup", "message_id": 1864}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 272, "x": 449, "type": "mousemove", "message_id": 1865}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 272, "x": 449, "type": "mousemove", "message_id": 1866}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 271, "x": 448, "type": "mousemove", "message_id": 1867}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 270, "x": 447, "type": "mousemove", "message_id": 1868}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 270, "x": 445, "type": "mouseover", "message_id": 1869}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 270, "x": 445, "type": "mouseover", "message_id": 1870}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 270, "x": 445, "type": "mousemove", "message_id": 1871}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 269, "x": 443, "type": "mousemove", "message_id": 1872}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 268, "x": 439, "type": "mousemove", "message_id": 1873}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 266, "x": 433, "type": "mouseover", "message_id": 1874}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 266, "x": 433, "type": "mouseover", "message_id": 1875}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 266, "x": 433, "type": "mousemove", "message_id": 1876}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 265, "x": 426, "type": "mouseover", "message_id": 1877}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 265, "x": 426, "type": "mouseover", "message_id": 1878}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 265, "x": 426, "type": "mousemove", "message_id": 1879}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 264, "x": 417, "type": "mousemove", "message_id": 1880}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 262, "x": 411, "type": "mouseover", "message_id": 1881}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 262, "x": 411, "type": "mouseover", "message_id": 1882}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 262, "x": 411, "type": "mousemove", "message_id": 1883}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 261, "x": 407, "type": "mouseover", "message_id": 1884}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 261, "x": 407, "type": "mouseover", "message_id": 1885}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 261, "x": 407, "type": "mousemove", "message_id": 1886}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 260, "x": 406, "type": "mouseover", "message_id": 1887}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 260, "x": 406, "type": "mouseover", "message_id": 1888}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 260, "x": 406, "type": "mousemove", "message_id": 1889}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 260, "x": 407, "type": "mousemove", "message_id": 1890}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 260, "x": 407, "type": "mousemove", "message_id": 1891}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 260, "x": 407, "type": "mousemove", "message_id": 1892}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 260, "x": 408, "type": "mousemove", "message_id": 1893}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 260, "x": 408, "type": "mousemove", "message_id": 1894}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 260, "x": 409, "type": "mousemove", "message_id": 1895}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 260, "x": 409, "type": "mousemove", "message_id": 1896}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 259, "x": 409, "type": "mousemove", "message_id": 1897}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 258, "x": 409, "type": "mousemove", "message_id": 1898}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 257, "x": 409, "type": "mousemove", "message_id": 1899}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 255, "x": 408, "type": "mousemove", "message_id": 1900}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 254, "x": 407, "type": "mousemove", "message_id": 1901}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 252, "x": 405, "type": "mouseover", "message_id": 1902}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 252, "x": 405, "type": "mouseover", "message_id": 1903}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 252, "x": 405, "type": "mousemove", "message_id": 1904}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 250, "x": 404, "type": "mouseover", "message_id": 1906}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 250, "x": 404, "type": "mouseover", "message_id": 1905}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 250, "x": 404, "type": "mousemove", "message_id": 1907}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 248, "x": 402, "type": "mouseover", "message_id": 1908}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 248, "x": 402, "type": "mouseover", "message_id": 1909}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 248, "x": 402, "type": "mousemove", "message_id": 1910}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 247, "x": 401, "type": "mouseover", "message_id": 1911}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 247, "x": 401, "type": "mouseover", "message_id": 1912}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 247, "x": 401, "type": "mousemove", "message_id": 1913}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 246, "x": 400, "type": "mousemove", "message_id": 1914}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 244, "x": 399, "type": "mousemove", "message_id": 1915}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 243, "x": 398, "type": "mousemove", "message_id": 1916}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 243, "x": 398, "type": "mousemove", "message_id": 1917}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 243, "x": 397, "type": "mousemove", "message_id": 1918}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 241, "x": 396, "type": "mousemove", "message_id": 1919}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 238, "x": 392, "type": "mouseover", "message_id": 1920}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 238, "x": 392, "type": "mouseover", "message_id": 1921}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 238, "x": 392, "type": "mousemove", "message_id": 1922}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 233, "x": 387, "type": "mousemove", "message_id": 1923}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 226, "x": 379, "type": "mousemove", "message_id": 1924}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 216, "x": 366, "type": "mousemove", "message_id": 1925}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 204, "x": 347, "type": "mousemove", "message_id": 1926}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 193, "x": 329, "type": "mousemove", "message_id": 1927}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 178, "x": 301, "type": "mousemove", "message_id": 1928}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 161, "x": 270, "type": "mousemove", "message_id": 1929}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 147, "x": 239, "type": "mousemove", "message_id": 1930}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 132, "x": 206, "type": "mousemove", "message_id": 1931}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 119, "x": 177, "type": "mousemove", "message_id": 1932}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 106, "x": 149, "type": "mousemove", "message_id": 1933}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 93, "x": 126, "type": "mousemove", "message_id": 1934}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 82, "x": 109, "type": "mousemove", "message_id": 1935}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 73, "x": 96, "type": "mousemove", "message_id": 1936}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 68, "x": 91, "type": "mousemove", "message_id": 1937}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 63, "x": 87, "type": "mousemove", "message_id": 1938}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 59, "x": 85, "type": "mouseover", "message_id": 1939}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 59, "x": 85, "type": "mouseover", "message_id": 1940}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 59, "x": 85, "type": "mousemove", "message_id": 1941}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 57, "x": 84, "type": "mouseover", "message_id": 1943}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 57, "x": 84, "type": "mouseover", "message_id": 1942}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 57, "x": 84, "type": "mousemove", "message_id": 1944}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 54, "x": 82, "type": "mousemove", "message_id": 1946}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 55, "x": 83, "type": "mousemove", "message_id": 1945}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 53, "x": 80, "type": "mouseover", "message_id": 1948}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 53, "x": 80, "type": "mouseover", "message_id": 1947}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 53, "x": 80, "type": "mousemove", "message_id": 1949}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 79, "type": "mouseover", "message_id": 1951}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 79, "type": "mouseover", "message_id": 1950}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 79, "type": "mousemove", "message_id": 1952}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 78, "type": "mousemove", "message_id": 1953}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 78, "type": "mousemove", "message_id": 1954}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 79, "type": "mousemove", "message_id": 1955}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 79, "type": "mousemove", "message_id": 1956}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 79, "type": "mousemove", "message_id": 1957}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 78, "type": "mousemove", "message_id": 1958}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 75, "type": "mouseover", "message_id": 1959}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 75, "type": "mouseover", "message_id": 1960}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 75, "type": "mousemove", "message_id": 1961}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 71, "type": "mousemove", "message_id": 1962}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 66, "type": "mousemove", "message_id": 1963}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 63, "type": "mousemove", "message_id": 1964}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 51, "x": 61, "type": "mousemove", "message_id": 1965}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 51, "x": 60, "type": "mouseover", "message_id": 1966}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 51, "x": 60, "type": "mouseover", "message_id": 1967}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 51, "x": 60, "type": "mousemove", "message_id": 1968}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 51, "x": 60, "type": "mousemove", "message_id": 1969}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 51, "x": 59, "type": "mousemove", "message_id": 1970}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 51, "x": 58, "type": "mousemove", "message_id": 1971}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 50, "x": 58, "type": "mousemove", "message_id": 1972}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 50, "x": 57, "type": "mousemove", "message_id": 1973}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 49, "x": 56, "type": "mousemove", "message_id": 1974}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 49, "x": 55, "type": "mousemove", "message_id": 1975}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 48, "x": 54, "type": "mousemove", "message_id": 1976}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 48, "x": 53, "type": "mousemove", "message_id": 1977}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 47, "x": 52, "type": "mousemove", "message_id": 1978}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 47, "x": 51, "type": "mousemove", "message_id": 1979}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 46, "x": 50, "type": "mousemove", "message_id": 1980}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 46, "x": 50, "type": "mousemove", "message_id": 1981}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 46, "x": 50, "type": "mousemove", "message_id": 1982}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 46, "x": 50, "type": "mousemove", "message_id": 1983}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 46, "x": 49, "type": "mousemove", "message_id": 1984}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 45, "x": 48, "type": "mousemove", "message_id": 1985}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 45, "x": 48, "type": "mousemove", "message_id": 1986}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 45, "x": 48, "type": "mousemove", "message_id": 1987}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 45, "x": 47, "type": "mousemove", "message_id": 1988}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 45, "x": 47, "type": "mousedown", "message_id": 1989}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 44, "x": 47, "type": "mousemove", "message_id": 1990}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 44, "x": 47, "type": "mouseup", "message_id": 1991}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 43, "x": 46, "type": "mousemove", "message_id": 1993}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 42, "x": 45, "type": "mousemove", "message_id": 1994}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 42, "x": 45, "type": "mousemove", "message_id": 1995}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 42, "x": 45, "type": "mousemove", "message_id": 1996}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 42, "x": 46, "type": "mousemove", "message_id": 1997}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 42, "x": 46, "type": "mousemove", "message_id": 1998}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 42, "x": 46, "type": "mousemove", "message_id": 1999}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 43, "x": 47, "type": "mousemove", "message_id": 2000}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 43, "x": 48, "type": "mousemove", "message_id": 2001}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 43, "x": 48, "type": "mousemove", "message_id": 2002}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 43, "x": 49, "type": "mousemove", "message_id": 2003}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 43, "x": 49, "type": "mousemove", "message_id": 2004}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 44, "x": 50, "type": "mousemove", "message_id": 2005}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 44, "x": 51, "type": "mousemove", "message_id": 2006}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 44, "x": 52, "type": "mousemove", "message_id": 2007}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 45, "x": 54, "type": "mouseover", "message_id": 2008}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 45, "x": 54, "type": "mouseover", "message_id": 2009}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 45, "x": 54, "type": "mousemove", "message_id": 2010}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 47, "x": 60, "type": "mousemove", "message_id": 2012}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 46, "x": 57, "type": "mousemove", "message_id": 2011}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 48, "x": 62, "type": "mousemove", "message_id": 2013}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 48, "x": 62, "type": "mouseover", "message_id": 2014}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 48, "x": 62, "type": "mousemove", "message_id": 2016}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 48, "x": 62, "type": "mouseover", "message_id": 2015}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 48, "x": 63, "type": "mousemove", "message_id": 2017}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 49, "x": 63, "type": "mousemove", "message_id": 2018}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 49, "x": 64, "type": "mousemove", "message_id": 2019}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 49, "x": 64, "type": "mousemove", "message_id": 2020}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 50, "x": 65, "type": "mousemove", "message_id": 2021}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 50, "x": 65, "type": "mousemove", "message_id": 2022}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 50, "x": 65, "type": "mousemove", "message_id": 2023}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 50, "x": 65, "type": "mousemove", "message_id": 2024}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 51, "x": 65, "type": "mousemove", "message_id": 2025}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 51, "x": 65, "type": "mousemove", "message_id": 2026}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 65, "type": "mousemove", "message_id": 2027}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 53, "x": 66, "type": "mousemove", "message_id": 2028}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 54, "x": 67, "type": "mousemove", "message_id": 2029}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 56, "x": 69, "type": "mouseover", "message_id": 2030}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 56, "x": 69, "type": "mouseover", "message_id": 2031}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 56, "x": 69, "type": "mousemove", "message_id": 2032}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 57, "x": 72, "type": "mouseover", "message_id": 2033}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 57, "x": 72, "type": "mouseover", "message_id": 2034}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 57, "x": 72, "type": "mousemove", "message_id": 2035}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 60, "x": 76, "type": "mouseover", "message_id": 2036}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 60, "x": 76, "type": "mouseover", "message_id": 2037}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 60, "x": 76, "type": "mousemove", "message_id": 2038}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 64, "x": 81, "type": "mousemove", "message_id": 2039}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 70, "x": 92, "type": "mousemove", "message_id": 2040}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 77, "x": 106, "type": "mousemove", "message_id": 2041}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 85, "x": 127, "type": "mousemove", "message_id": 2042}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 94, "x": 150, "type": "mousemove", "message_id": 2043}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 100, "x": 171, "type": "mousemove", "message_id": 2044}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 104, "x": 188, "type": "mousemove", "message_id": 2045}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 107, "x": 200, "type": "mousemove", "message_id": 2046}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 108, "x": 208, "type": "mouseover", "message_id": 2047}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 108, "x": 208, "type": "mouseover", "message_id": 2048}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 108, "x": 208, "type": "mousemove", "message_id": 2049}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 110, "x": 216, "type": "mouseover", "message_id": 2050}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 110, "x": 216, "type": "mouseover", "message_id": 2051}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 110, "x": 216, "type": "mousemove", "message_id": 2052}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 111, "x": 222, "type": "mouseover", "message_id": 2053}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 111, "x": 222, "type": "mouseover", "message_id": 2054}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 111, "x": 222, "type": "mousemove", "message_id": 2055}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 111, "x": 226, "type": "mousemove", "message_id": 2056}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 111, "x": 228, "type": "mousemove", "message_id": 2057}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 112, "x": 229, "type": "mouseover", "message_id": 2058}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 112, "x": 229, "type": "mouseover", "message_id": 2059}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 112, "x": 229, "type": "mousemove", "message_id": 2060}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 112, "x": 229, "type": "mousemove", "message_id": 2061}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 112, "x": 229, "type": "mousemove", "message_id": 2062}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 112, "x": 229, "type": "mousedown", "message_id": 2063}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 112, "x": 229, "type": "mouseup", "message_id": 2064}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 112, "x": 229, "type": "mousemove", "message_id": 2065}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 111, "x": 227, "type": "mouseover", "message_id": 2066}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 111, "x": 227, "type": "mousemove", "message_id": 2068}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 111, "x": 227, "type": "mouseover", "message_id": 2067}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 110, "x": 223, "type": "mousemove", "message_id": 2069}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 108, "x": 216, "type": "mouseover", "message_id": 2070}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 108, "x": 216, "type": "mouseover", "message_id": 2071}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 108, "x": 216, "type": "mousemove", "message_id": 2072}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 103, "x": 203, "type": "mousemove", "message_id": 2074}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 105, "x": 209, "type": "mousemove", "message_id": 2073}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 100, "x": 196, "type": "mousemove", "message_id": 2075}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 96, "x": 188, "type": "mousemove", "message_id": 2076}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 93, "x": 180, "type": "mousemove", "message_id": 2077}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 91, "x": 175, "type": "mousemove", "message_id": 2078}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 87, "x": 169, "type": "mousemove", "message_id": 2079}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 84, "x": 162, "type": "mousemove", "message_id": 2080}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 81, "x": 157, "type": "mousemove", "message_id": 2081}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 78, "x": 152, "type": "mousemove", "message_id": 2082}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 75, "x": 146, "type": "mousemove", "message_id": 2083}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 72, "x": 142, "type": "mousemove", "message_id": 2084}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 68, "x": 138, "type": "mousemove", "message_id": 2086}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 70, "x": 140, "type": "mousemove", "message_id": 2085}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 66, "x": 137, "type": "mouseover", "message_id": 2087}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 66, "x": 137, "type": "mousemove", "message_id": 2089}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 66, "x": 137, "type": "mouseover", "message_id": 2088}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 63, "x": 136, "type": "mousemove", "message_id": 2090}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 62, "x": 136, "type": "mousemove", "message_id": 2091}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 59, "x": 135, "type": "mousemove", "message_id": 2092}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 58, "x": 135, "type": "mousemove", "message_id": 2093}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 56, "x": 134, "type": "mousemove", "message_id": 2094}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 56, "x": 134, "type": "mousemove", "message_id": 2095}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 55, "x": 134, "type": "mousemove", "message_id": 2096}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 54, "x": 133, "type": "mousemove", "message_id": 2097}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 53, "x": 132, "type": "mousemove", "message_id": 2098}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 131, "type": "mousemove", "message_id": 2099}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 130, "type": "mousemove", "message_id": 2100}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 130, "type": "mousemove", "message_id": 2101}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 129, "type": "mousemove", "message_id": 2102}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 129, "type": "mousemove", "message_id": 2103}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 129, "type": "mousemove", "message_id": 2104}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 129, "type": "mousemove", "message_id": 2105}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 129, "type": "mousemove", "message_id": 2106}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 129, "type": "mousedown", "message_id": 2107}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 129, "type": "mouseup", "message_id": 2108}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 129, "type": "mousemove", "message_id": 2110}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 129, "type": "mousemove", "message_id": 2111}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 129, "type": "mousemove", "message_id": 2112}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 130, "type": "mousemove", "message_id": 2113}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 53, "x": 131, "type": "mousemove", "message_id": 2114}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 53, "x": 132, "type": "mousemove", "message_id": 2115}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 53, "x": 132, "type": "mousemove", "message_id": 2116}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 53, "x": 132, "type": "mousemove", "message_id": 2117}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 53, "x": 132, "type": "mousemove", "message_id": 2118}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 54, "x": 133, "type": "mousemove", "message_id": 2119}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 54, "x": 133, "type": "mousemove", "message_id": 2120}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 55, "x": 134, "type": "mousemove", "message_id": 2121}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 55, "x": 136, "type": "mousemove", "message_id": 2124}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 55, "x": 136, "type": "mouseover", "message_id": 2123}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 55, "x": 136, "type": "mouseover", "message_id": 2122}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 56, "x": 137, "type": "mouseover", "message_id": 2125}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 56, "x": 137, "type": "mouseover", "message_id": 2126}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 56, "x": 137, "type": "mousemove", "message_id": 2127}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 56, "x": 137, "type": "mousemove", "message_id": 2128}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 56, "x": 137, "type": "mousemove", "message_id": 2129}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 56, "x": 137, "type": "mousemove", "message_id": 2130}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 56, "x": 138, "type": "mousemove", "message_id": 2131}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 56, "x": 139, "type": "mousemove", "message_id": 2132}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 57, "x": 141, "type": "mouseover", "message_id": 2133}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 57, "x": 141, "type": "mouseover", "message_id": 2134}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 58, "x": 143, "type": "mousemove", "message_id": 2136}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 57, "x": 141, "type": "mousemove", "message_id": 2135}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 60, "x": 147, "type": "mouseover", "message_id": 2137}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 60, "x": 147, "type": "mouseover", "message_id": 2138}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 60, "x": 147, "type": "mousemove", "message_id": 2139}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 62, "x": 151, "type": "mousemove", "message_id": 2140}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 65, "x": 156, "type": "mousemove", "message_id": 2141}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 67, "x": 161, "type": "mousemove", "message_id": 2142}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 69, "x": 165, "type": "mousemove", "message_id": 2143}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 71, "x": 168, "type": "mousemove", "message_id": 2144}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 73, "x": 173, "type": "mousemove", "message_id": 2145}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 76, "x": 178, "type": "mousemove", "message_id": 2146}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 80, "x": 185, "type": "mousemove", "message_id": 2147}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 84, "x": 194, "type": "mousemove", "message_id": 2148}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 87, "x": 201, "type": "mousemove", "message_id": 2149}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 91, "x": 209, "type": "mousemove", "message_id": 2150}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 93, "x": 215, "type": "mousemove", "message_id": 2151}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 95, "x": 218, "type": "mousemove", "message_id": 2152}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 97, "x": 221, "type": "mousemove", "message_id": 2153}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 99, "x": 224, "type": "mousemove", "message_id": 2154}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 100, "x": 227, "type": "mouseover", "message_id": 2155}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 100, "x": 227, "type": "mouseover", "message_id": 2156}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 100, "x": 227, "type": "mousemove", "message_id": 2157}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 103, "x": 231, "type": "mouseover", "message_id": 2158}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 103, "x": 231, "type": "mouseover", "message_id": 2159}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 103, "x": 231, "type": "mousemove", "message_id": 2160}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 105, "x": 235, "type": "mousemove", "message_id": 2161}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 107, "x": 240, "type": "mousemove", "message_id": 2162}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 109, "x": 244, "type": "mousemove", "message_id": 2163}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 111, "x": 247, "type": "mousemove", "message_id": 2164}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 112, "x": 249, "type": "mouseover", "message_id": 2165}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 112, "x": 249, "type": "mouseover", "message_id": 2166}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 112, "x": 249, "type": "mousemove", "message_id": 2167}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 112, "x": 251, "type": "mousemove", "message_id": 2168}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 113, "x": 251, "type": "mouseover", "message_id": 2169}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 113, "x": 251, "type": "mouseover", "message_id": 2170}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 113, "x": 251, "type": "mousemove", "message_id": 2171}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 113, "x": 252, "type": "mousemove", "message_id": 2172}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 113, "x": 252, "type": "mousemove", "message_id": 2173}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 113, "x": 252, "type": "mousemove", "message_id": 2174}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 113, "x": 252, "type": "mousemove", "message_id": 2175}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 113, "x": 252, "type": "mousemove", "message_id": 2176}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 113, "x": 252, "type": "mousemove", "message_id": 2177}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 113, "x": 252, "type": "mousedown", "message_id": 2178}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 113, "x": 252, "type": "mouseup", "message_id": 2179}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 113, "x": 252, "type": "mousemove", "message_id": 2180}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 113, "x": 251, "type": "mousemove", "message_id": 2181}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 112, "x": 250, "type": "mousemove", "message_id": 2182}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 112, "x": 248, "type": "mouseover", "message_id": 2183}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 112, "x": 248, "type": "mouseover", "message_id": 2184}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 112, "x": 248, "type": "mousemove", "message_id": 2185}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 111, "x": 247, "type": "mouseover", "message_id": 2186}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 111, "x": 247, "type": "mousemove", "message_id": 2188}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 111, "x": 247, "type": "mouseover", "message_id": 2187}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 110, "x": 245, "type": "mouseover", "message_id": 2189}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 110, "x": 245, "type": "mouseover", "message_id": 2190}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 110, "x": 245, "type": "mousemove", "message_id": 2191}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 110, "x": 244, "type": "mouseover", "message_id": 2192}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 110, "x": 244, "type": "mouseover", "message_id": 2193}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 110, "x": 244, "type": "mousemove", "message_id": 2194}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 109, "x": 242, "type": "mouseover", "message_id": 2195}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 109, "x": 242, "type": "mouseover", "message_id": 2196}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 109, "x": 242, "type": "mousemove", "message_id": 2197}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 108, "x": 239, "type": "mousemove", "message_id": 2198}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 106, "x": 235, "type": "mouseover", "message_id": 2199}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 106, "x": 235, "type": "mouseover", "message_id": 2200}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 106, "x": 235, "type": "mousemove", "message_id": 2201}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 104, "x": 230, "type": "mousemove", "message_id": 2202}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 101, "x": 226, "type": "mousemove", "message_id": 2203}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 98, "x": 221, "type": "mousemove", "message_id": 2204}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 94, "x": 217, "type": "mousemove", "message_id": 2205}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 90, "x": 212, "type": "mousemove", "message_id": 2206}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 85, "x": 207, "type": "mousemove", "message_id": 2207}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 81, "x": 202, "type": "mousemove", "message_id": 2208}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 78, "x": 199, "type": "mousemove", "message_id": 2209}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 74, "x": 196, "type": "mousemove", "message_id": 2210}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 70, "x": 193, "type": "mousemove", "message_id": 2211}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 66, "x": 191, "type": "mousemove", "message_id": 2212}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 63, "x": 189, "type": "mousemove", "message_id": 2213}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 59, "x": 186, "type": "mouseover", "message_id": 2214}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 59, "x": 186, "type": "mousemove", "message_id": 2216}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 59, "x": 186, "type": "mouseover", "message_id": 2215}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 55, "x": 183, "type": "mousemove", "message_id": 2217}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 182, "type": "mousemove", "message_id": 2220}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 182, "type": "mouseover", "message_id": 2219}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 182, "type": "mouseover", "message_id": 2218}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 50, "x": 181, "type": "mousemove", "message_id": 2221}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 49, "x": 180, "type": "mousemove", "message_id": 2222}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 49, "x": 180, "type": "mousemove", "message_id": 2223}
|
||||
1468
recordings/test_edit_labels.replay
Normal file
1468
recordings/test_edit_labels.replay
Normal file
File diff suppressed because it is too large
Load Diff
899
recordings/test_edit_labels2.replay
Normal file
899
recordings/test_edit_labels2.replay
Normal file
@ -0,0 +1,899 @@
|
||||
{"panX": 106.34787515973903, "panY": 282.9020124082514, "scale": 0.5800000000000001, "sender": 3914, "msg_type": "ViewPort", "message_id": 0}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 46, "x": 187, "type": "mousemove", "message_id": 702}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 48, "x": 187, "type": "mousemove", "message_id": 703}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 51, "x": 187, "type": "mousemove", "message_id": 704}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 188, "type": "mousemove", "message_id": 705}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 57, "x": 190, "type": "mouseover", "message_id": 706}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 57, "x": 190, "type": "mouseover", "message_id": 707}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 57, "x": 190, "type": "mousemove", "message_id": 708}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 61, "x": 193, "type": "mouseover", "message_id": 709}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 61, "x": 193, "type": "mouseover", "message_id": 710}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 61, "x": 193, "type": "mousemove", "message_id": 711}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 65, "x": 196, "type": "mousemove", "message_id": 712}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 70, "x": 198, "type": "mousemove", "message_id": 713}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 73, "x": 200, "type": "mousemove", "message_id": 714}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 80, "x": 203, "type": "mousemove", "message_id": 715}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 87, "x": 204, "type": "mouseover", "message_id": 716}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 87, "x": 204, "type": "mouseover", "message_id": 717}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 87, "x": 204, "type": "mousemove", "message_id": 718}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 95, "x": 205, "type": "mousemove", "message_id": 719}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 104, "x": 207, "type": "mouseover", "message_id": 720}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 104, "x": 207, "type": "mouseover", "message_id": 721}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 104, "x": 207, "type": "mousemove", "message_id": 722}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 109, "x": 209, "type": "mousemove", "message_id": 723}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 117, "x": 211, "type": "mousemove", "message_id": 724}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 123, "x": 214, "type": "mousemove", "message_id": 725}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 130, "x": 217, "type": "mousemove", "message_id": 726}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 138, "x": 219, "type": "mousemove", "message_id": 727}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 144, "x": 220, "type": "mouseover", "message_id": 728}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 144, "x": 220, "type": "mouseover", "message_id": 729}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 144, "x": 220, "type": "mousemove", "message_id": 730}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 151, "x": 220, "type": "mousemove", "message_id": 731}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 158, "x": 220, "type": "mousemove", "message_id": 732}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 165, "x": 220, "type": "mousemove", "message_id": 733}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 173, "x": 220, "type": "mousemove", "message_id": 734}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 179, "x": 220, "type": "mousemove", "message_id": 735}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 187, "x": 220, "type": "mousemove", "message_id": 736}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 195, "x": 220, "type": "mousemove", "message_id": 737}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 202, "x": 218, "type": "mouseover", "message_id": 738}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 202, "x": 218, "type": "mouseover", "message_id": 739}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 202, "x": 218, "type": "mousemove", "message_id": 740}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 210, "x": 216, "type": "mousemove", "message_id": 741}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 216, "x": 214, "type": "mousemove", "message_id": 742}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 224, "x": 212, "type": "mousemove", "message_id": 743}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 233, "x": 210, "type": "mousemove", "message_id": 744}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 240, "x": 208, "type": "mousemove", "message_id": 745}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 247, "x": 208, "type": "mouseover", "message_id": 746}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 247, "x": 208, "type": "mouseover", "message_id": 747}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 247, "x": 208, "type": "mousemove", "message_id": 748}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 251, "x": 207, "type": "mousemove", "message_id": 749}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 256, "x": 207, "type": "mousemove", "message_id": 750}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 260, "x": 207, "type": "mousemove", "message_id": 751}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 263, "x": 207, "type": "mousemove", "message_id": 752}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 266, "x": 207, "type": "mousemove", "message_id": 753}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 268, "x": 207, "type": "mousemove", "message_id": 754}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 269, "x": 207, "type": "mousemove", "message_id": 755}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 272, "x": 206, "type": "mousemove", "message_id": 756}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 274, "x": 206, "type": "mousemove", "message_id": 757}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 276, "x": 205, "type": "mousemove", "message_id": 758}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 277, "x": 204, "type": "mousemove", "message_id": 759}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 279, "x": 204, "type": "mousemove", "message_id": 760}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 281, "x": 203, "type": "mousemove", "message_id": 761}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 284, "x": 202, "type": "mousemove", "message_id": 762}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 287, "x": 201, "type": "mousemove", "message_id": 763}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 290, "x": 200, "type": "mousemove", "message_id": 764}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 294, "x": 199, "type": "mousemove", "message_id": 765}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 199, "type": "mousemove", "message_id": 766}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 199, "type": "mousemove", "message_id": 767}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 302, "x": 199, "type": "mousemove", "message_id": 768}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 199, "type": "mousemove", "message_id": 769}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 199, "type": "mousemove", "message_id": 770}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 198, "type": "mousemove", "message_id": 771}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 196, "type": "mouseover", "message_id": 772}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 196, "type": "mouseover", "message_id": 773}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 196, "type": "mousemove", "message_id": 774}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 192, "type": "mousemove", "message_id": 775}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 189, "type": "mousemove", "message_id": 776}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 187, "type": "mousemove", "message_id": 777}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 185, "type": "mousemove", "message_id": 778}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 184, "type": "mouseover", "message_id": 779}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 184, "type": "mouseover", "message_id": 780}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 184, "type": "mousemove", "message_id": 781}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 183, "type": "mousemove", "message_id": 782}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 182, "type": "mousemove", "message_id": 783}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 181, "type": "mousemove", "message_id": 784}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 181, "type": "mousemove", "message_id": 785}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 181, "type": "mousemove", "message_id": 786}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 181, "type": "mousedown", "message_id": 787}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 181, "type": "mouseup", "message_id": 788}
|
||||
{"sender": 3914, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 789, "altKey": false, "metaKey": false, "key": "s", "ctrlKey": false, "type": "keydown", "keyCode": 83}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 182, "type": "mousemove", "message_id": 791}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 185, "type": "mouseover", "message_id": 792}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 185, "type": "mouseover", "message_id": 793}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 185, "type": "mousemove", "message_id": 794}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 190, "type": "mousemove", "message_id": 795}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 198, "type": "mousemove", "message_id": 796}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 207, "type": "mousemove", "message_id": 797}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 225, "type": "mouseover", "message_id": 798}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 225, "type": "mouseover", "message_id": 799}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 225, "type": "mousemove", "message_id": 800}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 249, "type": "mousemove", "message_id": 801}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 279, "type": "mousemove", "message_id": 802}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 311, "type": "mousemove", "message_id": 803}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 331, "type": "mousemove", "message_id": 804}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 301, "x": 354, "type": "mousemove", "message_id": 805}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 370, "type": "mousemove", "message_id": 806}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 383, "type": "mouseover", "message_id": 807}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 383, "type": "mousemove", "message_id": 809}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 383, "type": "mouseover", "message_id": 808}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 392, "type": "mousemove", "message_id": 810}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 397, "type": "mousemove", "message_id": 811}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 402, "type": "mousemove", "message_id": 812}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 405, "type": "mousemove", "message_id": 813}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 407, "type": "mousemove", "message_id": 814}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 408, "type": "mouseover", "message_id": 815}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 408, "type": "mouseover", "message_id": 816}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 408, "type": "mousemove", "message_id": 817}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 408, "type": "mousemove", "message_id": 818}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 408, "type": "mousemove", "message_id": 819}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 408, "type": "mousemove", "message_id": 820}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 408, "type": "mousemove", "message_id": 821}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 409, "type": "mousemove", "message_id": 822}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 409, "type": "mousemove", "message_id": 823}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 409, "type": "mousemove", "message_id": 824}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 410, "type": "mousemove", "message_id": 825}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 410, "type": "mousemove", "message_id": 826}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 410, "type": "mousemove", "message_id": 827}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 410, "type": "mousemove", "message_id": 829}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 410, "type": "mousemove", "message_id": 828}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 409, "type": "mousemove", "message_id": 830}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 408, "type": "mousemove", "message_id": 831}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 407, "type": "mousemove", "message_id": 832}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 407, "type": "mousemove", "message_id": 833}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 406, "type": "mousemove", "message_id": 834}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 406, "type": "mousemove", "message_id": 835}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 406, "type": "mousemove", "message_id": 836}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 405, "type": "mousemove", "message_id": 837}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 403, "type": "mouseover", "message_id": 838}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 403, "type": "mouseover", "message_id": 839}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 403, "type": "mousemove", "message_id": 840}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 402, "type": "mouseover", "message_id": 841}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 402, "type": "mouseover", "message_id": 842}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 402, "type": "mousemove", "message_id": 843}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 400, "type": "mouseover", "message_id": 844}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 400, "type": "mouseover", "message_id": 845}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 400, "type": "mousemove", "message_id": 846}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 399, "type": "mouseover", "message_id": 847}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 399, "type": "mousemove", "message_id": 849}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 399, "type": "mouseover", "message_id": 848}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 398, "type": "mousemove", "message_id": 850}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 398, "type": "mousemove", "message_id": 851}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 301, "x": 398, "type": "mousemove", "message_id": 852}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 301, "x": 397, "type": "mousemove", "message_id": 853}
|
||||
{"sender": 3914, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 854, "altKey": false, "metaKey": false, "key": "s", "ctrlKey": false, "type": "keydown", "keyCode": 83}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 301, "x": 397, "type": "mousemove", "message_id": 856}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 396, "type": "mousemove", "message_id": 857}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 394, "type": "mouseover", "message_id": 858}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 394, "type": "mouseover", "message_id": 859}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 394, "type": "mousemove", "message_id": 860}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 391, "type": "mousemove", "message_id": 861}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 386, "type": "mousemove", "message_id": 862}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 380, "type": "mousemove", "message_id": 863}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 372, "type": "mousemove", "message_id": 864}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 365, "type": "mousemove", "message_id": 865}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 358, "type": "mousemove", "message_id": 866}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 354, "type": "mousemove", "message_id": 867}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 351, "type": "mousemove", "message_id": 868}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 349, "type": "mousemove", "message_id": 869}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 347, "type": "mousemove", "message_id": 870}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 345, "type": "mousemove", "message_id": 871}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 344, "type": "mouseover", "message_id": 872}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 344, "type": "mouseover", "message_id": 873}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 344, "type": "mousemove", "message_id": 874}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 343, "type": "mousemove", "message_id": 875}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 343, "type": "mousemove", "message_id": 876}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 342, "type": "mousemove", "message_id": 877}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 342, "type": "mousemove", "message_id": 878}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 342, "type": "mousemove", "message_id": 879}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 342, "type": "mousemove", "message_id": 880}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 342, "type": "mousemove", "message_id": 881}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 342, "type": "mousemove", "message_id": 882}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 342, "type": "mousemove", "message_id": 883}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 342, "type": "mousemove", "message_id": 884}
|
||||
{"sender": 3914, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 885, "altKey": false, "metaKey": false, "key": "l", "ctrlKey": false, "type": "keydown", "keyCode": 76}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 341, "type": "mousemove", "message_id": 886}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 340, "type": "mousemove", "message_id": 887}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 338, "type": "mouseover", "message_id": 888}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 338, "type": "mouseover", "message_id": 889}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 338, "type": "mousemove", "message_id": 890}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 334, "type": "mousemove", "message_id": 891}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 328, "type": "mousemove", "message_id": 892}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 321, "type": "mousemove", "message_id": 893}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 311, "type": "mousemove", "message_id": 894}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 298, "type": "mousemove", "message_id": 895}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 283, "type": "mouseover", "message_id": 896}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 283, "type": "mouseover", "message_id": 897}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 283, "type": "mousemove", "message_id": 898}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 301, "x": 270, "type": "mouseover", "message_id": 899}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 301, "x": 270, "type": "mouseover", "message_id": 900}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 301, "x": 270, "type": "mousemove", "message_id": 901}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 260, "type": "mouseover", "message_id": 902}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 260, "type": "mouseover", "message_id": 903}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 260, "type": "mousemove", "message_id": 904}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 252, "type": "mouseover", "message_id": 905}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 252, "type": "mouseover", "message_id": 906}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 246, "type": "mousemove", "message_id": 908}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 252, "type": "mousemove", "message_id": 907}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 305, "x": 242, "type": "mousemove", "message_id": 909}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 305, "x": 238, "type": "mousemove", "message_id": 910}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 305, "x": 234, "type": "mousemove", "message_id": 911}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 231, "type": "mousemove", "message_id": 912}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 227, "type": "mousemove", "message_id": 913}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 224, "type": "mousemove", "message_id": 914}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 220, "type": "mousemove", "message_id": 915}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 218, "type": "mousemove", "message_id": 916}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 215, "type": "mousemove", "message_id": 917}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 214, "type": "mouseover", "message_id": 918}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 214, "type": "mouseover", "message_id": 919}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 214, "type": "mousemove", "message_id": 920}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 211, "type": "mouseover", "message_id": 921}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 211, "type": "mouseover", "message_id": 922}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 211, "type": "mousemove", "message_id": 923}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 209, "type": "mousemove", "message_id": 924}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 302, "x": 203, "type": "mousemove", "message_id": 926}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 302, "x": 206, "type": "mousemove", "message_id": 925}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 301, "x": 200, "type": "mousemove", "message_id": 927}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 301, "x": 197, "type": "mousemove", "message_id": 928}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 193, "type": "mousemove", "message_id": 929}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 190, "type": "mousemove", "message_id": 930}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 189, "type": "mouseover", "message_id": 931}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 189, "type": "mouseover", "message_id": 932}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 189, "type": "mousemove", "message_id": 933}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 188, "type": "mousemove", "message_id": 934}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 187, "type": "mousemove", "message_id": 935}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 187, "type": "mousemove", "message_id": 936}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 187, "type": "mousemove", "message_id": 937}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 186, "type": "mousemove", "message_id": 938}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 186, "type": "mousemove", "message_id": 939}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 186, "type": "mousedown", "message_id": 940}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 186, "type": "mouseup", "message_id": 941}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 186, "type": "mousemove", "message_id": 943}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 187, "type": "mousemove", "message_id": 944}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 189, "type": "mouseover", "message_id": 945}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 189, "type": "mouseover", "message_id": 946}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 189, "type": "mousemove", "message_id": 947}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 191, "type": "mousemove", "message_id": 948}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 195, "type": "mousemove", "message_id": 949}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 200, "type": "mousemove", "message_id": 950}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 208, "type": "mousemove", "message_id": 951}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 219, "type": "mousemove", "message_id": 952}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 232, "type": "mousemove", "message_id": 953}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 244, "type": "mousemove", "message_id": 954}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 255, "type": "mousemove", "message_id": 955}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 264, "type": "mousemove", "message_id": 956}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 272, "type": "mousemove", "message_id": 957}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 280, "type": "mousemove", "message_id": 958}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 290, "type": "mousemove", "message_id": 959}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 300, "type": "mousemove", "message_id": 960}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 311, "type": "mousemove", "message_id": 961}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 322, "type": "mousemove", "message_id": 962}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 331, "type": "mousemove", "message_id": 963}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 339, "type": "mousemove", "message_id": 964}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 347, "type": "mousemove", "message_id": 965}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 354, "type": "mousemove", "message_id": 966}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 359, "type": "mousemove", "message_id": 967}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 363, "type": "mousemove", "message_id": 968}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 367, "type": "mousemove", "message_id": 969}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 370, "type": "mousemove", "message_id": 970}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 373, "type": "mousemove", "message_id": 971}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 375, "type": "mousemove", "message_id": 972}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 377, "type": "mousemove", "message_id": 973}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 378, "type": "mousemove", "message_id": 976}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 378, "type": "mouseover", "message_id": 974}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 378, "type": "mouseover", "message_id": 975}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 379, "type": "mousemove", "message_id": 977}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 381, "type": "mouseover", "message_id": 978}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 381, "type": "mouseover", "message_id": 979}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 381, "type": "mousemove", "message_id": 980}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 382, "type": "mouseover", "message_id": 981}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 382, "type": "mouseover", "message_id": 982}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 382, "type": "mousemove", "message_id": 983}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 383, "type": "mousemove", "message_id": 984}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 384, "type": "mousemove", "message_id": 985}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 385, "type": "mousemove", "message_id": 986}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 386, "type": "mousemove", "message_id": 987}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 386, "type": "mousemove", "message_id": 988}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 387, "type": "mousemove", "message_id": 989}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 387, "type": "mousemove", "message_id": 990}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 387, "type": "mousemove", "message_id": 991}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 388, "type": "mousemove", "message_id": 992}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 389, "type": "mousemove", "message_id": 993}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 391, "type": "mouseover", "message_id": 995}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 391, "type": "mouseover", "message_id": 994}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 391, "type": "mousemove", "message_id": 996}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 393, "type": "mousemove", "message_id": 997}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 394, "type": "mouseover", "message_id": 998}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 394, "type": "mouseover", "message_id": 999}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 394, "type": "mousemove", "message_id": 1000}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 395, "type": "mousemove", "message_id": 1001}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 396, "type": "mousemove", "message_id": 1002}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 396, "type": "mousemove", "message_id": 1003}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 396, "type": "mousedown", "message_id": 1004}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 396, "type": "mouseup", "message_id": 1005}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 396, "type": "mousemove", "message_id": 1010}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 395, "type": "mousemove", "message_id": 1011}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 394, "type": "mousemove", "message_id": 1012}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 393, "type": "mousemove", "message_id": 1013}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 391, "type": "mouseover", "message_id": 1014}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 391, "type": "mouseover", "message_id": 1015}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 391, "type": "mousemove", "message_id": 1016}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 388, "type": "mousemove", "message_id": 1017}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 381, "type": "mousemove", "message_id": 1019}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 385, "type": "mousemove", "message_id": 1018}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 376, "type": "mousemove", "message_id": 1020}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 370, "type": "mousemove", "message_id": 1021}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 365, "type": "mousemove", "message_id": 1022}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 360, "type": "mousemove", "message_id": 1023}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 356, "type": "mousemove", "message_id": 1024}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 353, "type": "mousemove", "message_id": 1025}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 350, "type": "mousemove", "message_id": 1026}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 348, "type": "mousemove", "message_id": 1027}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 346, "type": "mousemove", "message_id": 1028}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 344, "type": "mousemove", "message_id": 1029}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 341, "type": "mousemove", "message_id": 1030}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 339, "type": "mousemove", "message_id": 1031}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 337, "type": "mousemove", "message_id": 1032}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 335, "type": "mousemove", "message_id": 1033}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 332, "type": "mousemove", "message_id": 1034}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 296, "x": 331, "type": "mouseover", "message_id": 1035}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 296, "x": 331, "type": "mouseover", "message_id": 1036}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 296, "x": 331, "type": "mousemove", "message_id": 1037}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 295, "x": 329, "type": "mouseover", "message_id": 1038}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 295, "x": 329, "type": "mouseover", "message_id": 1039}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 295, "x": 329, "type": "mousemove", "message_id": 1040}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 293, "x": 325, "type": "mousemove", "message_id": 1042}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 294, "x": 327, "type": "mousemove", "message_id": 1041}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 291, "x": 324, "type": "mouseover", "message_id": 1043}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 291, "x": 324, "type": "mouseover", "message_id": 1044}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 291, "x": 324, "type": "mousemove", "message_id": 1045}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 289, "x": 323, "type": "mousemove", "message_id": 1046}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 286, "x": 321, "type": "mouseover", "message_id": 1047}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 286, "x": 321, "type": "mouseover", "message_id": 1048}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 286, "x": 321, "type": "mousemove", "message_id": 1049}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 284, "x": 319, "type": "mousemove", "message_id": 1050}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 281, "x": 317, "type": "mousemove", "message_id": 1051}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 278, "x": 314, "type": "mousemove", "message_id": 1052}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 276, "x": 313, "type": "mouseover", "message_id": 1053}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 276, "x": 313, "type": "mouseover", "message_id": 1054}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 276, "x": 313, "type": "mousemove", "message_id": 1055}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 275, "x": 312, "type": "mousemove", "message_id": 1056}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 274, "x": 312, "type": "mousemove", "message_id": 1057}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 274, "x": 312, "type": "mousemove", "message_id": 1058}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 275, "x": 312, "type": "mousemove", "message_id": 1059}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 275, "x": 312, "type": "mousemove", "message_id": 1060}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 275, "x": 311, "type": "mousemove", "message_id": 1061}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 276, "x": 311, "type": "mousemove", "message_id": 1062}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 276, "x": 310, "type": "mousemove", "message_id": 1063}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 277, "x": 309, "type": "mousemove", "message_id": 1064}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 278, "x": 308, "type": "mousemove", "message_id": 1065}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 278, "x": 306, "type": "mouseover", "message_id": 1066}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 278, "x": 306, "type": "mouseover", "message_id": 1067}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 278, "x": 306, "type": "mousemove", "message_id": 1068}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 279, "x": 305, "type": "mouseover", "message_id": 1069}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 279, "x": 305, "type": "mouseover", "message_id": 1070}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 279, "x": 305, "type": "mousemove", "message_id": 1071}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 280, "x": 303, "type": "mouseover", "message_id": 1072}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 280, "x": 303, "type": "mouseover", "message_id": 1073}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 280, "x": 303, "type": "mousemove", "message_id": 1074}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 280, "x": 302, "type": "mouseover", "message_id": 1075}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 280, "x": 302, "type": "mouseover", "message_id": 1076}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 280, "x": 302, "type": "mousemove", "message_id": 1077}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 280, "x": 301, "type": "mousemove", "message_id": 1078}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 281, "x": 301, "type": "mousemove", "message_id": 1079}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 281, "x": 300, "type": "mousemove", "message_id": 1081}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 281, "x": 300, "type": "mousemove", "message_id": 1080}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 281, "x": 300, "type": "mousemove", "message_id": 1082}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 281, "x": 299, "type": "mousemove", "message_id": 1083}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 281, "x": 299, "type": "mousemove", "message_id": 1084}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 281, "x": 299, "type": "mousemove", "message_id": 1085}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 1, "delta": 1, "type": "wheel", "message_id": 1086}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 4, "delta": 4, "type": "wheel", "message_id": 1087}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 4, "delta": 4, "type": "wheel", "message_id": 1088}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 6, "delta": 6, "type": "wheel", "message_id": 1089}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 2, "delta": 2, "type": "wheel", "message_id": 1090}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 3, "delta": 3, "type": "wheel", "message_id": 1091}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 7, "delta": 7, "type": "wheel", "message_id": 1092}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 2, "delta": 2, "type": "wheel", "message_id": 1093}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 7, "delta": 7, "type": "wheel", "message_id": 1094}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 5, "delta": 5, "type": "wheel", "message_id": 1095}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 5, "delta": 5, "type": "wheel", "message_id": 1096}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 3, "delta": 3, "type": "wheel", "message_id": 1097}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 6, "delta": 6, "type": "wheel", "message_id": 1098}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 3, "delta": 3, "type": "wheel", "message_id": 1099}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 5, "delta": 5, "type": "wheel", "message_id": 1100}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 3, "delta": 3, "type": "wheel", "message_id": 1101}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 4, "delta": 4, "type": "wheel", "message_id": 1102}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 3, "delta": 3, "type": "wheel", "message_id": 1103}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 2, "delta": 2, "type": "wheel", "message_id": 1104}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 2, "delta": 2, "type": "wheel", "message_id": 1105}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 1, "delta": 1, "type": "wheel", "message_id": 1106}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 2, "delta": 2, "type": "wheel", "message_id": 1107}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 1, "delta": 1, "type": "wheel", "message_id": 1108}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 281, "x": 299, "type": "mousemove", "message_id": 1109}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 1, "delta": 1, "type": "wheel", "message_id": 1110}
|
||||
{"sender": 3914, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 1111, "altKey": false, "metaKey": false, "key": "i", "ctrlKey": false, "type": "keydown", "keyCode": 73}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 282, "x": 298, "type": "mousemove", "message_id": 1112}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 283, "x": 295, "type": "mouseover", "message_id": 1113}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 283, "x": 295, "type": "mouseover", "message_id": 1114}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 283, "x": 295, "type": "mousemove", "message_id": 1115}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 284, "x": 290, "type": "mousemove", "message_id": 1116}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 285, "x": 286, "type": "mousemove", "message_id": 1117}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 287, "x": 278, "type": "mouseover", "message_id": 1118}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 287, "x": 278, "type": "mouseover", "message_id": 1119}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 287, "x": 278, "type": "mousemove", "message_id": 1120}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 289, "x": 269, "type": "mousemove", "message_id": 1121}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 291, "x": 260, "type": "mousemove", "message_id": 1122}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 293, "x": 249, "type": "mousemove", "message_id": 1123}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 295, "x": 242, "type": "mouseover", "message_id": 1124}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 295, "x": 242, "type": "mouseover", "message_id": 1125}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 295, "x": 242, "type": "mousemove", "message_id": 1126}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 232, "type": "mouseover", "message_id": 1127}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 232, "type": "mouseover", "message_id": 1128}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 232, "type": "mousemove", "message_id": 1129}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 301, "x": 223, "type": "mousemove", "message_id": 1130}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 216, "type": "mouseover", "message_id": 1131}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 216, "type": "mouseover", "message_id": 1132}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 216, "type": "mousemove", "message_id": 1133}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 305, "x": 211, "type": "mousemove", "message_id": 1134}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 306, "x": 209, "type": "mouseover", "message_id": 1135}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 306, "x": 209, "type": "mouseover", "message_id": 1136}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 306, "x": 209, "type": "mousemove", "message_id": 1137}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 307, "x": 206, "type": "mousemove", "message_id": 1138}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 308, "x": 203, "type": "mousemove", "message_id": 1139}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 308, "x": 201, "type": "mousemove", "message_id": 1140}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 309, "x": 200, "type": "mouseover", "message_id": 1141}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 309, "x": 200, "type": "mouseover", "message_id": 1142}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 309, "x": 200, "type": "mousemove", "message_id": 1143}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 310, "x": 198, "type": "mouseover", "message_id": 1144}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 310, "x": 198, "type": "mouseover", "message_id": 1145}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 310, "x": 198, "type": "mousemove", "message_id": 1146}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 311, "x": 195, "type": "mousemove", "message_id": 1147}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 312, "x": 192, "type": "mousemove", "message_id": 1148}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 313, "x": 189, "type": "mousemove", "message_id": 1149}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 314, "x": 186, "type": "mousemove", "message_id": 1150}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 314, "x": 182, "type": "mousemove", "message_id": 1151}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 315, "x": 177, "type": "mousemove", "message_id": 1152}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 316, "x": 173, "type": "mousemove", "message_id": 1153}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 317, "x": 169, "type": "mousemove", "message_id": 1154}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 317, "x": 166, "type": "mousemove", "message_id": 1155}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 318, "x": 163, "type": "mousemove", "message_id": 1156}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 319, "x": 160, "type": "mousemove", "message_id": 1157}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 319, "x": 158, "type": "mousemove", "message_id": 1158}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 320, "x": 157, "type": "mouseover", "message_id": 1159}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 320, "x": 157, "type": "mouseover", "message_id": 1160}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 320, "x": 157, "type": "mousemove", "message_id": 1161}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 320, "x": 155, "type": "mouseover", "message_id": 1162}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 320, "x": 155, "type": "mouseover", "message_id": 1163}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 320, "x": 155, "type": "mousemove", "message_id": 1164}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 320, "x": 153, "type": "mousemove", "message_id": 1165}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 321, "x": 149, "type": "mousemove", "message_id": 1166}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 321, "x": 146, "type": "mousemove", "message_id": 1167}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 321, "x": 143, "type": "mousemove", "message_id": 1168}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 322, "x": 141, "type": "mousemove", "message_id": 1169}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 322, "x": 140, "type": "mouseover", "message_id": 1170}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 322, "x": 140, "type": "mouseover", "message_id": 1171}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 322, "x": 140, "type": "mousemove", "message_id": 1172}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 322, "x": 138, "type": "mouseover", "message_id": 1173}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 322, "x": 138, "type": "mousemove", "message_id": 1175}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 322, "x": 138, "type": "mouseover", "message_id": 1174}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 322, "x": 137, "type": "mouseover", "message_id": 1176}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 322, "x": 137, "type": "mouseover", "message_id": 1177}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 322, "x": 137, "type": "mousemove", "message_id": 1178}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 322, "x": 136, "type": "mousemove", "message_id": 1179}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 323, "x": 135, "type": "mousemove", "message_id": 1180}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 323, "x": 133, "type": "mouseover", "message_id": 1181}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 323, "x": 133, "type": "mouseover", "message_id": 1182}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 323, "x": 133, "type": "mousemove", "message_id": 1183}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 323, "x": 131, "type": "mousemove", "message_id": 1184}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 324, "x": 130, "type": "mouseover", "message_id": 1185}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 324, "x": 130, "type": "mouseover", "message_id": 1186}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 324, "x": 130, "type": "mousemove", "message_id": 1187}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 325, "x": 129, "type": "mousemove", "message_id": 1188}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 325, "x": 128, "type": "mousemove", "message_id": 1189}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 326, "x": 127, "type": "mousemove", "message_id": 1190}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 126, "type": "mousemove", "message_id": 1191}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 329, "x": 125, "type": "mousemove", "message_id": 1192}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 330, "x": 124, "type": "mousemove", "message_id": 1193}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 332, "x": 122, "type": "mouseover", "message_id": 1194}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 332, "x": 122, "type": "mouseover", "message_id": 1195}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 332, "x": 122, "type": "mousemove", "message_id": 1196}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 333, "x": 121, "type": "mouseover", "message_id": 1197}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 333, "x": 121, "type": "mouseover", "message_id": 1198}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 333, "x": 121, "type": "mousemove", "message_id": 1199}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 120, "type": "mousemove", "message_id": 1200}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 120, "type": "mousemove", "message_id": 1201}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 335, "x": 120, "type": "mousemove", "message_id": 1202}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 335, "x": 120, "type": "mousemove", "message_id": 1203}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 120, "type": "mousemove", "message_id": 1204}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 120, "type": "mousemove", "message_id": 1205}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 119, "type": "mousemove", "message_id": 1206}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 119, "type": "mousemove", "message_id": 1207}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 117, "type": "mouseover", "message_id": 1208}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 117, "type": "mousemove", "message_id": 1210}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 117, "type": "mouseover", "message_id": 1209}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 116, "type": "mouseover", "message_id": 1211}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 116, "type": "mouseover", "message_id": 1212}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 116, "type": "mousemove", "message_id": 1213}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 115, "type": "mousemove", "message_id": 1214}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 114, "type": "mousemove", "message_id": 1215}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 114, "type": "mousemove", "message_id": 1216}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 113, "type": "mousemove", "message_id": 1217}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 113, "type": "mousemove", "message_id": 1218}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 112, "type": "mousemove", "message_id": 1219}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 111, "type": "mousemove", "message_id": 1220}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 110, "type": "mousemove", "message_id": 1221}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 109, "type": "mousemove", "message_id": 1222}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 109, "type": "mousemove", "message_id": 1223}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 108, "type": "mousemove", "message_id": 1224}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 108, "type": "mousemove", "message_id": 1225}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 108, "type": "mousemove", "message_id": 1226}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 108, "type": "mousemove", "message_id": 1227}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 107, "type": "mousemove", "message_id": 1228}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 107, "type": "mousemove", "message_id": 1229}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 106, "type": "mousemove", "message_id": 1230}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 104, "type": "mouseover", "message_id": 1231}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 104, "type": "mouseover", "message_id": 1232}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 104, "type": "mousemove", "message_id": 1233}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 103, "type": "mouseover", "message_id": 1234}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 103, "type": "mouseover", "message_id": 1235}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 103, "type": "mousemove", "message_id": 1236}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 334, "x": 102, "type": "mousemove", "message_id": 1237}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 333, "x": 101, "type": "mousemove", "message_id": 1238}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 333, "x": 100, "type": "mousemove", "message_id": 1239}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 333, "x": 98, "type": "mouseover", "message_id": 1240}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 333, "x": 98, "type": "mouseover", "message_id": 1241}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 333, "x": 98, "type": "mousemove", "message_id": 1242}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 333, "x": 97, "type": "mouseover", "message_id": 1243}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 333, "x": 97, "type": "mouseover", "message_id": 1244}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 333, "x": 97, "type": "mousemove", "message_id": 1245}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 333, "x": 97, "type": "mousemove", "message_id": 1246}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 333, "x": 97, "type": "mousemove", "message_id": 1247}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 333, "x": 97, "type": "mousedown", "message_id": 1248}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 333, "x": 97, "type": "mouseup", "message_id": 1249}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 333, "x": 97, "type": "mousedown", "message_id": 1250}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 333, "x": 97, "type": "mouseup", "message_id": 1251}
|
||||
{"sender": 3914, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 1252, "altKey": false, "metaKey": false, "key": "1", "ctrlKey": false, "type": "keydown", "keyCode": 49}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 333, "x": 99, "type": "mouseover", "message_id": 1255}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 333, "x": 99, "type": "mouseover", "message_id": 1254}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 333, "x": 99, "type": "mousemove", "message_id": 1256}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 330, "x": 106, "type": "mouseover", "message_id": 1257}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 330, "x": 106, "type": "mouseover", "message_id": 1258}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 330, "x": 106, "type": "mousemove", "message_id": 1259}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 326, "x": 119, "type": "mousemove", "message_id": 1260}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 321, "x": 130, "type": "mouseover", "message_id": 1261}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 321, "x": 130, "type": "mouseover", "message_id": 1262}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 321, "x": 130, "type": "mousemove", "message_id": 1263}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 310, "x": 148, "type": "mousemove", "message_id": 1264}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 165, "type": "mousemove", "message_id": 1265}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 289, "x": 179, "type": "mousemove", "message_id": 1266}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 282, "x": 189, "type": "mousemove", "message_id": 1267}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 278, "x": 193, "type": "mousemove", "message_id": 1268}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 277, "x": 195, "type": "mouseover", "message_id": 1270}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 277, "x": 195, "type": "mouseover", "message_id": 1269}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 277, "x": 195, "type": "mousemove", "message_id": 1271}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 276, "x": 195, "type": "mouseover", "message_id": 1272}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 276, "x": 195, "type": "mouseover", "message_id": 1273}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 276, "x": 195, "type": "mousemove", "message_id": 1274}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 276, "x": 195, "type": "mousedown", "message_id": 1275}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 276, "x": 195, "type": "mouseup", "message_id": 1276}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 276, "x": 196, "type": "mousemove", "message_id": 1277}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 277, "x": 197, "type": "mousemove", "message_id": 1278}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 277, "x": 200, "type": "mouseover", "message_id": 1279}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 277, "x": 200, "type": "mouseover", "message_id": 1280}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 277, "x": 200, "type": "mousemove", "message_id": 1281}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 278, "x": 203, "type": "mousemove", "message_id": 1282}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 279, "x": 209, "type": "mousemove", "message_id": 1283}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 281, "x": 217, "type": "mouseover", "message_id": 1284}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 281, "x": 217, "type": "mouseover", "message_id": 1285}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 281, "x": 217, "type": "mousemove", "message_id": 1286}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 283, "x": 227, "type": "mousemove", "message_id": 1287}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 287, "x": 241, "type": "mousemove", "message_id": 1288}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 290, "x": 256, "type": "mousemove", "message_id": 1289}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 293, "x": 273, "type": "mousemove", "message_id": 1290}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 296, "x": 290, "type": "mousemove", "message_id": 1291}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 299, "x": 307, "type": "mousemove", "message_id": 1292}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 302, "x": 321, "type": "mousemove", "message_id": 1293}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 329, "type": "mouseover", "message_id": 1294}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 329, "type": "mouseover", "message_id": 1295}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 329, "type": "mousemove", "message_id": 1296}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 305, "x": 336, "type": "mousemove", "message_id": 1298}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 333, "type": "mousemove", "message_id": 1297}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 305, "x": 338, "type": "mousemove", "message_id": 1299}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 305, "x": 339, "type": "mouseover", "message_id": 1300}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 305, "x": 339, "type": "mousemove", "message_id": 1302}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 305, "x": 339, "type": "mouseover", "message_id": 1301}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 306, "x": 339, "type": "mousemove", "message_id": 1303}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 306, "x": 340, "type": "mousemove", "message_id": 1304}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 307, "x": 341, "type": "mousemove", "message_id": 1305}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 308, "x": 342, "type": "mousemove", "message_id": 1306}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 309, "x": 343, "type": "mousemove", "message_id": 1307}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 310, "x": 344, "type": "mousemove", "message_id": 1308}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 311, "x": 346, "type": "mouseover", "message_id": 1309}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 311, "x": 346, "type": "mouseover", "message_id": 1310}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 311, "x": 346, "type": "mousemove", "message_id": 1311}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 312, "x": 348, "type": "mousemove", "message_id": 1312}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 314, "x": 351, "type": "mouseover", "message_id": 1313}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 314, "x": 351, "type": "mouseover", "message_id": 1314}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 314, "x": 351, "type": "mousemove", "message_id": 1315}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 316, "x": 356, "type": "mousemove", "message_id": 1316}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 319, "x": 362, "type": "mouseover", "message_id": 1317}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 319, "x": 362, "type": "mouseover", "message_id": 1318}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 319, "x": 362, "type": "mousemove", "message_id": 1319}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 321, "x": 369, "type": "mouseover", "message_id": 1320}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 321, "x": 369, "type": "mouseover", "message_id": 1321}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 321, "x": 369, "type": "mousemove", "message_id": 1322}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 324, "x": 376, "type": "mouseover", "message_id": 1323}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 324, "x": 376, "type": "mouseover", "message_id": 1324}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 324, "x": 376, "type": "mousemove", "message_id": 1325}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 326, "x": 382, "type": "mouseover", "message_id": 1327}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 326, "x": 382, "type": "mouseover", "message_id": 1326}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 386, "type": "mouseover", "message_id": 1329}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 326, "x": 382, "type": "mousemove", "message_id": 1328}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 386, "type": "mouseover", "message_id": 1330}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 386, "type": "mousemove", "message_id": 1331}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 389, "type": "mousemove", "message_id": 1332}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 390, "type": "mouseover", "message_id": 1333}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 390, "type": "mouseover", "message_id": 1334}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 390, "type": "mousemove", "message_id": 1335}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 328, "x": 393, "type": "mouseover", "message_id": 1336}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 328, "x": 393, "type": "mouseover", "message_id": 1337}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 328, "x": 393, "type": "mousemove", "message_id": 1338}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 329, "x": 397, "type": "mousemove", "message_id": 1339}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 329, "x": 401, "type": "mousemove", "message_id": 1340}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 329, "x": 404, "type": "mousemove", "message_id": 1341}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 330, "x": 408, "type": "mousemove", "message_id": 1342}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 330, "x": 410, "type": "mousemove", "message_id": 1343}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 330, "x": 412, "type": "mousemove", "message_id": 1344}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 330, "x": 415, "type": "mousemove", "message_id": 1345}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 330, "x": 419, "type": "mousemove", "message_id": 1346}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 330, "x": 423, "type": "mousemove", "message_id": 1347}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 428, "type": "mousemove", "message_id": 1348}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 435, "type": "mousemove", "message_id": 1349}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 332, "x": 442, "type": "mousemove", "message_id": 1350}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 332, "x": 447, "type": "mousemove", "message_id": 1351}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 450, "type": "mousemove", "message_id": 1352}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 451, "type": "mouseover", "message_id": 1353}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 451, "type": "mouseover", "message_id": 1354}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 451, "type": "mousemove", "message_id": 1355}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 453, "type": "mouseover", "message_id": 1356}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 453, "type": "mouseover", "message_id": 1357}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 453, "type": "mousemove", "message_id": 1358}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 454, "type": "mouseover", "message_id": 1359}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 454, "type": "mousemove", "message_id": 1361}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 454, "type": "mouseover", "message_id": 1360}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 455, "type": "mousemove", "message_id": 1362}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 456, "type": "mousemove", "message_id": 1363}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 458, "type": "mouseover", "message_id": 1364}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 458, "type": "mouseover", "message_id": 1365}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 460, "type": "mousemove", "message_id": 1367}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 458, "type": "mousemove", "message_id": 1366}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 463, "type": "mousemove", "message_id": 1368}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 464, "type": "mouseover", "message_id": 1369}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 464, "type": "mouseover", "message_id": 1370}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 464, "type": "mousemove", "message_id": 1371}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 465, "type": "mousemove", "message_id": 1372}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 465, "type": "mousemove", "message_id": 1373}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 465, "type": "mousemove", "message_id": 1374}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 465, "type": "mousemove", "message_id": 1375}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 464, "type": "mousemove", "message_id": 1376}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 462, "type": "mouseover", "message_id": 1377}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 462, "type": "mouseover", "message_id": 1378}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 462, "type": "mousemove", "message_id": 1379}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 459, "type": "mousemove", "message_id": 1380}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 457, "type": "mousemove", "message_id": 1381}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 455, "type": "mousemove", "message_id": 1382}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 454, "type": "mouseover", "message_id": 1383}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 454, "type": "mouseover", "message_id": 1384}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 454, "type": "mousemove", "message_id": 1385}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 453, "type": "mousemove", "message_id": 1386}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 453, "type": "mousemove", "message_id": 1387}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 453, "type": "mousemove", "message_id": 1388}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 453, "type": "mousedown", "message_id": 1389}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 453, "type": "mouseup", "message_id": 1390}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 453, "type": "mousedown", "message_id": 1391}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 453, "type": "mouseup", "message_id": 1392}
|
||||
{"sender": 3914, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 1393, "altKey": false, "metaKey": false, "key": "2", "ctrlKey": false, "type": "keydown", "keyCode": 50}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 452, "type": "mousemove", "message_id": 1395}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 331, "x": 451, "type": "mousemove", "message_id": 1396}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 330, "x": 449, "type": "mouseover", "message_id": 1397}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 330, "x": 449, "type": "mouseover", "message_id": 1398}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 330, "x": 449, "type": "mousemove", "message_id": 1399}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 330, "x": 447, "type": "mousemove", "message_id": 1400}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 329, "x": 443, "type": "mousemove", "message_id": 1401}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 438, "type": "mouseover", "message_id": 1402}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 438, "type": "mouseover", "message_id": 1403}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 438, "type": "mousemove", "message_id": 1404}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 323, "x": 431, "type": "mousemove", "message_id": 1405}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 319, "x": 422, "type": "mouseover", "message_id": 1406}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 319, "x": 422, "type": "mouseover", "message_id": 1407}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 319, "x": 422, "type": "mousemove", "message_id": 1408}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 315, "x": 414, "type": "mousemove", "message_id": 1409}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 310, "x": 406, "type": "mousemove", "message_id": 1410}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 304, "x": 399, "type": "mousemove", "message_id": 1411}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 298, "x": 391, "type": "mousemove", "message_id": 1412}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 290, "x": 383, "type": "mousemove", "message_id": 1413}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 283, "x": 375, "type": "mousemove", "message_id": 1414}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 276, "x": 369, "type": "mousemove", "message_id": 1415}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 271, "x": 365, "type": "mousemove", "message_id": 1416}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 267, "x": 361, "type": "mousemove", "message_id": 1417}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 263, "x": 358, "type": "mousemove", "message_id": 1418}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 259, "x": 355, "type": "mousemove", "message_id": 1419}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 256, "x": 352, "type": "mousemove", "message_id": 1420}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 254, "x": 349, "type": "mouseover", "message_id": 1421}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 254, "x": 349, "type": "mouseover", "message_id": 1422}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 254, "x": 349, "type": "mousemove", "message_id": 1423}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 253, "x": 348, "type": "mouseover", "message_id": 1424}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 253, "x": 348, "type": "mouseover", "message_id": 1425}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 253, "x": 348, "type": "mousemove", "message_id": 1426}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 252, "x": 348, "type": "mousemove", "message_id": 1427}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 252, "x": 348, "type": "mousemove", "message_id": 1428}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 252, "x": 348, "type": "mousemove", "message_id": 1429}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 252, "x": 348, "type": "mousemove", "message_id": 1430}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 252, "x": 348, "type": "mousemove", "message_id": 1431}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 252, "x": 348, "type": "mousedown", "message_id": 1432}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 252, "x": 348, "type": "mousemove", "message_id": 1434}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 252, "x": 348, "type": "mouseup", "message_id": 1433}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 252, "x": 348, "type": "mousemove", "message_id": 1435}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 252, "x": 348, "type": "mousemove", "message_id": 1436}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 253, "x": 348, "type": "mousemove", "message_id": 1437}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 254, "x": 348, "type": "mousemove", "message_id": 1438}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 256, "x": 347, "type": "mousemove", "message_id": 1439}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 258, "x": 346, "type": "mousemove", "message_id": 1440}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 262, "x": 343, "type": "mouseover", "message_id": 1441}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 262, "x": 343, "type": "mouseover", "message_id": 1442}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 262, "x": 343, "type": "mousemove", "message_id": 1443}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 269, "x": 337, "type": "mousemove", "message_id": 1445}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 265, "x": 340, "type": "mousemove", "message_id": 1444}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 273, "x": 334, "type": "mousemove", "message_id": 1446}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 276, "x": 331, "type": "mousemove", "message_id": 1447}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 280, "x": 327, "type": "mousemove", "message_id": 1448}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 283, "x": 323, "type": "mousemove", "message_id": 1449}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 287, "x": 319, "type": "mousemove", "message_id": 1450}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 291, "x": 316, "type": "mousemove", "message_id": 1451}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 294, "x": 313, "type": "mousemove", "message_id": 1452}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 297, "x": 310, "type": "mousemove", "message_id": 1453}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 300, "x": 307, "type": "mousemove", "message_id": 1454}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 303, "x": 303, "type": "mousemove", "message_id": 1455}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 306, "x": 300, "type": "mousemove", "message_id": 1456}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 309, "x": 297, "type": "mousemove", "message_id": 1457}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 311, "x": 295, "type": "mouseover", "message_id": 1458}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 311, "x": 295, "type": "mouseover", "message_id": 1459}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 311, "x": 295, "type": "mousemove", "message_id": 1460}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 312, "x": 294, "type": "mouseover", "message_id": 1461}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 312, "x": 294, "type": "mouseover", "message_id": 1462}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 312, "x": 294, "type": "mousemove", "message_id": 1463}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 313, "x": 293, "type": "mousemove", "message_id": 1464}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 314, "x": 292, "type": "mousemove", "message_id": 1465}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 314, "x": 292, "type": "mousemove", "message_id": 1466}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 314, "x": 292, "type": "mousemove", "message_id": 1467}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 314, "x": 292, "type": "mousemove", "message_id": 1468}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 314, "x": 292, "type": "mousemove", "message_id": 1469}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 315, "x": 292, "type": "mousemove", "message_id": 1470}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 315, "x": 292, "type": "mousemove", "message_id": 1471}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 316, "x": 292, "type": "mousemove", "message_id": 1472}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 316, "x": 292, "type": "mousemove", "message_id": 1473}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 317, "x": 292, "type": "mousemove", "message_id": 1474}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 319, "x": 292, "type": "mousemove", "message_id": 1475}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 320, "x": 293, "type": "mousemove", "message_id": 1476}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 322, "x": 293, "type": "mousemove", "message_id": 1477}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 324, "x": 294, "type": "mousemove", "message_id": 1478}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 325, "x": 295, "type": "mousemove", "message_id": 1479}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 326, "x": 295, "type": "mousemove", "message_id": 1480}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 326, "x": 296, "type": "mousemove", "message_id": 1481}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 297, "type": "mousemove", "message_id": 1482}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 299, "type": "mouseover", "message_id": 1483}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 299, "type": "mouseover", "message_id": 1484}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 299, "type": "mousemove", "message_id": 1485}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 300, "type": "mouseover", "message_id": 1486}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 300, "type": "mouseover", "message_id": 1487}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 302, "type": "mouseover", "message_id": 1489}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 302, "type": "mouseover", "message_id": 1490}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 300, "type": "mousemove", "message_id": 1488}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 302, "type": "mousemove", "message_id": 1491}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 304, "type": "mousemove", "message_id": 1492}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 306, "type": "mousemove", "message_id": 1493}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 327, "x": 308, "type": "mousemove", "message_id": 1494}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 326, "x": 309, "type": "mouseover", "message_id": 1495}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 326, "x": 309, "type": "mouseover", "message_id": 1496}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 326, "x": 309, "type": "mousemove", "message_id": 1497}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 326, "x": 309, "type": "mousemove", "message_id": 1498}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 326, "x": 310, "type": "mousemove", "message_id": 1499}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 326, "x": 310, "type": "mousemove", "message_id": 1500}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 326, "x": 310, "type": "mousedown", "message_id": 1501}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 326, "x": 310, "type": "mouseup", "message_id": 1503}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 326, "x": 310, "type": "mousedown", "message_id": 1504}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 326, "x": 310, "type": "mouseup", "message_id": 1507}
|
||||
{"sender": 3914, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 1508, "altKey": false, "metaKey": false, "key": "1", "ctrlKey": false, "type": "keydown", "keyCode": 49}
|
||||
{"sender": 3914, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 1510, "altKey": false, "metaKey": false, "key": "-", "ctrlKey": false, "type": "keydown", "keyCode": 189}
|
||||
{"sender": 3914, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 1512, "altKey": false, "metaKey": false, "key": "2", "ctrlKey": false, "type": "keydown", "keyCode": 50}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 326, "x": 310, "type": "mousemove", "message_id": 1514}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 285, "x": 312, "type": "mouseover", "message_id": 1515}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 285, "x": 312, "type": "mouseover", "message_id": 1516}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 285, "x": 312, "type": "mousemove", "message_id": 1517}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 269, "x": 311, "type": "mouseover", "message_id": 1518}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 269, "x": 311, "type": "mouseover", "message_id": 1519}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 269, "x": 311, "type": "mousemove", "message_id": 1520}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 262, "x": 311, "type": "mouseover", "message_id": 1521}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 262, "x": 311, "type": "mouseover", "message_id": 1522}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 262, "x": 311, "type": "mousemove", "message_id": 1523}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 253, "x": 311, "type": "mousemove", "message_id": 1524}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 246, "x": 310, "type": "mousemove", "message_id": 1525}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 237, "x": 310, "type": "mousemove", "message_id": 1526}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 229, "x": 310, "type": "mousemove", "message_id": 1527}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 223, "x": 310, "type": "mousemove", "message_id": 1528}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 218, "x": 310, "type": "mousemove", "message_id": 1529}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 215, "x": 310, "type": "mousemove", "message_id": 1530}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 211, "x": 310, "type": "mousemove", "message_id": 1531}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 208, "x": 309, "type": "mousemove", "message_id": 1532}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 206, "x": 309, "type": "mousemove", "message_id": 1533}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 203, "x": 309, "type": "mousemove", "message_id": 1534}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 202, "x": 308, "type": "mousemove", "message_id": 1535}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 201, "x": 308, "type": "mousemove", "message_id": 1536}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 200, "x": 308, "type": "mousemove", "message_id": 1537}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 199, "x": 308, "type": "mousemove", "message_id": 1538}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 198, "x": 308, "type": "mousemove", "message_id": 1539}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 198, "x": 308, "type": "mousemove", "message_id": 1540}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 197, "x": 308, "type": "mousemove", "message_id": 1541}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 197, "x": 308, "type": "mousemove", "message_id": 1542}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 197, "x": 308, "type": "mousedown", "message_id": 1543}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 197, "x": 308, "type": "mouseup", "message_id": 1545}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 197, "x": 308, "type": "mousemove", "message_id": 1546}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 196, "x": 308, "type": "mousemove", "message_id": 1547}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 195, "x": 308, "type": "mousemove", "message_id": 1548}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 192, "x": 307, "type": "mousemove", "message_id": 1549}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 187, "x": 305, "type": "mouseover", "message_id": 1550}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 187, "x": 305, "type": "mouseover", "message_id": 1551}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 180, "x": 300, "type": "mouseover", "message_id": 1553}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 187, "x": 305, "type": "mousemove", "message_id": 1552}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 180, "x": 300, "type": "mouseover", "message_id": 1554}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 180, "x": 300, "type": "mousemove", "message_id": 1555}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 166, "x": 289, "type": "mousemove", "message_id": 1557}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 173, "x": 294, "type": "mousemove", "message_id": 1556}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 158, "x": 282, "type": "mousemove", "message_id": 1558}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 150, "x": 275, "type": "mousemove", "message_id": 1559}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 142, "x": 267, "type": "mousemove", "message_id": 1560}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 133, "x": 259, "type": "mousemove", "message_id": 1561}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 125, "x": 250, "type": "mousemove", "message_id": 1562}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 116, "x": 242, "type": "mousemove", "message_id": 1563}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 108, "x": 235, "type": "mousemove", "message_id": 1564}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 101, "x": 229, "type": "mousemove", "message_id": 1565}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 97, "x": 224, "type": "mousemove", "message_id": 1566}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 93, "x": 220, "type": "mousemove", "message_id": 1567}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 90, "x": 218, "type": "mouseover", "message_id": 1569}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 90, "x": 218, "type": "mouseover", "message_id": 1568}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 90, "x": 218, "type": "mousemove", "message_id": 1570}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 88, "x": 217, "type": "mouseover", "message_id": 1571}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 88, "x": 217, "type": "mouseover", "message_id": 1572}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 88, "x": 217, "type": "mousemove", "message_id": 1573}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 87, "x": 215, "type": "mouseover", "message_id": 1574}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 87, "x": 215, "type": "mouseover", "message_id": 1575}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 87, "x": 215, "type": "mousemove", "message_id": 1576}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 85, "x": 214, "type": "mouseover", "message_id": 1577}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 85, "x": 214, "type": "mousemove", "message_id": 1579}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 85, "x": 214, "type": "mouseover", "message_id": 1578}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 84, "x": 213, "type": "mousemove", "message_id": 1580}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 83, "x": 212, "type": "mousemove", "message_id": 1581}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 82, "x": 211, "type": "mousemove", "message_id": 1582}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 81, "x": 211, "type": "mousemove", "message_id": 1583}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 80, "x": 210, "type": "mousemove", "message_id": 1584}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 79, "x": 209, "type": "mousemove", "message_id": 1585}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 77, "x": 208, "type": "mousemove", "message_id": 1586}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 75, "x": 205, "type": "mouseover", "message_id": 1587}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 75, "x": 205, "type": "mousemove", "message_id": 1589}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 75, "x": 205, "type": "mouseover", "message_id": 1588}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 72, "x": 203, "type": "mouseover", "message_id": 1590}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 72, "x": 203, "type": "mouseover", "message_id": 1591}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 72, "x": 203, "type": "mousemove", "message_id": 1592}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 70, "x": 200, "type": "mouseover", "message_id": 1593}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 70, "x": 200, "type": "mouseover", "message_id": 1594}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 70, "x": 200, "type": "mousemove", "message_id": 1595}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 68, "x": 199, "type": "mouseover", "message_id": 1596}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 68, "x": 199, "type": "mouseover", "message_id": 1597}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 68, "x": 199, "type": "mousemove", "message_id": 1598}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 67, "x": 198, "type": "mousemove", "message_id": 1599}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 66, "x": 197, "type": "mousemove", "message_id": 1600}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 64, "x": 196, "type": "mousemove", "message_id": 1601}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 62, "x": 195, "type": "mousemove", "message_id": 1602}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 61, "x": 195, "type": "mousemove", "message_id": 1603}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 60, "x": 194, "type": "mousemove", "message_id": 1604}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 59, "x": 194, "type": "mousemove", "message_id": 1605}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 58, "x": 194, "type": "mousemove", "message_id": 1606}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 56, "x": 193, "type": "mousemove", "message_id": 1607}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 55, "x": 192, "type": "mousemove", "message_id": 1608}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 54, "x": 191, "type": "mousemove", "message_id": 1609}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 191, "type": "mousemove", "message_id": 1610}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 191, "type": "mousemove", "message_id": 1611}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 191, "type": "mousemove", "message_id": 1612}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 191, "type": "mousemove", "message_id": 1613}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 191, "type": "mousemove", "message_id": 1614}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 51, "x": 191, "type": "mousemove", "message_id": 1615}
|
||||
167
recordings/test_export.replay
Normal file
167
recordings/test_export.replay
Normal file
@ -0,0 +1,167 @@
|
||||
{"scale": 0.9299999999999995, "sender": 4637, "msg_type": "ViewPort", "panY": 60.64999999999975, "panX": 49.97999999999968, "message_id": 627}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 46, "x": 176, "type": "mousemove", "message_id": 628}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 46, "x": 176, "type": "mousemove", "message_id": 629}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 46, "x": 176, "type": "mousemove", "message_id": 630}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 46, "x": 176, "type": "mousemove", "message_id": 631}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 47, "x": 176, "type": "mousemove", "message_id": 632}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 49, "x": 176, "type": "mousemove", "message_id": 633}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 52, "x": 176, "type": "mousemove", "message_id": 634}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 55, "x": 175, "type": "mousemove", "message_id": 635}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 59, "x": 175, "type": "mousemove", "message_id": 636}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 64, "x": 173, "type": "mouseover", "message_id": 637}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 64, "x": 173, "type": "mousemove", "message_id": 639}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 70, "x": 172, "type": "mouseover", "message_id": 640}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 64, "x": 173, "type": "mouseover", "message_id": 638}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 70, "x": 172, "type": "mouseover", "message_id": 641}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 70, "x": 172, "type": "mousemove", "message_id": 642}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 76, "x": 171, "type": "mousemove", "message_id": 643}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 81, "x": 170, "type": "mousemove", "message_id": 644}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 88, "x": 170, "type": "mousemove", "message_id": 645}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 96, "x": 170, "type": "mousemove", "message_id": 646}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 101, "x": 170, "type": "mousemove", "message_id": 647}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 109, "x": 170, "type": "mousemove", "message_id": 648}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 116, "x": 170, "type": "mousemove", "message_id": 649}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 123, "x": 171, "type": "mousemove", "message_id": 650}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 129, "x": 172, "type": "mousemove", "message_id": 651}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 134, "x": 174, "type": "mouseover", "message_id": 652}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 134, "x": 174, "type": "mouseover", "message_id": 653}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 134, "x": 174, "type": "mousemove", "message_id": 654}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 138, "x": 176, "type": "mousemove", "message_id": 655}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 143, "x": 179, "type": "mousemove", "message_id": 656}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 147, "x": 182, "type": "mousemove", "message_id": 657}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 151, "x": 187, "type": "mousemove", "message_id": 658}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 154, "x": 193, "type": "mousemove", "message_id": 659}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 157, "x": 200, "type": "mousemove", "message_id": 660}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 159, "x": 209, "type": "mousemove", "message_id": 661}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 160, "x": 217, "type": "mouseover", "message_id": 662}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 160, "x": 217, "type": "mouseover", "message_id": 663}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 160, "x": 217, "type": "mousemove", "message_id": 664}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 161, "x": 230, "type": "mousemove", "message_id": 665}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 161, "x": 245, "type": "mousemove", "message_id": 666}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 161, "x": 260, "type": "mousemove", "message_id": 667}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 159, "x": 276, "type": "mouseover", "message_id": 668}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 159, "x": 276, "type": "mouseover", "message_id": 669}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 159, "x": 276, "type": "mousemove", "message_id": 670}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 156, "x": 292, "type": "mousemove", "message_id": 671}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 151, "x": 307, "type": "mousemove", "message_id": 672}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 143, "x": 319, "type": "mousemove", "message_id": 673}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 134, "x": 329, "type": "mousemove", "message_id": 674}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 122, "x": 338, "type": "mousemove", "message_id": 675}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 111, "x": 344, "type": "mousemove", "message_id": 676}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 102, "x": 349, "type": "mousemove", "message_id": 677}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 93, "x": 351, "type": "mousemove", "message_id": 678}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 88, "x": 352, "type": "mouseover", "message_id": 679}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 88, "x": 352, "type": "mouseover", "message_id": 680}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 88, "x": 352, "type": "mousemove", "message_id": 681}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 80, "x": 352, "type": "mousemove", "message_id": 682}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 73, "x": 351, "type": "mousemove", "message_id": 683}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 64, "x": 349, "type": "mouseover", "message_id": 684}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 64, "x": 349, "type": "mouseover", "message_id": 685}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 64, "x": 349, "type": "mousemove", "message_id": 686}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 55, "x": 344, "type": "mousemove", "message_id": 687}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 48, "x": 339, "type": "mousemove", "message_id": 688}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 42, "x": 333, "type": "mousemove", "message_id": 689}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 39, "x": 328, "type": "mousemove", "message_id": 690}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 36, "x": 323, "type": "mousemove", "message_id": 691}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 34, "x": 320, "type": "mousemove", "message_id": 692}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 33, "x": 317, "type": "mouseover", "message_id": 693}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 33, "x": 317, "type": "mouseover", "message_id": 694}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 33, "x": 317, "type": "mousemove", "message_id": 695}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 32, "x": 315, "type": "mousemove", "message_id": 696}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 32, "x": 313, "type": "mousemove", "message_id": 697}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 31, "x": 311, "type": "mousemove", "message_id": 698}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 31, "x": 307, "type": "mousemove", "message_id": 699}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 31, "x": 303, "type": "mousemove", "message_id": 700}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 31, "x": 300, "type": "mousemove", "message_id": 701}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 31, "x": 296, "type": "mousemove", "message_id": 702}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 31, "x": 292, "type": "mousemove", "message_id": 703}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 31, "x": 287, "type": "mousemove", "message_id": 704}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 31, "x": 281, "type": "mousemove", "message_id": 705}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 31, "x": 274, "type": "mousemove", "message_id": 706}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 31, "x": 266, "type": "mousemove", "message_id": 707}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 260, "type": "mousemove", "message_id": 708}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 255, "type": "mousemove", "message_id": 709}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 253, "type": "mousemove", "message_id": 710}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 252, "type": "mouseover", "message_id": 711}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 252, "type": "mouseover", "message_id": 712}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 252, "type": "mousemove", "message_id": 713}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 252, "type": "mousemove", "message_id": 714}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 252, "type": "mousemove", "message_id": 715}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 252, "type": "mousemove", "message_id": 716}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 252, "type": "mousemove", "message_id": 717}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 252, "type": "mousemove", "message_id": 718}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 252, "type": "mousemove", "message_id": 719}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 252, "type": "mousedown", "message_id": 720}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 252, "type": "mousemove", "message_id": 721}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 252, "type": "mouseup", "message_id": 722}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 252, "type": "mouseover", "message_id": 723}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 252, "type": "mouseover", "message_id": 724}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 252, "type": "mousemove", "message_id": 725}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 252, "type": "mouseover", "message_id": 726}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 252, "type": "mouseover", "message_id": 727}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 252, "type": "mousemove", "message_id": 728}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 30, "x": 252, "type": "mousemove", "message_id": 729}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 31, "x": 252, "type": "mousemove", "message_id": 730}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 31, "x": 252, "type": "mousemove", "message_id": 731}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 33, "x": 253, "type": "mousemove", "message_id": 732}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 36, "x": 255, "type": "mouseover", "message_id": 733}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 36, "x": 255, "type": "mouseover", "message_id": 734}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 36, "x": 255, "type": "mousemove", "message_id": 735}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 42, "x": 256, "type": "mouseover", "message_id": 736}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 42, "x": 256, "type": "mouseover", "message_id": 737}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 42, "x": 256, "type": "mousemove", "message_id": 738}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 47, "x": 257, "type": "mousemove", "message_id": 739}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 55, "x": 257, "type": "mousemove", "message_id": 740}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 64, "x": 256, "type": "mousemove", "message_id": 741}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 71, "x": 253, "type": "mouseover", "message_id": 742}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 71, "x": 253, "type": "mousemove", "message_id": 744}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 71, "x": 253, "type": "mouseover", "message_id": 743}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 76, "x": 251, "type": "mousemove", "message_id": 745}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 81, "x": 248, "type": "mousemove", "message_id": 746}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 85, "x": 244, "type": "mousemove", "message_id": 747}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 89, "x": 240, "type": "mousemove", "message_id": 748}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 91, "x": 237, "type": "mousemove", "message_id": 749}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 93, "x": 234, "type": "mousemove", "message_id": 750}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 94, "x": 231, "type": "mouseover", "message_id": 751}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 94, "x": 231, "type": "mouseover", "message_id": 752}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 94, "x": 231, "type": "mousemove", "message_id": 753}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 94, "x": 228, "type": "mousemove", "message_id": 754}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 94, "x": 225, "type": "mousemove", "message_id": 755}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 94, "x": 221, "type": "mousemove", "message_id": 756}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 94, "x": 217, "type": "mousemove", "message_id": 757}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 93, "x": 214, "type": "mousemove", "message_id": 758}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 93, "x": 211, "type": "mousemove", "message_id": 759}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 92, "x": 209, "type": "mousemove", "message_id": 760}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 92, "x": 207, "type": "mousemove", "message_id": 761}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 91, "x": 206, "type": "mouseover", "message_id": 762}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 91, "x": 206, "type": "mousemove", "message_id": 764}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 91, "x": 206, "type": "mouseover", "message_id": 763}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 90, "x": 204, "type": "mouseover", "message_id": 765}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 90, "x": 204, "type": "mouseover", "message_id": 766}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 90, "x": 204, "type": "mousemove", "message_id": 767}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 88, "x": 201, "type": "mouseover", "message_id": 768}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 88, "x": 201, "type": "mouseover", "message_id": 769}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 85, "x": 198, "type": "mousemove", "message_id": 771}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 88, "x": 201, "type": "mousemove", "message_id": 770}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 83, "x": 196, "type": "mousemove", "message_id": 772}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 80, "x": 193, "type": "mousemove", "message_id": 773}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 77, "x": 192, "type": "mouseover", "message_id": 774}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 77, "x": 192, "type": "mouseover", "message_id": 775}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 77, "x": 192, "type": "mousemove", "message_id": 776}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 74, "x": 191, "type": "mousemove", "message_id": 777}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 71, "x": 190, "type": "mousemove", "message_id": 778}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 67, "x": 189, "type": "mousemove", "message_id": 779}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 64, "x": 188, "type": "mousemove", "message_id": 780}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 60, "x": 187, "type": "mousemove", "message_id": 781}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 59, "x": 187, "type": "mousemove", "message_id": 782}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 57, "x": 186, "type": "mousemove", "message_id": 783}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 55, "x": 186, "type": "mousemove", "message_id": 784}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 52, "x": 186, "type": "mousemove", "message_id": 786}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 53, "x": 186, "type": "mousemove", "message_id": 785}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 51, "x": 186, "type": "mousemove", "message_id": 787}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 50, "x": 186, "type": "mousemove", "message_id": 788}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 49, "x": 187, "type": "mousemove", "message_id": 789}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 49, "x": 187, "type": "mousemove", "message_id": 790}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 48, "x": 187, "type": "mousemove", "message_id": 791}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 48, "x": 187, "type": "mousemove", "message_id": 792}
|
||||
{"sender": 4637, "msg_type": "MouseEvent", "y": 48, "x": 187, "type": "mousemove", "message_id": 793}
|
||||
180
recordings/test_link_unconnected.replay
Normal file
180
recordings/test_link_unconnected.replay
Normal file
@ -0,0 +1,180 @@
|
||||
{"panX": 88.50231573279976, "panY": 87.7890649686315, "scale": 0.7399999999999998, "sender": 4115, "msg_type": "ViewPort", "message_id": 0}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 46, "x": 189, "type": "mousemove", "message_id": 2099}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 57, "x": 191, "type": "mouseover", "message_id": 2100}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 57, "x": 191, "type": "mouseover", "message_id": 2101}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 57, "x": 191, "type": "mousemove", "message_id": 2102}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 74, "x": 193, "type": "mouseover", "message_id": 2103}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 74, "x": 193, "type": "mouseover", "message_id": 2104}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 74, "x": 193, "type": "mousemove", "message_id": 2105}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 91, "x": 197, "type": "mousemove", "message_id": 2106}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 110, "x": 200, "type": "mousemove", "message_id": 2107}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 130, "x": 206, "type": "mousemove", "message_id": 2108}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 150, "x": 210, "type": "mousemove", "message_id": 2109}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 170, "x": 215, "type": "mousemove", "message_id": 2110}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 186, "x": 220, "type": "mousemove", "message_id": 2111}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 205, "x": 225, "type": "mousemove", "message_id": 2112}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 220, "x": 230, "type": "mousemove", "message_id": 2113}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 237, "x": 235, "type": "mousemove", "message_id": 2114}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 243, "x": 237, "type": "mousemove", "message_id": 2115}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 256, "x": 241, "type": "mousemove", "message_id": 2116}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 267, "x": 246, "type": "mousemove", "message_id": 2117}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 275, "x": 249, "type": "mousemove", "message_id": 2118}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 278, "x": 249, "type": "mouseover", "message_id": 2120}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 278, "x": 249, "type": "mouseover", "message_id": 2119}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 278, "x": 249, "type": "mousemove", "message_id": 2121}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 288, "x": 254, "type": "mouseover", "message_id": 2122}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 288, "x": 254, "type": "mouseover", "message_id": 2123}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 288, "x": 254, "type": "mousemove", "message_id": 2124}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 292, "x": 255, "type": "mouseover", "message_id": 2125}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 292, "x": 255, "type": "mouseover", "message_id": 2126}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 292, "x": 255, "type": "mousemove", "message_id": 2127}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 294, "x": 256, "type": "mousemove", "message_id": 2128}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 299, "x": 258, "type": "mouseover", "message_id": 2129}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 299, "x": 258, "type": "mouseover", "message_id": 2130}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 299, "x": 258, "type": "mousemove", "message_id": 2131}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 301, "x": 259, "type": "mouseover", "message_id": 2132}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 301, "x": 259, "type": "mouseover", "message_id": 2133}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 301, "x": 259, "type": "mousemove", "message_id": 2134}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 304, "x": 260, "type": "mousemove", "message_id": 2135}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 306, "x": 260, "type": "mousemove", "message_id": 2136}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 309, "x": 261, "type": "mousemove", "message_id": 2137}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 310, "x": 262, "type": "mousemove", "message_id": 2138}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 312, "x": 262, "type": "mousemove", "message_id": 2139}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 313, "x": 262, "type": "mousemove", "message_id": 2140}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 315, "x": 263, "type": "mousemove", "message_id": 2142}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 314, "x": 263, "type": "mousemove", "message_id": 2141}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 315, "x": 263, "type": "mousemove", "message_id": 2143}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 315, "x": 263, "type": "mousemove", "message_id": 2144}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 315, "x": 263, "type": "mousedown", "message_id": 2145}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 315, "x": 263, "type": "mouseup", "message_id": 2146}
|
||||
{"sender": 4115, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 2147, "altKey": false, "metaKey": false, "key": "s", "ctrlKey": false, "type": "keydown", "keyCode": 83}
|
||||
{"sender": 4115, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 2149, "altKey": false, "metaKey": false, "key": "l", "ctrlKey": false, "type": "keydown", "keyCode": 76}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 315, "x": 263, "type": "mousedown", "message_id": 2150}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 315, "x": 263, "type": "mouseup", "message_id": 2151}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 315, "x": 264, "type": "mousemove", "message_id": 2153}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 314, "x": 267, "type": "mouseover", "message_id": 2154}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 314, "x": 267, "type": "mouseover", "message_id": 2155}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 314, "x": 267, "type": "mousemove", "message_id": 2156}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 311, "x": 272, "type": "mouseover", "message_id": 2157}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 311, "x": 272, "type": "mouseover", "message_id": 2158}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 311, "x": 272, "type": "mousemove", "message_id": 2159}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 309, "x": 277, "type": "mousemove", "message_id": 2160}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 307, "x": 283, "type": "mouseover", "message_id": 2161}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 307, "x": 283, "type": "mouseover", "message_id": 2162}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 307, "x": 283, "type": "mousemove", "message_id": 2163}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 305, "x": 291, "type": "mousemove", "message_id": 2164}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 297, "x": 311, "type": "mouseover", "message_id": 2165}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 297, "x": 311, "type": "mouseover", "message_id": 2166}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 297, "x": 311, "type": "mousemove", "message_id": 2167}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 291, "x": 330, "type": "mousemove", "message_id": 2168}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 290, "x": 340, "type": "mouseover", "message_id": 2169}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 290, "x": 340, "type": "mouseover", "message_id": 2170}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 290, "x": 340, "type": "mousemove", "message_id": 2171}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 287, "x": 360, "type": "mouseover", "message_id": 2172}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 287, "x": 360, "type": "mouseover", "message_id": 2173}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 287, "x": 360, "type": "mousemove", "message_id": 2174}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 286, "x": 378, "type": "mousemove", "message_id": 2175}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 285, "x": 392, "type": "mouseover", "message_id": 2176}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 285, "x": 392, "type": "mouseover", "message_id": 2177}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 285, "x": 392, "type": "mousemove", "message_id": 2178}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 285, "x": 399, "type": "mousemove", "message_id": 2179}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 285, "x": 410, "type": "mousemove", "message_id": 2180}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 285, "x": 420, "type": "mousemove", "message_id": 2181}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 285, "x": 423, "type": "mousemove", "message_id": 2182}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 285, "x": 428, "type": "mousemove", "message_id": 2183}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 285, "x": 433, "type": "mousemove", "message_id": 2184}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 285, "x": 438, "type": "mousemove", "message_id": 2186}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 285, "x": 436, "type": "mousemove", "message_id": 2185}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 285, "x": 440, "type": "mousemove", "message_id": 2187}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 285, "x": 440, "type": "mouseover", "message_id": 2188}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 285, "x": 440, "type": "mouseover", "message_id": 2189}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 285, "x": 440, "type": "mousemove", "message_id": 2190}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 285, "x": 441, "type": "mousemove", "message_id": 2191}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 285, "x": 441, "type": "mousemove", "message_id": 2192}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 285, "x": 442, "type": "mousemove", "message_id": 2193}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 285, "x": 442, "type": "mousemove", "message_id": 2194}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 286, "x": 442, "type": "mousemove", "message_id": 2195}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 286, "x": 442, "type": "mousemove", "message_id": 2196}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 286, "x": 441, "type": "mousemove", "message_id": 2197}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 286, "x": 441, "type": "mousemove", "message_id": 2198}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 286, "x": 440, "type": "mousemove", "message_id": 2199}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 286, "x": 440, "type": "mousemove", "message_id": 2200}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 286, "x": 439, "type": "mousemove", "message_id": 2201}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 286, "x": 439, "type": "mousemove", "message_id": 2202}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 286, "x": 439, "type": "mousemove", "message_id": 2203}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 286, "x": 439, "type": "mousemove", "message_id": 2204}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 286, "x": 438, "type": "mousemove", "message_id": 2205}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 286, "x": 438, "type": "mousedown", "message_id": 2206}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 286, "x": 438, "type": "mouseup", "message_id": 2207}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 286, "x": 438, "type": "mousemove", "message_id": 2209}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 284, "x": 436, "type": "mouseover", "message_id": 2211}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 284, "x": 436, "type": "mouseover", "message_id": 2210}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 281, "x": 433, "type": "mousemove", "message_id": 2213}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 284, "x": 436, "type": "mousemove", "message_id": 2212}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 278, "x": 430, "type": "mousemove", "message_id": 2214}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 274, "x": 425, "type": "mousemove", "message_id": 2215}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 270, "x": 421, "type": "mousemove", "message_id": 2216}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 264, "x": 415, "type": "mousemove", "message_id": 2217}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 258, "x": 407, "type": "mousemove", "message_id": 2218}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 226, "x": 375, "type": "mousemove", "message_id": 2220}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 244, "x": 392, "type": "mousemove", "message_id": 2219}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 207, "x": 357, "type": "mousemove", "message_id": 2221}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 185, "x": 336, "type": "mousemove", "message_id": 2222}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 163, "x": 314, "type": "mousemove", "message_id": 2223}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 142, "x": 293, "type": "mousemove", "message_id": 2224}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 135, "x": 287, "type": "mousemove", "message_id": 2225}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 117, "x": 269, "type": "mousemove", "message_id": 2226}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 104, "x": 256, "type": "mousemove", "message_id": 2227}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 98, "x": 250, "type": "mousemove", "message_id": 2228}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 88, "x": 238, "type": "mouseover", "message_id": 2229}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 88, "x": 238, "type": "mouseover", "message_id": 2230}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 88, "x": 238, "type": "mousemove", "message_id": 2231}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 80, "x": 229, "type": "mouseover", "message_id": 2232}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 80, "x": 229, "type": "mouseover", "message_id": 2233}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 80, "x": 229, "type": "mousemove", "message_id": 2234}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 73, "x": 222, "type": "mousemove", "message_id": 2235}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 67, "x": 216, "type": "mousemove", "message_id": 2236}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 64, "x": 211, "type": "mousemove", "message_id": 2237}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 62, "x": 209, "type": "mousemove", "message_id": 2238}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 59, "x": 205, "type": "mouseover", "message_id": 2239}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 59, "x": 205, "type": "mouseover", "message_id": 2240}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 59, "x": 205, "type": "mousemove", "message_id": 2241}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 55, "x": 200, "type": "mousemove", "message_id": 2242}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 54, "x": 199, "type": "mouseover", "message_id": 2243}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 54, "x": 199, "type": "mouseover", "message_id": 2244}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 54, "x": 199, "type": "mousemove", "message_id": 2245}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 52, "x": 196, "type": "mouseover", "message_id": 2246}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 52, "x": 196, "type": "mouseover", "message_id": 2247}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 52, "x": 196, "type": "mousemove", "message_id": 2248}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 51, "x": 194, "type": "mouseover", "message_id": 2249}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 51, "x": 194, "type": "mouseover", "message_id": 2250}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 51, "x": 194, "type": "mousemove", "message_id": 2251}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 50, "x": 193, "type": "mouseover", "message_id": 2252}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 50, "x": 193, "type": "mouseover", "message_id": 2253}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 50, "x": 193, "type": "mousemove", "message_id": 2254}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 48, "x": 191, "type": "mouseover", "message_id": 2255}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 48, "x": 191, "type": "mouseover", "message_id": 2256}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 48, "x": 191, "type": "mousemove", "message_id": 2257}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 47, "x": 190, "type": "mouseover", "message_id": 2258}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 47, "x": 190, "type": "mouseover", "message_id": 2259}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 47, "x": 190, "type": "mousemove", "message_id": 2260}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 46, "x": 189, "type": "mousemove", "message_id": 2261}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 45, "x": 187, "type": "mouseover", "message_id": 2262}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 45, "x": 187, "type": "mouseover", "message_id": 2263}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 45, "x": 187, "type": "mousemove", "message_id": 2264}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 44, "x": 186, "type": "mouseover", "message_id": 2265}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 44, "x": 186, "type": "mouseover", "message_id": 2266}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 44, "x": 186, "type": "mousemove", "message_id": 2267}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 43, "x": 185, "type": "mousemove", "message_id": 2268}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 42, "x": 183, "type": "mouseover", "message_id": 2269}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 42, "x": 183, "type": "mouseover", "message_id": 2270}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 42, "x": 183, "type": "mousemove", "message_id": 2271}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 41, "x": 182, "type": "mouseover", "message_id": 2272}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 41, "x": 182, "type": "mouseover", "message_id": 2273}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 41, "x": 182, "type": "mousemove", "message_id": 2274}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 40, "x": 180, "type": "mouseover", "message_id": 2275}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 40, "x": 180, "type": "mouseover", "message_id": 2276}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 40, "x": 180, "type": "mousemove", "message_id": 2277}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 39, "x": 179, "type": "mouseover", "message_id": 2278}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 39, "x": 179, "type": "mouseover", "message_id": 2279}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 39, "x": 179, "type": "mousemove", "message_id": 2280}
|
||||
536
recordings/test_mouse.replay
Normal file
536
recordings/test_mouse.replay
Normal file
@ -0,0 +1,536 @@
|
||||
{"panX": 156.0005645513574, "panY": 143.5339218357422, "scale": 0.510765027322404, "sender": 3914, "msg_type": "ViewPort", "message_id": 0}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 49, "x": 172, "type": "mousemove", "message_id": 121}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 49, "x": 172, "type": "mousemove", "message_id": 122}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 49, "x": 173, "type": "mousemove", "message_id": 123}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 50, "x": 174, "type": "mousemove", "message_id": 124}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 50, "x": 175, "type": "mousemove", "message_id": 125}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 51, "x": 176, "type": "mousemove", "message_id": 126}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 51, "x": 178, "type": "mouseover", "message_id": 127}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 51, "x": 178, "type": "mouseover", "message_id": 128}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 51, "x": 178, "type": "mousemove", "message_id": 129}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 179, "type": "mouseover", "message_id": 130}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 179, "type": "mouseover", "message_id": 131}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 179, "type": "mousemove", "message_id": 132}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 179, "type": "mousemove", "message_id": 133}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 179, "type": "mousemove", "message_id": 134}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 180, "type": "mousemove", "message_id": 135}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 181, "type": "mousemove", "message_id": 136}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 181, "type": "mousemove", "message_id": 137}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 182, "type": "mousemove", "message_id": 138}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 183, "type": "mousemove", "message_id": 139}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 183, "type": "mousemove", "message_id": 140}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 184, "type": "mousemove", "message_id": 141}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 184, "type": "mousemove", "message_id": 142}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 184, "type": "mousemove", "message_id": 143}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 182, "type": "mouseover", "message_id": 144}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 182, "type": "mouseover", "message_id": 145}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 182, "type": "mousemove", "message_id": 146}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 178, "type": "mousemove", "message_id": 147}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 170, "type": "mousemove", "message_id": 148}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 158, "type": "mousemove", "message_id": 149}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 54, "x": 141, "type": "mouseover", "message_id": 150}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 54, "x": 141, "type": "mouseover", "message_id": 151}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 54, "x": 141, "type": "mousemove", "message_id": 152}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 56, "x": 120, "type": "mouseover", "message_id": 153}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 56, "x": 120, "type": "mouseover", "message_id": 154}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 56, "x": 120, "type": "mousemove", "message_id": 155}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 58, "x": 98, "type": "mousemove", "message_id": 156}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 59, "x": 74, "type": "mouseover", "message_id": 157}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 59, "x": 74, "type": "mouseover", "message_id": 158}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 59, "x": 74, "type": "mousemove", "message_id": 159}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 60, "x": 52, "type": "mouseover", "message_id": 160}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 60, "x": 52, "type": "mouseover", "message_id": 161}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 60, "x": 52, "type": "mousemove", "message_id": 162}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 61, "x": 33, "type": "mouseover", "message_id": 163}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 61, "x": 33, "type": "mousemove", "message_id": 165}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 61, "x": 33, "type": "mouseover", "message_id": 164}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 61, "x": 19, "type": "mouseover", "message_id": 166}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 61, "x": 19, "type": "mouseover", "message_id": 167}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 61, "x": 19, "type": "mousemove", "message_id": 168}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 62, "x": 10, "type": "mousemove", "message_id": 169}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 62, "x": 4, "type": "mousemove", "message_id": 170}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 62, "x": 0, "type": "mousemove", "message_id": 171}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 62, "x": -1, "type": "mouseout", "message_id": 172}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 59, "x": 2, "type": "mouseover", "message_id": 174}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 59, "x": 2, "type": "mouseover", "message_id": 173}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 59, "x": 2, "type": "mousemove", "message_id": 175}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 59, "x": 2, "type": "mouseover", "message_id": 176}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 59, "x": 2, "type": "mouseover", "message_id": 177}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 59, "x": 2, "type": "mousemove", "message_id": 178}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 58, "x": 7, "type": "mouseover", "message_id": 179}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 58, "x": 7, "type": "mouseover", "message_id": 180}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 58, "x": 7, "type": "mousemove", "message_id": 181}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 57, "x": 12, "type": "mousemove", "message_id": 182}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 56, "x": 17, "type": "mousemove", "message_id": 183}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 55, "x": 22, "type": "mousemove", "message_id": 184}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 54, "x": 26, "type": "mousemove", "message_id": 185}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 29, "type": "mousemove", "message_id": 186}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 31, "type": "mousemove", "message_id": 187}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 32, "type": "mouseover", "message_id": 188}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 32, "type": "mouseover", "message_id": 189}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 32, "type": "mousemove", "message_id": 190}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 31, "type": "mousemove", "message_id": 191}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 31, "type": "mousemove", "message_id": 192}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 29, "type": "mouseover", "message_id": 193}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 29, "type": "mouseover", "message_id": 194}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 29, "type": "mousemove", "message_id": 195}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 28, "type": "mouseover", "message_id": 196}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 28, "type": "mouseover", "message_id": 197}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 52, "x": 28, "type": "mousemove", "message_id": 198}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 27, "type": "mousemove", "message_id": 199}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 26, "type": "mousemove", "message_id": 200}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 25, "type": "mousemove", "message_id": 201}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 25, "type": "mousemove", "message_id": 202}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 25, "type": "mousemove", "message_id": 203}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 25, "type": "mousemove", "message_id": 204}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 26, "type": "mousemove", "message_id": 205}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 54, "x": 28, "type": "mouseover", "message_id": 206}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 54, "x": 28, "type": "mouseover", "message_id": 207}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 54, "x": 28, "type": "mousemove", "message_id": 208}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 54, "x": 32, "type": "mousemove", "message_id": 209}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 54, "x": 39, "type": "mousemove", "message_id": 210}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 54, "x": 49, "type": "mousemove", "message_id": 211}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 55, "x": 65, "type": "mouseover", "message_id": 212}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 55, "x": 65, "type": "mouseover", "message_id": 213}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 55, "x": 65, "type": "mousemove", "message_id": 214}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 56, "x": 83, "type": "mouseover", "message_id": 215}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 56, "x": 83, "type": "mouseover", "message_id": 216}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 56, "x": 83, "type": "mousemove", "message_id": 217}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 58, "x": 106, "type": "mousemove", "message_id": 218}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 59, "x": 131, "type": "mousemove", "message_id": 219}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 62, "x": 160, "type": "mouseover", "message_id": 220}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 62, "x": 160, "type": "mouseover", "message_id": 221}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 62, "x": 160, "type": "mousemove", "message_id": 222}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 63, "x": 191, "type": "mousemove", "message_id": 223}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 66, "x": 224, "type": "mousemove", "message_id": 224}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 69, "x": 257, "type": "mousemove", "message_id": 225}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 70, "x": 292, "type": "mousemove", "message_id": 226}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 72, "x": 326, "type": "mousemove", "message_id": 227}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 74, "x": 357, "type": "mousemove", "message_id": 228}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 76, "x": 386, "type": "mousemove", "message_id": 229}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 77, "x": 413, "type": "mousemove", "message_id": 230}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 78, "x": 438, "type": "mouseover", "message_id": 231}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 78, "x": 438, "type": "mouseover", "message_id": 232}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 78, "x": 438, "type": "mousemove", "message_id": 233}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 79, "x": 455, "type": "mouseover", "message_id": 234}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 79, "x": 455, "type": "mouseover", "message_id": 235}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 79, "x": 455, "type": "mousemove", "message_id": 236}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 81, "x": 474, "type": "mouseover", "message_id": 237}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 81, "x": 474, "type": "mouseover", "message_id": 238}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 81, "x": 474, "type": "mousemove", "message_id": 239}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 82, "x": 493, "type": "mousemove", "message_id": 240}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 83, "x": 506, "type": "mouseover", "message_id": 241}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 83, "x": 506, "type": "mouseover", "message_id": 242}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 83, "x": 506, "type": "mousemove", "message_id": 243}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 83, "x": 515, "type": "mousemove", "message_id": 244}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 84, "x": 519, "type": "mousemove", "message_id": 245}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 84, "x": 521, "type": "mousemove", "message_id": 246}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 84, "x": 523, "type": "mousemove", "message_id": 247}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 84, "x": 525, "type": "mousemove", "message_id": 248}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 84, "x": 526, "type": "mouseover", "message_id": 249}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 84, "x": 526, "type": "mouseover", "message_id": 250}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 84, "x": 526, "type": "mousemove", "message_id": 251}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 84, "x": 527, "type": "mousemove", "message_id": 252}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 84, "x": 527, "type": "mousemove", "message_id": 253}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 84, "x": 527, "type": "mousemove", "message_id": 255}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 84, "x": 527, "type": "mousemove", "message_id": 254}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 84, "x": 528, "type": "mousemove", "message_id": 256}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 84, "x": 530, "type": "mouseover", "message_id": 257}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 84, "x": 530, "type": "mouseover", "message_id": 258}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 84, "x": 530, "type": "mousemove", "message_id": 259}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 84, "x": 533, "type": "mousemove", "message_id": 260}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 84, "x": 537, "type": "mousemove", "message_id": 261}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 85, "x": 544, "type": "mousemove", "message_id": 262}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 85, "x": 553, "type": "mousemove", "message_id": 263}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 86, "x": 566, "type": "mousemove", "message_id": 264}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 87, "x": 581, "type": "mousemove", "message_id": 265}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 87, "x": 596, "type": "mousemove", "message_id": 266}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 87, "x": 607, "type": "mousemove", "message_id": 267}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 87, "x": 614, "type": "mousemove", "message_id": 268}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 87, "x": 620, "type": "mousemove", "message_id": 269}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 87, "x": 624, "type": "mousemove", "message_id": 270}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 87, "x": 627, "type": "mousemove", "message_id": 271}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 87, "x": 629, "type": "mousemove", "message_id": 272}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 87, "x": 631, "type": "mousemove", "message_id": 273}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 87, "x": 631, "type": "mouseover", "message_id": 274}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 87, "x": 631, "type": "mouseover", "message_id": 275}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 87, "x": 631, "type": "mousemove", "message_id": 276}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 87, "x": 632, "type": "mousemove", "message_id": 277}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 86, "x": 632, "type": "mousemove", "message_id": 279}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 86, "x": 633, "type": "mousemove", "message_id": 280}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 86, "x": 632, "type": "mousemove", "message_id": 278}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 86, "x": 634, "type": "mousemove", "message_id": 281}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 85, "x": 635, "type": "mousemove", "message_id": 282}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 85, "x": 636, "type": "mousemove", "message_id": 283}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 85, "x": 636, "type": "mousemove", "message_id": 284}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 85, "x": 637, "type": "mousemove", "message_id": 285}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 85, "x": 637, "type": "mousemove", "message_id": 286}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 84, "x": 637, "type": "mousemove", "message_id": 287}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 85, "x": 637, "type": "mousemove", "message_id": 288}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 85, "x": 637, "type": "mousemove", "message_id": 289}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 86, "x": 637, "type": "mousemove", "message_id": 290}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 89, "x": 638, "type": "mousemove", "message_id": 291}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 92, "x": 638, "type": "mousemove", "message_id": 292}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 98, "x": 638, "type": "mousemove", "message_id": 293}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 107, "x": 640, "type": "mouseover", "message_id": 294}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 107, "x": 640, "type": "mouseover", "message_id": 295}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 107, "x": 640, "type": "mousemove", "message_id": 296}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 121, "x": 643, "type": "mousemove", "message_id": 297}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 139, "x": 648, "type": "mousemove", "message_id": 298}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 159, "x": 653, "type": "mousemove", "message_id": 299}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 181, "x": 655, "type": "mousemove", "message_id": 300}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 205, "x": 655, "type": "mousemove", "message_id": 301}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 231, "x": 655, "type": "mousemove", "message_id": 302}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 256, "x": 656, "type": "mousemove", "message_id": 303}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 284, "x": 657, "type": "mousemove", "message_id": 304}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 316, "x": 658, "type": "mousemove", "message_id": 305}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 352, "x": 658, "type": "mousemove", "message_id": 306}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 391, "x": 657, "type": "mousemove", "message_id": 307}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 430, "x": 656, "type": "mousemove", "message_id": 308}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 469, "x": 655, "type": "mousemove", "message_id": 309}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 507, "x": 652, "type": "mousemove", "message_id": 310}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 543, "x": 649, "type": "mousemove", "message_id": 311}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 573, "x": 644, "type": "mousemove", "message_id": 312}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 599, "x": 641, "type": "mousemove", "message_id": 313}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 623, "x": 639, "type": "mousemove", "message_id": 314}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 644, "x": 639, "type": "mousemove", "message_id": 315}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 663, "x": 640, "type": "mousemove", "message_id": 316}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 679, "x": 641, "type": "mousemove", "message_id": 317}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 693, "x": 642, "type": "mouseover", "message_id": 318}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 693, "x": 642, "type": "mouseover", "message_id": 319}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 693, "x": 642, "type": "mousemove", "message_id": 320}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 703, "x": 643, "type": "mousemove", "message_id": 321}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 710, "x": 644, "type": "mousemove", "message_id": 322}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 713, "x": 644, "type": "mousemove", "message_id": 323}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 714, "x": 644, "type": "mousemove", "message_id": 324}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 715, "x": 644, "type": "mousemove", "message_id": 325}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 715, "x": 644, "type": "mousemove", "message_id": 326}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 715, "x": 644, "type": "mousemove", "message_id": 327}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 715, "x": 644, "type": "mousemove", "message_id": 328}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 715, "x": 643, "type": "mousemove", "message_id": 329}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 716, "x": 643, "type": "mousemove", "message_id": 330}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 716, "x": 643, "type": "mousemove", "message_id": 331}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 643, "type": "mousemove", "message_id": 332}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 718, "x": 643, "type": "mousemove", "message_id": 333}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 718, "x": 643, "type": "mousemove", "message_id": 334}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 718, "x": 642, "type": "mousemove", "message_id": 335}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 718, "x": 642, "type": "mousemove", "message_id": 336}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 718, "x": 640, "type": "mouseover", "message_id": 338}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 718, "x": 640, "type": "mouseover", "message_id": 337}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 718, "x": 640, "type": "mousemove", "message_id": 339}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 718, "x": 637, "type": "mousemove", "message_id": 340}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 718, "x": 632, "type": "mousemove", "message_id": 341}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 718, "x": 623, "type": "mousemove", "message_id": 342}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 718, "x": 611, "type": "mousemove", "message_id": 343}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 594, "type": "mouseover", "message_id": 344}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 594, "type": "mouseover", "message_id": 345}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 594, "type": "mousemove", "message_id": 346}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 574, "type": "mousemove", "message_id": 347}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 553, "type": "mousemove", "message_id": 348}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 528, "type": "mousemove", "message_id": 349}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 495, "type": "mousemove", "message_id": 350}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 716, "x": 456, "type": "mousemove", "message_id": 351}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 714, "x": 394, "type": "mousemove", "message_id": 352}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 712, "x": 338, "type": "mousemove", "message_id": 353}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 710, "x": 301, "type": "mousemove", "message_id": 354}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 708, "x": 251, "type": "mousemove", "message_id": 355}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 708, "x": 210, "type": "mousemove", "message_id": 356}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 709, "x": 179, "type": "mousemove", "message_id": 357}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 710, "x": 162, "type": "mousemove", "message_id": 358}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 712, "x": 141, "type": "mousemove", "message_id": 359}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 712, "x": 124, "type": "mousemove", "message_id": 360}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 713, "x": 110, "type": "mouseover", "message_id": 361}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 713, "x": 110, "type": "mouseover", "message_id": 362}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 713, "x": 110, "type": "mousemove", "message_id": 363}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 714, "x": 100, "type": "mousemove", "message_id": 364}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 714, "x": 95, "type": "mousemove", "message_id": 365}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 715, "x": 91, "type": "mousemove", "message_id": 366}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 716, "x": 90, "type": "mouseover", "message_id": 368}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 716, "x": 90, "type": "mouseover", "message_id": 367}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 716, "x": 90, "type": "mousemove", "message_id": 369}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 716, "x": 89, "type": "mousemove", "message_id": 370}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 716, "x": 89, "type": "mousemove", "message_id": 371}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 88, "type": "mousemove", "message_id": 372}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 87, "type": "mousemove", "message_id": 373}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 86, "type": "mousemove", "message_id": 374}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 84, "type": "mouseover", "message_id": 375}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 84, "type": "mouseover", "message_id": 376}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 84, "type": "mousemove", "message_id": 377}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 83, "type": "mouseover", "message_id": 378}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 83, "type": "mouseover", "message_id": 379}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 83, "type": "mousemove", "message_id": 380}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 81, "type": "mouseover", "message_id": 381}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 81, "type": "mouseover", "message_id": 382}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 81, "type": "mousemove", "message_id": 383}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 80, "type": "mouseover", "message_id": 384}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 80, "type": "mouseover", "message_id": 385}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 80, "type": "mousemove", "message_id": 386}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 80, "type": "mousemove", "message_id": 387}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 80, "type": "mousemove", "message_id": 388}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 80, "type": "mousemove", "message_id": 389}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 80, "type": "mousemove", "message_id": 390}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 80, "type": "mousemove", "message_id": 391}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 80, "type": "mousemove", "message_id": 392}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 80, "type": "mousemove", "message_id": 393}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 717, "x": 80, "type": "mousemove", "message_id": 394}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 716, "x": 80, "type": "mousemove", "message_id": 395}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 716, "x": 79, "type": "mousemove", "message_id": 396}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 715, "x": 79, "type": "mousemove", "message_id": 397}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 714, "x": 78, "type": "mousemove", "message_id": 398}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 712, "x": 78, "type": "mousemove", "message_id": 399}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 709, "x": 77, "type": "mousemove", "message_id": 400}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 704, "x": 77, "type": "mousemove", "message_id": 401}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 697, "x": 76, "type": "mousemove", "message_id": 402}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 687, "x": 75, "type": "mousemove", "message_id": 403}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 660, "x": 76, "type": "mousemove", "message_id": 405}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 675, "x": 75, "type": "mousemove", "message_id": 404}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 644, "x": 79, "type": "mouseover", "message_id": 406}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 644, "x": 79, "type": "mouseover", "message_id": 407}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 644, "x": 79, "type": "mousemove", "message_id": 408}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 623, "x": 83, "type": "mousemove", "message_id": 409}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 599, "x": 88, "type": "mousemove", "message_id": 410}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 570, "x": 94, "type": "mousemove", "message_id": 411}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 538, "x": 101, "type": "mousemove", "message_id": 412}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 503, "x": 108, "type": "mousemove", "message_id": 413}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 467, "x": 114, "type": "mousemove", "message_id": 414}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 432, "x": 121, "type": "mousemove", "message_id": 415}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 400, "x": 126, "type": "mousemove", "message_id": 416}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 367, "x": 133, "type": "mousemove", "message_id": 417}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 336, "x": 139, "type": "mousemove", "message_id": 418}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 305, "x": 145, "type": "mousemove", "message_id": 419}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 276, "x": 150, "type": "mousemove", "message_id": 420}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 251, "x": 154, "type": "mousemove", "message_id": 421}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 228, "x": 156, "type": "mouseover", "message_id": 422}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 228, "x": 156, "type": "mouseover", "message_id": 423}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 228, "x": 156, "type": "mousemove", "message_id": 424}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 208, "x": 157, "type": "mouseover", "message_id": 425}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 208, "x": 157, "type": "mouseover", "message_id": 426}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 208, "x": 157, "type": "mousemove", "message_id": 427}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 191, "x": 156, "type": "mouseover", "message_id": 428}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 191, "x": 156, "type": "mouseover", "message_id": 429}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 191, "x": 156, "type": "mousemove", "message_id": 430}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 176, "x": 155, "type": "mouseover", "message_id": 431}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 176, "x": 155, "type": "mouseover", "message_id": 432}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 176, "x": 155, "type": "mousemove", "message_id": 433}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 163, "x": 153, "type": "mouseover", "message_id": 434}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 152, "x": 150, "type": "mousemove", "message_id": 437}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 163, "x": 153, "type": "mouseover", "message_id": 435}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 163, "x": 153, "type": "mousemove", "message_id": 436}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 141, "x": 146, "type": "mousemove", "message_id": 438}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 132, "x": 141, "type": "mousemove", "message_id": 439}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 125, "x": 137, "type": "mousemove", "message_id": 440}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 115, "x": 131, "type": "mousemove", "message_id": 442}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 119, "x": 134, "type": "mousemove", "message_id": 441}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 114, "x": 130, "type": "mouseover", "message_id": 443}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 114, "x": 130, "type": "mouseover", "message_id": 444}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 114, "x": 130, "type": "mousemove", "message_id": 445}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 114, "x": 130, "type": "mousemove", "message_id": 446}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 114, "x": 130, "type": "mousemove", "message_id": 447}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 114, "x": 129, "type": "mousemove", "message_id": 448}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 113, "x": 129, "type": "mousemove", "message_id": 449}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 113, "x": 128, "type": "mousemove", "message_id": 450}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 113, "x": 128, "type": "mousemove", "message_id": 451}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 113, "x": 128, "type": "mousemove", "message_id": 452}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 113, "x": 127, "type": "mousemove", "message_id": 453}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 113, "x": 128, "type": "mousemove", "message_id": 454}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 114, "x": 130, "type": "mouseover", "message_id": 455}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 114, "x": 130, "type": "mouseover", "message_id": 456}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 114, "x": 130, "type": "mousemove", "message_id": 457}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 115, "x": 136, "type": "mousemove", "message_id": 458}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 116, "x": 144, "type": "mousemove", "message_id": 459}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 118, "x": 155, "type": "mouseover", "message_id": 460}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 118, "x": 155, "type": "mouseover", "message_id": 461}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 118, "x": 155, "type": "mousemove", "message_id": 462}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 121, "x": 169, "type": "mousemove", "message_id": 463}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 124, "x": 184, "type": "mousemove", "message_id": 464}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 127, "x": 198, "type": "mousemove", "message_id": 465}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 131, "x": 216, "type": "mousemove", "message_id": 466}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 135, "x": 234, "type": "mousemove", "message_id": 467}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 140, "x": 249, "type": "mousemove", "message_id": 468}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 144, "x": 261, "type": "mousemove", "message_id": 469}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 148, "x": 270, "type": "mousemove", "message_id": 470}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 151, "x": 275, "type": "mousemove", "message_id": 471}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 153, "x": 277, "type": "mousemove", "message_id": 472}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 155, "x": 278, "type": "mouseover", "message_id": 473}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 155, "x": 278, "type": "mouseover", "message_id": 474}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 155, "x": 278, "type": "mousemove", "message_id": 475}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 156, "x": 278, "type": "mousemove", "message_id": 476}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 159, "x": 278, "type": "mousemove", "message_id": 477}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 161, "x": 278, "type": "mousemove", "message_id": 478}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 164, "x": 278, "type": "mousemove", "message_id": 479}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 167, "x": 279, "type": "mousemove", "message_id": 480}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 170, "x": 280, "type": "mousemove", "message_id": 481}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 173, "x": 280, "type": "mousemove", "message_id": 482}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 174, "x": 280, "type": "mousemove", "message_id": 483}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 176, "x": 280, "type": "mousemove", "message_id": 484}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 177, "x": 280, "type": "mousemove", "message_id": 485}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 178, "x": 281, "type": "mousemove", "message_id": 486}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 180, "x": 281, "type": "mousemove", "message_id": 487}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 182, "x": 282, "type": "mousemove", "message_id": 488}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 183, "x": 282, "type": "mousemove", "message_id": 489}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 184, "x": 282, "type": "mousemove", "message_id": 490}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 185, "x": 282, "type": "mousemove", "message_id": 491}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 185, "x": 282, "type": "mousemove", "message_id": 492}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 185, "x": 282, "type": "mousemove", "message_id": 493}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 186, "x": 282, "type": "mousemove", "message_id": 494}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 186, "x": 283, "type": "mousemove", "message_id": 495}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 186, "x": 283, "type": "mousemove", "message_id": 496}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 187, "x": 283, "type": "mousemove", "message_id": 497}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 188, "x": 283, "type": "mousemove", "message_id": 498}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 188, "x": 283, "type": "mousemove", "message_id": 499}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 189, "x": 283, "type": "mousemove", "message_id": 500}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 189, "x": 283, "type": "mousemove", "message_id": 501}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 189, "x": 283, "type": "mousemove", "message_id": 502}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 503}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -4, "delta": -4, "type": "wheel", "message_id": 504}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -6, "delta": -6, "type": "wheel", "message_id": 506}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 190, "x": 283, "type": "mousemove", "message_id": 505}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 190, "x": 283, "type": "mousemove", "message_id": 507}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -7, "delta": -7, "type": "wheel", "message_id": 508}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 190, "x": 283, "type": "mousemove", "message_id": 509}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -10, "delta": -10, "type": "wheel", "message_id": 510}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 190, "x": 283, "type": "mousemove", "message_id": 511}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -11, "delta": -11, "type": "wheel", "message_id": 512}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 190, "x": 283, "type": "mousemove", "message_id": 513}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -7, "delta": -7, "type": "wheel", "message_id": 514}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 190, "x": 283, "type": "mousemove", "message_id": 515}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -14, "delta": -14, "type": "wheel", "message_id": 516}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 191, "x": 283, "type": "mousemove", "message_id": 517}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -12, "delta": -12, "type": "wheel", "message_id": 518}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 191, "x": 283, "type": "mousemove", "message_id": 519}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -11, "delta": -11, "type": "wheel", "message_id": 520}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 191, "x": 283, "type": "mousemove", "message_id": 521}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -10, "delta": -10, "type": "wheel", "message_id": 522}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 191, "x": 283, "type": "mousemove", "message_id": 523}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": -2, "deltaY": -6, "delta": -6, "type": "wheel", "message_id": 524}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 192, "x": 283, "type": "mousemove", "message_id": 525}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": -3, "deltaY": -9, "delta": -9, "type": "wheel", "message_id": 526}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 192, "x": 283, "type": "mousemove", "message_id": 527}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": -3, "deltaY": -7, "delta": -7, "type": "wheel", "message_id": 528}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 192, "x": 283, "type": "mousemove", "message_id": 529}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -4, "delta": -4, "type": "wheel", "message_id": 530}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 192, "x": 283, "type": "mousemove", "message_id": 531}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 532}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 192, "x": 283, "type": "mousemove", "message_id": 533}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 534}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 535}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 536}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 537}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 538}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 539}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 540}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 541}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 542}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 2, "delta": 2, "type": "wheel", "message_id": 543}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 5, "delta": 5, "type": "wheel", "message_id": 544}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 4, "delta": 4, "type": "wheel", "message_id": 545}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 7, "delta": 7, "type": "wheel", "message_id": 546}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 14, "delta": 14, "type": "wheel", "message_id": 547}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 13, "delta": 13, "type": "wheel", "message_id": 548}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 15, "delta": 15, "type": "wheel", "message_id": 549}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 17, "delta": 17, "type": "wheel", "message_id": 550}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 3, "deltaY": 12, "delta": 12, "type": "wheel", "message_id": 551}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 3, "deltaY": 9, "delta": 9, "type": "wheel", "message_id": 552}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 5, "deltaY": 17, "delta": 17, "type": "wheel", "message_id": 553}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 10, "delta": 10, "type": "wheel", "message_id": 554}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 12, "delta": 12, "type": "wheel", "message_id": 555}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 11, "delta": 11, "type": "wheel", "message_id": 556}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 10, "delta": 10, "type": "wheel", "message_id": 557}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 7, "delta": 7, "type": "wheel", "message_id": 558}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 5, "delta": 5, "type": "wheel", "message_id": 559}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 4, "delta": 4, "type": "wheel", "message_id": 560}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 3, "delta": 3, "type": "wheel", "message_id": 561}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 2, "delta": 2, "type": "wheel", "message_id": 562}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 1, "delta": 1, "type": "wheel", "message_id": 563}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 1, "delta": 1, "type": "wheel", "message_id": 564}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 1, "delta": 1, "type": "wheel", "message_id": 565}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 567}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 566}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -4, "delta": -4, "type": "wheel", "message_id": 568}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -4, "delta": -4, "type": "wheel", "message_id": 569}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -5, "delta": -5, "type": "wheel", "message_id": 570}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -7, "delta": -7, "type": "wheel", "message_id": 571}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -9, "delta": -9, "type": "wheel", "message_id": 572}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -8, "delta": -8, "type": "wheel", "message_id": 573}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -9, "delta": -9, "type": "wheel", "message_id": 574}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -11, "delta": -11, "type": "wheel", "message_id": 575}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -11, "delta": -11, "type": "wheel", "message_id": 576}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -11, "delta": -11, "type": "wheel", "message_id": 577}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -13, "delta": -13, "type": "wheel", "message_id": 578}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -10, "delta": -10, "type": "wheel", "message_id": 579}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": -2, "deltaY": -7, "delta": -7, "type": "wheel", "message_id": 580}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": -2, "deltaY": -6, "delta": -6, "type": "wheel", "message_id": 581}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": -4, "deltaY": -8, "delta": -8, "type": "wheel", "message_id": 582}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": -3, "deltaY": -6, "delta": -6, "type": "wheel", "message_id": 583}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": -2, "deltaY": -4, "delta": -4, "type": "wheel", "message_id": 584}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": -2, "deltaY": -3, "delta": -3, "type": "wheel", "message_id": 585}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 1, "delta": 1, "type": "wheel", "message_id": 586}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 1, "delta": 1, "type": "wheel", "message_id": 587}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 1, "delta": 1, "type": "wheel", "message_id": 588}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 1, "delta": 1, "type": "wheel", "message_id": 589}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 1, "delta": 1, "type": "wheel", "message_id": 590}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 1, "delta": 1, "type": "wheel", "message_id": 591}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 1, "delta": 1, "type": "wheel", "message_id": 592}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": 1, "delta": 1, "type": "wheel", "message_id": 593}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3914, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": 0, "delta": -1, "type": "wheel", "message_id": 594}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 192, "x": 283, "type": "mousemove", "message_id": 595}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 190, "x": 283, "type": "mousemove", "message_id": 596}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 187, "x": 281, "type": "mouseover", "message_id": 597}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 187, "x": 281, "type": "mouseover", "message_id": 598}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 187, "x": 281, "type": "mousemove", "message_id": 599}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 183, "x": 280, "type": "mouseover", "message_id": 600}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 183, "x": 280, "type": "mouseover", "message_id": 601}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 183, "x": 280, "type": "mousemove", "message_id": 602}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 178, "x": 277, "type": "mouseover", "message_id": 603}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 178, "x": 277, "type": "mouseover", "message_id": 604}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 178, "x": 277, "type": "mousemove", "message_id": 605}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 172, "x": 272, "type": "mousemove", "message_id": 606}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 165, "x": 267, "type": "mousemove", "message_id": 607}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 158, "x": 260, "type": "mousemove", "message_id": 608}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 150, "x": 253, "type": "mousemove", "message_id": 609}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 143, "x": 246, "type": "mousemove", "message_id": 610}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 136, "x": 239, "type": "mousemove", "message_id": 611}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 127, "x": 229, "type": "mousemove", "message_id": 612}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 120, "x": 221, "type": "mousemove", "message_id": 613}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 111, "x": 213, "type": "mousemove", "message_id": 614}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 104, "x": 206, "type": "mousemove", "message_id": 615}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 99, "x": 202, "type": "mousemove", "message_id": 616}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 94, "x": 199, "type": "mousemove", "message_id": 617}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 91, "x": 197, "type": "mousemove", "message_id": 618}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 88, "x": 196, "type": "mouseover", "message_id": 619}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 88, "x": 196, "type": "mouseover", "message_id": 620}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 88, "x": 196, "type": "mousemove", "message_id": 621}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 85, "x": 195, "type": "mousemove", "message_id": 622}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 83, "x": 194, "type": "mousemove", "message_id": 623}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 81, "x": 194, "type": "mousemove", "message_id": 624}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 79, "x": 194, "type": "mousemove", "message_id": 625}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 77, "x": 194, "type": "mousemove", "message_id": 626}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 76, "x": 195, "type": "mousemove", "message_id": 627}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 75, "x": 195, "type": "mousemove", "message_id": 628}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 75, "x": 196, "type": "mousemove", "message_id": 629}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 74, "x": 196, "type": "mousemove", "message_id": 630}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 74, "x": 196, "type": "mousemove", "message_id": 631}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 73, "x": 196, "type": "mousemove", "message_id": 632}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 72, "x": 197, "type": "mousemove", "message_id": 633}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 71, "x": 197, "type": "mousemove", "message_id": 634}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 70, "x": 197, "type": "mousemove", "message_id": 635}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 69, "x": 197, "type": "mousemove", "message_id": 636}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 68, "x": 197, "type": "mousemove", "message_id": 637}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 68, "x": 197, "type": "mousemove", "message_id": 638}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 67, "x": 197, "type": "mousemove", "message_id": 639}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 66, "x": 197, "type": "mousemove", "message_id": 640}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 64, "x": 197, "type": "mousemove", "message_id": 641}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 63, "x": 196, "type": "mousemove", "message_id": 642}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 62, "x": 196, "type": "mousemove", "message_id": 643}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 61, "x": 196, "type": "mousemove", "message_id": 644}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 60, "x": 196, "type": "mousemove", "message_id": 645}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 59, "x": 195, "type": "mousemove", "message_id": 646}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 58, "x": 195, "type": "mousemove", "message_id": 647}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 57, "x": 195, "type": "mousemove", "message_id": 648}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 56, "x": 194, "type": "mousemove", "message_id": 649}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 55, "x": 194, "type": "mousemove", "message_id": 650}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 55, "x": 194, "type": "mousemove", "message_id": 651}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 54, "x": 194, "type": "mousemove", "message_id": 652}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 54, "x": 194, "type": "mousemove", "message_id": 653}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 54, "x": 194, "type": "mousemove", "message_id": 654}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 53, "x": 194, "type": "mousemove", "message_id": 655}
|
||||
423
recordings/test_mouse_exit_enter.replay
Normal file
423
recordings/test_mouse_exit_enter.replay
Normal file
@ -0,0 +1,423 @@
|
||||
{"scale": 1, "sender": 5777, "msg_type": "ViewPort", "panY": 0, "panX": 0, "message_id": 3}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 52, "x": 178, "type": "mousemove", "message_id": 4}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 53, "x": 178, "type": "mousemove", "message_id": 5}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 54, "x": 178, "type": "mousemove", "message_id": 6}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 55, "x": 178, "type": "mousemove", "message_id": 7}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 56, "x": 178, "type": "mousemove", "message_id": 8}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 57, "x": 178, "type": "mousemove", "message_id": 9}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 60, "x": 178, "type": "mousemove", "message_id": 10}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 61, "x": 178, "type": "mousemove", "message_id": 11}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 64, "x": 178, "type": "mousemove", "message_id": 12}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 66, "x": 179, "type": "mousemove", "message_id": 13}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 69, "x": 180, "type": "mousemove", "message_id": 14}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 72, "x": 182, "type": "mouseover", "message_id": 15}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 72, "x": 182, "type": "mouseover", "message_id": 16}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 75, "x": 184, "type": "mousemove", "message_id": 18}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 72, "x": 182, "type": "mousemove", "message_id": 17}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 78, "x": 186, "type": "mousemove", "message_id": 19}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 81, "x": 188, "type": "mousemove", "message_id": 20}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 84, "x": 191, "type": "mouseover", "message_id": 21}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 84, "x": 191, "type": "mouseover", "message_id": 22}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 87, "x": 194, "type": "mousemove", "message_id": 24}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 84, "x": 191, "type": "mousemove", "message_id": 23}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 90, "x": 197, "type": "mousemove", "message_id": 25}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 96, "x": 203, "type": "mousemove", "message_id": 27}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 99, "x": 208, "type": "mousemove", "message_id": 28}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 93, "x": 200, "type": "mousemove", "message_id": 26}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 102, "x": 211, "type": "mousemove", "message_id": 29}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 105, "x": 215, "type": "mousemove", "message_id": 30}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 108, "x": 219, "type": "mousemove", "message_id": 31}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 111, "x": 222, "type": "mousemove", "message_id": 32}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 113, "x": 226, "type": "mouseover", "message_id": 33}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 113, "x": 226, "type": "mouseover", "message_id": 34}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 113, "x": 226, "type": "mousemove", "message_id": 35}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 115, "x": 229, "type": "mousemove", "message_id": 36}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 117, "x": 232, "type": "mousemove", "message_id": 37}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 118, "x": 234, "type": "mouseover", "message_id": 38}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 118, "x": 234, "type": "mousemove", "message_id": 40}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 118, "x": 234, "type": "mouseover", "message_id": 39}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 121, "x": 238, "type": "mouseover", "message_id": 41}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 121, "x": 238, "type": "mouseover", "message_id": 42}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 121, "x": 238, "type": "mousemove", "message_id": 43}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 123, "x": 241, "type": "mouseover", "message_id": 44}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 123, "x": 241, "type": "mouseover", "message_id": 45}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 123, "x": 241, "type": "mousemove", "message_id": 46}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 125, "x": 244, "type": "mousemove", "message_id": 47}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 126, "x": 247, "type": "mouseover", "message_id": 48}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 126, "x": 247, "type": "mousemove", "message_id": 50}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 126, "x": 247, "type": "mouseover", "message_id": 49}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 128, "x": 250, "type": "mouseover", "message_id": 52}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 128, "x": 250, "type": "mouseover", "message_id": 51}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 128, "x": 250, "type": "mousemove", "message_id": 53}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 129, "x": 254, "type": "mouseover", "message_id": 54}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 129, "x": 254, "type": "mouseover", "message_id": 55}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 129, "x": 254, "type": "mousemove", "message_id": 56}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 130, "x": 257, "type": "mousemove", "message_id": 57}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 132, "x": 260, "type": "mouseover", "message_id": 59}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 132, "x": 260, "type": "mouseover", "message_id": 58}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 133, "x": 264, "type": "mouseover", "message_id": 61}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 132, "x": 260, "type": "mousemove", "message_id": 60}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 133, "x": 264, "type": "mouseover", "message_id": 62}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 133, "x": 264, "type": "mousemove", "message_id": 63}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 135, "x": 267, "type": "mouseover", "message_id": 64}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 135, "x": 267, "type": "mouseover", "message_id": 65}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 135, "x": 267, "type": "mousemove", "message_id": 66}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 136, "x": 272, "type": "mouseover", "message_id": 67}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 136, "x": 272, "type": "mouseover", "message_id": 68}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 136, "x": 272, "type": "mousemove", "message_id": 69}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 138, "x": 275, "type": "mouseover", "message_id": 70}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 138, "x": 275, "type": "mouseover", "message_id": 71}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 138, "x": 275, "type": "mousemove", "message_id": 72}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 139, "x": 280, "type": "mouseover", "message_id": 73}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 139, "x": 280, "type": "mouseover", "message_id": 74}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 139, "x": 280, "type": "mousemove", "message_id": 75}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 141, "x": 285, "type": "mouseover", "message_id": 76}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 141, "x": 285, "type": "mouseover", "message_id": 77}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 141, "x": 285, "type": "mousemove", "message_id": 78}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 143, "x": 290, "type": "mousemove", "message_id": 79}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 145, "x": 295, "type": "mousemove", "message_id": 80}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 148, "x": 301, "type": "mouseover", "message_id": 81}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 148, "x": 301, "type": "mouseover", "message_id": 82}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 148, "x": 301, "type": "mousemove", "message_id": 83}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 151, "x": 307, "type": "mousemove", "message_id": 84}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 156, "x": 318, "type": "mousemove", "message_id": 85}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 159, "x": 326, "type": "mousemove", "message_id": 86}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 164, "x": 336, "type": "mousemove", "message_id": 87}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 168, "x": 346, "type": "mousemove", "message_id": 88}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 173, "x": 359, "type": "mousemove", "message_id": 89}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 177, "x": 372, "type": "mousemove", "message_id": 90}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 182, "x": 386, "type": "mousemove", "message_id": 91}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 187, "x": 402, "type": "mousemove", "message_id": 92}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 191, "x": 417, "type": "mousemove", "message_id": 93}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 195, "x": 432, "type": "mouseover", "message_id": 94}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 195, "x": 432, "type": "mouseover", "message_id": 95}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 195, "x": 432, "type": "mousemove", "message_id": 96}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 198, "x": 445, "type": "mousemove", "message_id": 97}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 200, "x": 451, "type": "mouseover", "message_id": 98}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 200, "x": 451, "type": "mouseover", "message_id": 99}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 200, "x": 451, "type": "mousemove", "message_id": 100}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 203, "x": 462, "type": "mouseover", "message_id": 101}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 203, "x": 462, "type": "mouseover", "message_id": 102}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 203, "x": 462, "type": "mousemove", "message_id": 103}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 205, "x": 471, "type": "mousemove", "message_id": 104}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 205, "x": 471, "type": "mouseover", "message_id": 105}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 205, "x": 471, "type": "mouseover", "message_id": 106}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 205, "x": 471, "type": "mousemove", "message_id": 107}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 205, "x": 474, "type": "mouseover", "message_id": 108}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 205, "x": 474, "type": "mouseover", "message_id": 109}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 207, "x": 476, "type": "mouseover", "message_id": 111}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 205, "x": 474, "type": "mousemove", "message_id": 110}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 207, "x": 476, "type": "mouseover", "message_id": 112}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 207, "x": 476, "type": "mousemove", "message_id": 113}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 208, "x": 479, "type": "mouseover", "message_id": 114}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 208, "x": 479, "type": "mouseover", "message_id": 115}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 208, "x": 479, "type": "mousemove", "message_id": 116}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 210, "x": 482, "type": "mouseover", "message_id": 118}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 210, "x": 482, "type": "mouseover", "message_id": 117}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 210, "x": 482, "type": "mousemove", "message_id": 119}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 214, "x": 491, "type": "mousemove", "message_id": 121}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 212, "x": 486, "type": "mousemove", "message_id": 120}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 216, "x": 497, "type": "mouseover", "message_id": 122}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 216, "x": 497, "type": "mouseover", "message_id": 123}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 216, "x": 497, "type": "mousemove", "message_id": 124}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 218, "x": 502, "type": "mouseover", "message_id": 126}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 218, "x": 502, "type": "mouseover", "message_id": 125}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 218, "x": 502, "type": "mousemove", "message_id": 127}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 219, "x": 507, "type": "mouseover", "message_id": 128}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 219, "x": 507, "type": "mousemove", "message_id": 130}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 219, "x": 507, "type": "mouseover", "message_id": 129}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 220, "x": 513, "type": "mousemove", "message_id": 131}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 222, "x": 523, "type": "mousemove", "message_id": 133}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 221, "x": 518, "type": "mousemove", "message_id": 132}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 224, "x": 539, "type": "mousemove", "message_id": 136}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 222, "x": 528, "type": "mousemove", "message_id": 134}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 223, "x": 533, "type": "mousemove", "message_id": 135}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 224, "x": 545, "type": "mousemove", "message_id": 137}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 224, "x": 550, "type": "mousemove", "message_id": 138}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 225, "x": 555, "type": "mousemove", "message_id": 139}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 225, "x": 559, "type": "mousemove", "message_id": 140}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 225, "x": 564, "type": "mousemove", "message_id": 141}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 225, "x": 568, "type": "mousemove", "message_id": 142}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 226, "x": 572, "type": "mousemove", "message_id": 143}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 226, "x": 576, "type": "mousemove", "message_id": 144}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 227, "x": 583, "type": "mousemove", "message_id": 146}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 227, "x": 579, "type": "mousemove", "message_id": 145}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 228, "x": 587, "type": "mousemove", "message_id": 147}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 229, "x": 595, "type": "mousemove", "message_id": 149}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 228, "x": 590, "type": "mousemove", "message_id": 148}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 231, "x": 599, "type": "mouseover", "message_id": 150}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 231, "x": 599, "type": "mouseover", "message_id": 151}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 231, "x": 599, "type": "mousemove", "message_id": 152}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 232, "x": 603, "type": "mouseover", "message_id": 153}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 232, "x": 603, "type": "mouseover", "message_id": 154}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 232, "x": 603, "type": "mousemove", "message_id": 155}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 234, "x": 608, "type": "mouseover", "message_id": 156}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 234, "x": 608, "type": "mouseover", "message_id": 157}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 234, "x": 608, "type": "mousemove", "message_id": 158}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 236, "x": 613, "type": "mousemove", "message_id": 159}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 237, "x": 617, "type": "mouseover", "message_id": 160}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 237, "x": 617, "type": "mouseover", "message_id": 161}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 237, "x": 617, "type": "mousemove", "message_id": 162}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 239, "x": 620, "type": "mouseover", "message_id": 164}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 239, "x": 620, "type": "mouseover", "message_id": 163}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 239, "x": 620, "type": "mousemove", "message_id": 165}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 240, "x": 625, "type": "mouseover", "message_id": 166}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 240, "x": 625, "type": "mouseover", "message_id": 167}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 240, "x": 625, "type": "mousemove", "message_id": 168}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 241, "x": 628, "type": "mousemove", "message_id": 169}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 243, "x": 633, "type": "mouseover", "message_id": 170}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 243, "x": 633, "type": "mouseover", "message_id": 171}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 243, "x": 633, "type": "mousemove", "message_id": 172}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 243, "x": 636, "type": "mouseover", "message_id": 173}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 243, "x": 636, "type": "mouseover", "message_id": 174}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 243, "x": 636, "type": "mousemove", "message_id": 175}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 244, "x": 641, "type": "mousemove", "message_id": 176}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 246, "x": 649, "type": "mousemove", "message_id": 178}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 245, "x": 645, "type": "mousemove", "message_id": 177}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 247, "x": 654, "type": "mousemove", "message_id": 179}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 247, "x": 659, "type": "mousemove", "message_id": 180}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 248, "x": 664, "type": "mousemove", "message_id": 181}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 249, "x": 670, "type": "mousemove", "message_id": 182}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 250, "x": 677, "type": "mousemove", "message_id": 183}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 251, "x": 683, "type": "mousemove", "message_id": 184}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 252, "x": 688, "type": "mousemove", "message_id": 185}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 254, "x": 700, "type": "mousemove", "message_id": 187}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 253, "x": 695, "type": "mousemove", "message_id": 186}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 254, "x": 706, "type": "mousemove", "message_id": 188}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 255, "x": 711, "type": "mousemove", "message_id": 189}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 255, "x": 716, "type": "mousemove", "message_id": 190}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 256, "x": 720, "type": "mouseout", "message_id": 191}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 406, "x": 718, "type": "mouseover", "message_id": 192}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 406, "x": 718, "type": "mouseover", "message_id": 193}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 406, "x": 718, "type": "mousemove", "message_id": 194}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 406, "x": 718, "type": "mouseover", "message_id": 195}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 406, "x": 718, "type": "mouseover", "message_id": 196}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 406, "x": 718, "type": "mousemove", "message_id": 197}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 408, "x": 714, "type": "mouseover", "message_id": 198}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 408, "x": 714, "type": "mouseover", "message_id": 199}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 408, "x": 714, "type": "mousemove", "message_id": 200}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 410, "x": 710, "type": "mousemove", "message_id": 201}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 412, "x": 705, "type": "mousemove", "message_id": 202}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 413, "x": 701, "type": "mouseover", "message_id": 203}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 413, "x": 701, "type": "mouseover", "message_id": 204}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 413, "x": 701, "type": "mousemove", "message_id": 205}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 415, "x": 697, "type": "mouseover", "message_id": 206}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 415, "x": 697, "type": "mouseover", "message_id": 207}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 415, "x": 697, "type": "mousemove", "message_id": 208}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 415, "x": 695, "type": "mouseover", "message_id": 209}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 415, "x": 695, "type": "mouseover", "message_id": 210}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 415, "x": 695, "type": "mousemove", "message_id": 211}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 417, "x": 691, "type": "mouseover", "message_id": 212}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 417, "x": 691, "type": "mouseover", "message_id": 213}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 417, "x": 691, "type": "mousemove", "message_id": 214}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 418, "x": 688, "type": "mouseover", "message_id": 215}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 418, "x": 688, "type": "mouseover", "message_id": 216}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 418, "x": 688, "type": "mousemove", "message_id": 217}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 418, "x": 685, "type": "mousemove", "message_id": 218}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 419, "x": 682, "type": "mousemove", "message_id": 219}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 420, "x": 680, "type": "mousemove", "message_id": 220}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 421, "x": 678, "type": "mousemove", "message_id": 221}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 423, "x": 674, "type": "mouseover", "message_id": 222}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 423, "x": 674, "type": "mouseover", "message_id": 223}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 423, "x": 674, "type": "mousemove", "message_id": 224}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 423, "x": 672, "type": "mouseover", "message_id": 225}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 423, "x": 672, "type": "mouseover", "message_id": 226}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 423, "x": 672, "type": "mousemove", "message_id": 227}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 425, "x": 669, "type": "mouseover", "message_id": 228}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 425, "x": 669, "type": "mouseover", "message_id": 229}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 425, "x": 669, "type": "mousemove", "message_id": 230}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 426, "x": 666, "type": "mouseover", "message_id": 232}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 426, "x": 666, "type": "mouseover", "message_id": 231}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 426, "x": 666, "type": "mousemove", "message_id": 233}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 427, "x": 663, "type": "mousemove", "message_id": 234}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 428, "x": 660, "type": "mousemove", "message_id": 235}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 429, "x": 659, "type": "mouseover", "message_id": 236}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 429, "x": 659, "type": "mouseover", "message_id": 237}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 429, "x": 659, "type": "mousemove", "message_id": 238}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 430, "x": 654, "type": "mouseover", "message_id": 239}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 430, "x": 654, "type": "mouseover", "message_id": 240}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 430, "x": 654, "type": "mousemove", "message_id": 241}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 431, "x": 651, "type": "mousemove", "message_id": 242}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 432, "x": 649, "type": "mousemove", "message_id": 243}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 433, "x": 647, "type": "mousemove", "message_id": 244}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 434, "x": 644, "type": "mousemove", "message_id": 245}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 435, "x": 640, "type": "mousemove", "message_id": 246}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 436, "x": 637, "type": "mousemove", "message_id": 247}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 437, "x": 634, "type": "mousemove", "message_id": 248}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 438, "x": 631, "type": "mousemove", "message_id": 249}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 439, "x": 627, "type": "mousemove", "message_id": 250}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 439, "x": 624, "type": "mousemove", "message_id": 251}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 440, "x": 616, "type": "mousemove", "message_id": 253}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 439, "x": 620, "type": "mousemove", "message_id": 252}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 440, "x": 611, "type": "mousemove", "message_id": 254}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 441, "x": 607, "type": "mousemove", "message_id": 255}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 441, "x": 603, "type": "mousemove", "message_id": 256}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 441, "x": 593, "type": "mousemove", "message_id": 258}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 441, "x": 598, "type": "mousemove", "message_id": 257}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 441, "x": 588, "type": "mousemove", "message_id": 259}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 441, "x": 583, "type": "mousemove", "message_id": 260}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 441, "x": 578, "type": "mousemove", "message_id": 261}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 441, "x": 573, "type": "mousemove", "message_id": 262}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 441, "x": 568, "type": "mousemove", "message_id": 263}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 441, "x": 563, "type": "mousemove", "message_id": 264}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 440, "x": 559, "type": "mousemove", "message_id": 265}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 438, "x": 555, "type": "mouseover", "message_id": 267}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 438, "x": 555, "type": "mouseover", "message_id": 266}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 438, "x": 555, "type": "mousemove", "message_id": 268}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 438, "x": 554, "type": "mouseover", "message_id": 269}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 438, "x": 554, "type": "mouseover", "message_id": 270}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 438, "x": 554, "type": "mousemove", "message_id": 271}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 439, "x": 551, "type": "mouseover", "message_id": 272}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 439, "x": 551, "type": "mouseover", "message_id": 273}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 439, "x": 551, "type": "mousemove", "message_id": 274}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 440, "x": 548, "type": "mousemove", "message_id": 275}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 442, "x": 543, "type": "mouseover", "message_id": 276}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 442, "x": 543, "type": "mouseover", "message_id": 277}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 442, "x": 543, "type": "mousemove", "message_id": 278}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 443, "x": 538, "type": "mouseover", "message_id": 279}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 443, "x": 538, "type": "mouseover", "message_id": 280}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 443, "x": 538, "type": "mousemove", "message_id": 281}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 445, "x": 534, "type": "mouseover", "message_id": 282}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 445, "x": 534, "type": "mouseover", "message_id": 283}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 446, "x": 528, "type": "mouseover", "message_id": 285}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 445, "x": 534, "type": "mousemove", "message_id": 284}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 446, "x": 528, "type": "mouseover", "message_id": 286}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 446, "x": 528, "type": "mousemove", "message_id": 287}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 448, "x": 518, "type": "mouseover", "message_id": 289}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 448, "x": 518, "type": "mouseover", "message_id": 288}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 448, "x": 518, "type": "mousemove", "message_id": 290}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 450, "x": 507, "type": "mousemove", "message_id": 291}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 451, "x": 494, "type": "mouseover", "message_id": 292}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 451, "x": 494, "type": "mouseover", "message_id": 293}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 451, "x": 494, "type": "mousemove", "message_id": 294}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 452, "x": 482, "type": "mousemove", "message_id": 295}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 452, "x": 468, "type": "mousemove", "message_id": 296}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 452, "x": 455, "type": "mousemove", "message_id": 297}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 452, "x": 442, "type": "mousemove", "message_id": 298}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 452, "x": 430, "type": "mousemove", "message_id": 299}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 449, "x": 418, "type": "mouseover", "message_id": 300}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 449, "x": 418, "type": "mouseover", "message_id": 301}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 449, "x": 418, "type": "mousemove", "message_id": 302}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 446, "x": 406, "type": "mousemove", "message_id": 303}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 443, "x": 394, "type": "mousemove", "message_id": 304}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 440, "x": 382, "type": "mousemove", "message_id": 305}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 436, "x": 371, "type": "mousemove", "message_id": 306}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 426, "x": 337, "type": "mousemove", "message_id": 309}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 434, "x": 359, "type": "mousemove", "message_id": 307}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 430, "x": 349, "type": "mousemove", "message_id": 308}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 422, "x": 325, "type": "mousemove", "message_id": 310}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 417, "x": 312, "type": "mousemove", "message_id": 311}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 411, "x": 301, "type": "mousemove", "message_id": 312}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 396, "x": 279, "type": "mousemove", "message_id": 314}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 404, "x": 290, "type": "mousemove", "message_id": 313}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 388, "x": 269, "type": "mousemove", "message_id": 315}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 379, "x": 260, "type": "mousemove", "message_id": 316}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 374, "x": 257, "type": "mousemove", "message_id": 317}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 366, "x": 250, "type": "mousemove", "message_id": 318}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 357, "x": 245, "type": "mousemove", "message_id": 319}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 340, "x": 239, "type": "mousemove", "message_id": 321}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 349, "x": 241, "type": "mousemove", "message_id": 320}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 333, "x": 237, "type": "mousemove", "message_id": 322}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 326, "x": 236, "type": "mouseover", "message_id": 323}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 326, "x": 236, "type": "mouseover", "message_id": 324}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 326, "x": 236, "type": "mousemove", "message_id": 325}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 324, "x": 235, "type": "mousemove", "message_id": 326}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 319, "x": 235, "type": "mousemove", "message_id": 327}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 313, "x": 235, "type": "mousemove", "message_id": 329}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 316, "x": 235, "type": "mousemove", "message_id": 328}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 313, "x": 235, "type": "mousemove", "message_id": 330}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 312, "x": 233, "type": "mouseover", "message_id": 331}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 312, "x": 233, "type": "mouseover", "message_id": 332}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 312, "x": 233, "type": "mousemove", "message_id": 333}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 310, "x": 232, "type": "mouseover", "message_id": 334}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 310, "x": 232, "type": "mouseover", "message_id": 335}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 310, "x": 232, "type": "mousemove", "message_id": 336}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 308, "x": 231, "type": "mousemove", "message_id": 337}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 306, "x": 229, "type": "mouseover", "message_id": 338}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 306, "x": 229, "type": "mouseover", "message_id": 339}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 306, "x": 229, "type": "mousemove", "message_id": 340}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 304, "x": 228, "type": "mouseover", "message_id": 341}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 304, "x": 228, "type": "mouseover", "message_id": 342}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 304, "x": 228, "type": "mousemove", "message_id": 343}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 302, "x": 227, "type": "mousemove", "message_id": 344}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 294, "x": 223, "type": "mouseover", "message_id": 345}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 294, "x": 223, "type": "mouseover", "message_id": 346}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 294, "x": 223, "type": "mousemove", "message_id": 347}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 286, "x": 220, "type": "mousemove", "message_id": 348}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 277, "x": 217, "type": "mousemove", "message_id": 349}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 268, "x": 215, "type": "mousemove", "message_id": 350}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 257, "x": 211, "type": "mousemove", "message_id": 351}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 245, "x": 208, "type": "mousemove", "message_id": 352}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 233, "x": 205, "type": "mousemove", "message_id": 353}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 221, "x": 202, "type": "mousemove", "message_id": 354}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 215, "x": 201, "type": "mouseover", "message_id": 355}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 215, "x": 201, "type": "mouseover", "message_id": 356}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 215, "x": 201, "type": "mousemove", "message_id": 357}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 205, "x": 199, "type": "mouseover", "message_id": 358}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 205, "x": 199, "type": "mouseover", "message_id": 359}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 205, "x": 199, "type": "mousemove", "message_id": 360}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 195, "x": 197, "type": "mousemove", "message_id": 361}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 186, "x": 195, "type": "mousemove", "message_id": 362}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 178, "x": 194, "type": "mouseover", "message_id": 363}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 178, "x": 194, "type": "mouseover", "message_id": 364}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 178, "x": 194, "type": "mousemove", "message_id": 365}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 170, "x": 192, "type": "mouseover", "message_id": 366}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 170, "x": 192, "type": "mouseover", "message_id": 367}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 170, "x": 192, "type": "mousemove", "message_id": 368}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 162, "x": 192, "type": "mouseover", "message_id": 369}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 162, "x": 192, "type": "mousemove", "message_id": 371}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 162, "x": 192, "type": "mouseover", "message_id": 370}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 157, "x": 191, "type": "mousemove", "message_id": 372}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 150, "x": 190, "type": "mousemove", "message_id": 373}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 144, "x": 190, "type": "mousemove", "message_id": 374}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 139, "x": 190, "type": "mousemove", "message_id": 375}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 134, "x": 189, "type": "mousemove", "message_id": 376}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 129, "x": 189, "type": "mousemove", "message_id": 377}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 125, "x": 189, "type": "mousemove", "message_id": 378}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 121, "x": 189, "type": "mousemove", "message_id": 379}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 119, "x": 189, "type": "mousemove", "message_id": 380}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 116, "x": 189, "type": "mousemove", "message_id": 381}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 113, "x": 189, "type": "mousemove", "message_id": 382}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 107, "x": 189, "type": "mousemove", "message_id": 384}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 104, "x": 189, "type": "mousemove", "message_id": 385}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 109, "x": 189, "type": "mousemove", "message_id": 383}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 102, "x": 189, "type": "mousemove", "message_id": 386}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 100, "x": 189, "type": "mousemove", "message_id": 387}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 98, "x": 189, "type": "mousemove", "message_id": 388}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 95, "x": 189, "type": "mousemove", "message_id": 389}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 93, "x": 189, "type": "mousemove", "message_id": 390}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 91, "x": 189, "type": "mousemove", "message_id": 391}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 87, "x": 189, "type": "mousemove", "message_id": 392}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 86, "x": 189, "type": "mousemove", "message_id": 393}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 82, "x": 189, "type": "mousemove", "message_id": 394}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 81, "x": 189, "type": "mousemove", "message_id": 395}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 78, "x": 189, "type": "mousemove", "message_id": 396}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 75, "x": 189, "type": "mousemove", "message_id": 397}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 73, "x": 189, "type": "mousemove", "message_id": 398}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 71, "x": 189, "type": "mousemove", "message_id": 399}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 69, "x": 189, "type": "mousemove", "message_id": 400}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 67, "x": 189, "type": "mousemove", "message_id": 401}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 64, "x": 189, "type": "mousemove", "message_id": 403}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 63, "x": 189, "type": "mousemove", "message_id": 404}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 66, "x": 189, "type": "mousemove", "message_id": 402}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 62, "x": 189, "type": "mousemove", "message_id": 405}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 61, "x": 189, "type": "mousemove", "message_id": 406}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 60, "x": 188, "type": "mousemove", "message_id": 407}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 59, "x": 188, "type": "mousemove", "message_id": 408}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 58, "x": 188, "type": "mousemove", "message_id": 409}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 58, "x": 188, "type": "mousemove", "message_id": 410}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 58, "x": 188, "type": "mousemove", "message_id": 411}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 57, "x": 187, "type": "mousemove", "message_id": 412}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 56, "x": 187, "type": "mousemove", "message_id": 413}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 56, "x": 187, "type": "mousemove", "message_id": 414}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 56, "x": 187, "type": "mousemove", "message_id": 415}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 55, "x": 187, "type": "mousemove", "message_id": 416}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 55, "x": 187, "type": "mousemove", "message_id": 417}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 54, "x": 187, "type": "mousemove", "message_id": 418}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 54, "x": 187, "type": "mousemove", "message_id": 419}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 53, "x": 187, "type": "mousemove", "message_id": 420}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 53, "x": 187, "type": "mousemove", "message_id": 421}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 53, "x": 186, "type": "mousemove", "message_id": 422}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 52, "x": 186, "type": "mousemove", "message_id": 423}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 52, "x": 186, "type": "mousemove", "message_id": 424}
|
||||
{"sender": 5777, "msg_type": "MouseEvent", "y": 51, "x": 186, "type": "mousemove", "message_id": 426}
|
||||
826
recordings/test_multiple_viewers.replay
Normal file
826
recordings/test_multiple_viewers.replay
Normal file
@ -0,0 +1,826 @@
|
||||
{"panX": -172.02262700582662, "panY": -71.0005701449295, "scale": 1.9541018766756038, "sender": 3718, "msg_type": "ViewPort", "message_id": 0}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 37, "x": 201, "type": "mousemove", "message_id": 511}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 38, "x": 201, "type": "mousemove", "message_id": 512}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 40, "x": 201, "type": "mousemove", "message_id": 513}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 42, "x": 201, "type": "mousemove", "message_id": 514}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 45, "x": 202, "type": "mousemove", "message_id": 515}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 48, "x": 202, "type": "mousemove", "message_id": 516}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 51, "x": 202, "type": "mousemove", "message_id": 517}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 56, "x": 202, "type": "mousemove", "message_id": 518}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 62, "x": 203, "type": "mousemove", "message_id": 519}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 71, "x": 203, "type": "mousemove", "message_id": 520}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 82, "x": 204, "type": "mousemove", "message_id": 521}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 98, "x": 204, "type": "mouseover", "message_id": 522}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 98, "x": 204, "type": "mouseover", "message_id": 523}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 98, "x": 204, "type": "mousemove", "message_id": 524}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 118, "x": 206, "type": "mousemove", "message_id": 525}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 140, "x": 206, "type": "mousemove", "message_id": 526}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 162, "x": 204, "type": "mousemove", "message_id": 527}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 177, "x": 200, "type": "mousemove", "message_id": 528}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 197, "x": 193, "type": "mousemove", "message_id": 529}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 217, "x": 186, "type": "mousemove", "message_id": 530}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 235, "x": 178, "type": "mousemove", "message_id": 531}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 253, "x": 169, "type": "mousemove", "message_id": 532}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 269, "x": 160, "type": "mousemove", "message_id": 533}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 282, "x": 152, "type": "mousemove", "message_id": 534}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 294, "x": 144, "type": "mousemove", "message_id": 535}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 304, "x": 138, "type": "mousemove", "message_id": 536}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 312, "x": 133, "type": "mousemove", "message_id": 537}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 318, "x": 130, "type": "mouseover", "message_id": 538}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 318, "x": 130, "type": "mouseover", "message_id": 539}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 318, "x": 130, "type": "mousemove", "message_id": 540}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 324, "x": 127, "type": "mousemove", "message_id": 541}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 327, "x": 126, "type": "mouseover", "message_id": 542}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 327, "x": 126, "type": "mouseover", "message_id": 543}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 327, "x": 126, "type": "mousemove", "message_id": 544}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 329, "x": 125, "type": "mousemove", "message_id": 545}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 330, "x": 125, "type": "mousemove", "message_id": 546}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 330, "x": 125, "type": "mousemove", "message_id": 547}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 330, "x": 125, "type": "mousemove", "message_id": 548}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 330, "x": 124, "type": "mousemove", "message_id": 549}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 330, "x": 124, "type": "mousemove", "message_id": 550}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 330, "x": 124, "type": "mousemove", "message_id": 551}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 330, "x": 124, "type": "mousedown", "message_id": 552}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 330, "x": 124, "type": "mouseup", "message_id": 553}
|
||||
{"sender": 3718, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 554, "altKey": false, "metaKey": false, "key": "s", "ctrlKey": false, "type": "keydown", "keyCode": 83}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 331, "x": 125, "type": "mousemove", "message_id": 556}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 331, "x": 127, "type": "mouseover", "message_id": 557}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 331, "x": 127, "type": "mousemove", "message_id": 559}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 331, "x": 127, "type": "mouseover", "message_id": 558}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 331, "x": 130, "type": "mousemove", "message_id": 560}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 332, "x": 136, "type": "mousemove", "message_id": 561}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 332, "x": 142, "type": "mousemove", "message_id": 562}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 333, "x": 153, "type": "mousemove", "message_id": 563}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 334, "x": 169, "type": "mouseover", "message_id": 564}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 334, "x": 169, "type": "mouseover", "message_id": 565}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 334, "x": 169, "type": "mousemove", "message_id": 566}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 334, "x": 194, "type": "mouseover", "message_id": 567}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 334, "x": 194, "type": "mouseover", "message_id": 568}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 334, "x": 194, "type": "mousemove", "message_id": 569}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 334, "x": 231, "type": "mouseover", "message_id": 570}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 334, "x": 231, "type": "mouseover", "message_id": 571}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 334, "x": 231, "type": "mousemove", "message_id": 572}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 333, "x": 277, "type": "mousemove", "message_id": 573}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 334, "x": 321, "type": "mousemove", "message_id": 574}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 334, "x": 360, "type": "mousemove", "message_id": 575}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 337, "x": 396, "type": "mousemove", "message_id": 576}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 338, "x": 429, "type": "mouseover", "message_id": 577}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 338, "x": 429, "type": "mouseover", "message_id": 578}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 338, "x": 429, "type": "mousemove", "message_id": 579}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 340, "x": 455, "type": "mouseover", "message_id": 580}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 340, "x": 455, "type": "mouseover", "message_id": 581}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 343, "x": 487, "type": "mousemove", "message_id": 583}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 340, "x": 455, "type": "mousemove", "message_id": 582}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 344, "x": 516, "type": "mousemove", "message_id": 584}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 345, "x": 533, "type": "mousemove", "message_id": 585}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 345, "x": 551, "type": "mousemove", "message_id": 586}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 344, "x": 561, "type": "mouseover", "message_id": 587}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 344, "x": 561, "type": "mouseover", "message_id": 588}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 344, "x": 561, "type": "mousemove", "message_id": 589}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 344, "x": 564, "type": "mousemove", "message_id": 590}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 344, "x": 564, "type": "mouseover", "message_id": 591}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 344, "x": 564, "type": "mouseover", "message_id": 592}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 344, "x": 564, "type": "mousemove", "message_id": 593}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 344, "x": 564, "type": "mousedown", "message_id": 594}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 344, "x": 564, "type": "mouseup", "message_id": 595}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 344, "x": 564, "type": "mousemove", "message_id": 596}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 344, "x": 563, "type": "mousemove", "message_id": 597}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 344, "x": 563, "type": "mousemove", "message_id": 598}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 344, "x": 563, "type": "mousemove", "message_id": 599}
|
||||
{"sender": 3718, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 600, "altKey": false, "metaKey": false, "key": "s", "ctrlKey": false, "type": "keydown", "keyCode": 83}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 344, "x": 563, "type": "mousemove", "message_id": 602}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 344, "x": 563, "type": "mousemove", "message_id": 603}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 344, "x": 562, "type": "mousemove", "message_id": 604}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 343, "x": 561, "type": "mousemove", "message_id": 605}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 341, "x": 559, "type": "mouseover", "message_id": 606}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 341, "x": 559, "type": "mouseover", "message_id": 607}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 340, "x": 558, "type": "mouseover", "message_id": 609}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 340, "x": 558, "type": "mousemove", "message_id": 611}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 341, "x": 559, "type": "mousemove", "message_id": 608}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 338, "x": 555, "type": "mouseover", "message_id": 612}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 340, "x": 558, "type": "mouseover", "message_id": 610}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 338, "x": 555, "type": "mouseover", "message_id": 613}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 338, "x": 555, "type": "mousemove", "message_id": 614}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 337, "x": 553, "type": "mouseover", "message_id": 616}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 337, "x": 553, "type": "mouseover", "message_id": 615}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 337, "x": 553, "type": "mousemove", "message_id": 617}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 331, "x": 549, "type": "mouseover", "message_id": 618}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 331, "x": 549, "type": "mousemove", "message_id": 620}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 331, "x": 549, "type": "mouseover", "message_id": 619}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 322, "x": 542, "type": "mousemove", "message_id": 621}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 309, "x": 533, "type": "mouseover", "message_id": 622}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 309, "x": 533, "type": "mouseover", "message_id": 623}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 309, "x": 533, "type": "mousemove", "message_id": 624}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 297, "x": 526, "type": "mouseover", "message_id": 625}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 297, "x": 526, "type": "mouseover", "message_id": 626}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 297, "x": 526, "type": "mousemove", "message_id": 627}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 289, "x": 521, "type": "mousemove", "message_id": 628}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 282, "x": 517, "type": "mousemove", "message_id": 629}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 277, "x": 514, "type": "mouseover", "message_id": 630}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 277, "x": 514, "type": "mouseover", "message_id": 631}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 277, "x": 514, "type": "mousemove", "message_id": 632}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 274, "x": 512, "type": "mousemove", "message_id": 633}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 271, "x": 509, "type": "mousemove", "message_id": 634}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 267, "x": 507, "type": "mousemove", "message_id": 635}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 262, "x": 504, "type": "mousemove", "message_id": 636}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 257, "x": 501, "type": "mouseover", "message_id": 638}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 257, "x": 501, "type": "mouseover", "message_id": 637}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 251, "x": 498, "type": "mousemove", "message_id": 640}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 257, "x": 501, "type": "mousemove", "message_id": 639}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 245, "x": 494, "type": "mousemove", "message_id": 641}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 240, "x": 491, "type": "mouseover", "message_id": 642}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 240, "x": 491, "type": "mouseover", "message_id": 643}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 240, "x": 491, "type": "mousemove", "message_id": 644}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 234, "x": 486, "type": "mouseover", "message_id": 645}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 234, "x": 486, "type": "mousemove", "message_id": 647}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 234, "x": 486, "type": "mouseover", "message_id": 646}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 227, "x": 480, "type": "mousemove", "message_id": 648}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 221, "x": 473, "type": "mousemove", "message_id": 649}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 215, "x": 465, "type": "mouseover", "message_id": 650}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 215, "x": 465, "type": "mouseover", "message_id": 651}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 215, "x": 465, "type": "mousemove", "message_id": 652}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 207, "x": 455, "type": "mousemove", "message_id": 654}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 210, "x": 459, "type": "mousemove", "message_id": 653}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 205, "x": 454, "type": "mouseover", "message_id": 655}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 205, "x": 454, "type": "mouseover", "message_id": 656}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 205, "x": 454, "type": "mousemove", "message_id": 657}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 204, "x": 454, "type": "mousemove", "message_id": 658}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 204, "x": 454, "type": "mousemove", "message_id": 659}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 204, "x": 454, "type": "mousedown", "message_id": 660}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 203, "x": 454, "type": "mousemove", "message_id": 661}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 202, "x": 454, "type": "mousemove", "message_id": 662}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 201, "x": 454, "type": "mousemove", "message_id": 663}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 200, "x": 453, "type": "mousemove", "message_id": 664}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 198, "x": 453, "type": "mousemove", "message_id": 665}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 196, "x": 452, "type": "mousemove", "message_id": 666}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 196, "x": 452, "type": "mouseup", "message_id": 667}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 195, "x": 451, "type": "mousemove", "message_id": 668}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 192, "x": 449, "type": "mouseover", "message_id": 669}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 192, "x": 449, "type": "mouseover", "message_id": 670}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 192, "x": 449, "type": "mousemove", "message_id": 671}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 188, "x": 445, "type": "mousemove", "message_id": 672}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 184, "x": 439, "type": "mousemove", "message_id": 673}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 181, "x": 435, "type": "mousemove", "message_id": 674}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 179, "x": 428, "type": "mouseover", "message_id": 675}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 179, "x": 428, "type": "mouseover", "message_id": 676}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 179, "x": 428, "type": "mousemove", "message_id": 677}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 177, "x": 422, "type": "mouseover", "message_id": 679}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 177, "x": 422, "type": "mouseover", "message_id": 678}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 176, "x": 416, "type": "mouseover", "message_id": 681}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 177, "x": 422, "type": "mousemove", "message_id": 680}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 176, "x": 416, "type": "mouseover", "message_id": 682}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 176, "x": 416, "type": "mousemove", "message_id": 683}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 175, "x": 410, "type": "mousemove", "message_id": 684}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 173, "x": 402, "type": "mousemove", "message_id": 686}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 174, "x": 406, "type": "mousemove", "message_id": 685}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 173, "x": 400, "type": "mousemove", "message_id": 687}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 173, "x": 399, "type": "mouseover", "message_id": 688}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 173, "x": 399, "type": "mouseover", "message_id": 689}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 173, "x": 399, "type": "mousemove", "message_id": 691}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 173, "x": 399, "type": "mousemove", "message_id": 690}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 173, "x": 398, "type": "mousemove", "message_id": 692}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 173, "x": 397, "type": "mousemove", "message_id": 693}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 172, "x": 396, "type": "mousemove", "message_id": 694}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 172, "x": 394, "type": "mouseover", "message_id": 695}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 172, "x": 394, "type": "mouseover", "message_id": 696}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 172, "x": 394, "type": "mousemove", "message_id": 697}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 172, "x": 393, "type": "mouseover", "message_id": 698}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 172, "x": 393, "type": "mousemove", "message_id": 700}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 172, "x": 393, "type": "mouseover", "message_id": 699}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 172, "x": 393, "type": "mousemove", "message_id": 702}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 172, "x": 393, "type": "mousemove", "message_id": 701}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 171, "x": 393, "type": "mousemove", "message_id": 703}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 170, "x": 393, "type": "mousemove", "message_id": 704}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 169, "x": 393, "type": "mousemove", "message_id": 705}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 165, "x": 393, "type": "mousemove", "message_id": 706}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 160, "x": 391, "type": "mouseover", "message_id": 707}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 160, "x": 391, "type": "mouseover", "message_id": 708}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 160, "x": 391, "type": "mousemove", "message_id": 709}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 155, "x": 390, "type": "mouseover", "message_id": 710}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 155, "x": 390, "type": "mouseover", "message_id": 711}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 155, "x": 390, "type": "mousemove", "message_id": 712}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 152, "x": 390, "type": "mousemove", "message_id": 713}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 150, "x": 389, "type": "mousemove", "message_id": 714}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 147, "x": 389, "type": "mousemove", "message_id": 715}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 144, "x": 389, "type": "mousemove", "message_id": 716}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 141, "x": 388, "type": "mousemove", "message_id": 717}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 137, "x": 385, "type": "mouseover", "message_id": 718}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 137, "x": 385, "type": "mouseover", "message_id": 719}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 137, "x": 385, "type": "mousemove", "message_id": 720}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 134, "x": 382, "type": "mousemove", "message_id": 721}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 130, "x": 378, "type": "mouseover", "message_id": 722}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 130, "x": 378, "type": "mouseover", "message_id": 723}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 130, "x": 378, "type": "mousemove", "message_id": 724}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 127, "x": 374, "type": "mouseover", "message_id": 725}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 127, "x": 374, "type": "mouseover", "message_id": 726}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 124, "x": 371, "type": "mouseover", "message_id": 728}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 127, "x": 374, "type": "mousemove", "message_id": 727}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 124, "x": 371, "type": "mouseover", "message_id": 729}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 122, "x": 369, "type": "mousemove", "message_id": 731}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 124, "x": 371, "type": "mousemove", "message_id": 730}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 121, "x": 368, "type": "mouseover", "message_id": 733}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 121, "x": 368, "type": "mouseover", "message_id": 732}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 121, "x": 368, "type": "mousemove", "message_id": 734}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 120, "x": 367, "type": "mousemove", "message_id": 735}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 118, "x": 366, "type": "mousemove", "message_id": 736}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 117, "x": 366, "type": "mousemove", "message_id": 737}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 115, "x": 365, "type": "mousemove", "message_id": 738}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 114, "x": 365, "type": "mousemove", "message_id": 739}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 114, "x": 364, "type": "mousemove", "message_id": 740}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 112, "x": 364, "type": "mousemove", "message_id": 741}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 111, "x": 364, "type": "mousemove", "message_id": 742}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 110, "x": 364, "type": "mousemove", "message_id": 743}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 109, "x": 363, "type": "mousemove", "message_id": 744}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 108, "x": 362, "type": "mousemove", "message_id": 745}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 106, "x": 360, "type": "mouseover", "message_id": 746}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 106, "x": 360, "type": "mouseover", "message_id": 747}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 106, "x": 360, "type": "mousemove", "message_id": 748}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 105, "x": 358, "type": "mouseover", "message_id": 749}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 105, "x": 358, "type": "mouseover", "message_id": 750}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 105, "x": 358, "type": "mousemove", "message_id": 751}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 103, "x": 355, "type": "mouseover", "message_id": 752}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 103, "x": 355, "type": "mousemove", "message_id": 754}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 103, "x": 355, "type": "mouseover", "message_id": 753}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 102, "x": 354, "type": "mouseover", "message_id": 755}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 102, "x": 354, "type": "mouseover", "message_id": 756}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 101, "x": 353, "type": "mousemove", "message_id": 758}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 102, "x": 354, "type": "mousemove", "message_id": 757}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 100, "x": 353, "type": "mousemove", "message_id": 759}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 99, "x": 352, "type": "mousemove", "message_id": 760}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 99, "x": 352, "type": "mousemove", "message_id": 761}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 98, "x": 352, "type": "mousemove", "message_id": 762}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 98, "x": 352, "type": "mousemove", "message_id": 763}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 97, "x": 352, "type": "mousemove", "message_id": 764}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 97, "x": 351, "type": "mousemove", "message_id": 765}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 97, "x": 351, "type": "mousemove", "message_id": 766}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 96, "x": 350, "type": "mousemove", "message_id": 767}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 95, "x": 349, "type": "mousemove", "message_id": 768}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 94, "x": 348, "type": "mousemove", "message_id": 769}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 93, "x": 347, "type": "mousemove", "message_id": 770}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 92, "x": 346, "type": "mousemove", "message_id": 771}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 91, "x": 345, "type": "mousemove", "message_id": 772}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 90, "x": 344, "type": "mousemove", "message_id": 773}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 89, "x": 344, "type": "mousemove", "message_id": 774}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 89, "x": 344, "type": "mousemove", "message_id": 775}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 89, "x": 343, "type": "mousemove", "message_id": 776}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 89, "x": 343, "type": "mousemove", "message_id": 777}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 88, "x": 342, "type": "mousemove", "message_id": 778}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 88, "x": 341, "type": "mousemove", "message_id": 779}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 88, "x": 341, "type": "mousemove", "message_id": 780}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 88, "x": 341, "type": "mousemove", "message_id": 781}
|
||||
{"sender": 3718, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 782, "altKey": false, "metaKey": false, "key": "r", "ctrlKey": false, "type": "keydown", "keyCode": 82}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 88, "x": 341, "type": "mousemove", "message_id": 784}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 89, "x": 342, "type": "mousemove", "message_id": 785}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 90, "x": 344, "type": "mouseover", "message_id": 786}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 90, "x": 344, "type": "mouseover", "message_id": 787}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 90, "x": 344, "type": "mousemove", "message_id": 788}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 91, "x": 345, "type": "mouseover", "message_id": 789}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 91, "x": 345, "type": "mouseover", "message_id": 790}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 91, "x": 345, "type": "mousemove", "message_id": 791}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 94, "x": 346, "type": "mousemove", "message_id": 792}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 99, "x": 347, "type": "mousemove", "message_id": 793}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 106, "x": 348, "type": "mousemove", "message_id": 794}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 114, "x": 350, "type": "mouseover", "message_id": 796}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 114, "x": 350, "type": "mouseover", "message_id": 795}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 114, "x": 350, "type": "mousemove", "message_id": 797}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 121, "x": 350, "type": "mouseover", "message_id": 798}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 121, "x": 350, "type": "mouseover", "message_id": 799}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 121, "x": 350, "type": "mousemove", "message_id": 800}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 126, "x": 350, "type": "mousemove", "message_id": 801}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 132, "x": 350, "type": "mousemove", "message_id": 802}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 140, "x": 349, "type": "mousemove", "message_id": 803}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 150, "x": 348, "type": "mousemove", "message_id": 804}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 163, "x": 347, "type": "mousemove", "message_id": 805}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 178, "x": 347, "type": "mousemove", "message_id": 806}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 198, "x": 347, "type": "mouseover", "message_id": 807}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 198, "x": 347, "type": "mouseover", "message_id": 808}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 198, "x": 347, "type": "mousemove", "message_id": 809}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 220, "x": 347, "type": "mousemove", "message_id": 810}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 245, "x": 347, "type": "mousemove", "message_id": 811}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 269, "x": 346, "type": "mousemove", "message_id": 812}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 286, "x": 344, "type": "mousemove", "message_id": 813}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 307, "x": 341, "type": "mousemove", "message_id": 814}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 328, "x": 339, "type": "mousemove", "message_id": 815}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 348, "x": 337, "type": "mousemove", "message_id": 816}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 367, "x": 338, "type": "mousemove", "message_id": 817}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 386, "x": 341, "type": "mousemove", "message_id": 818}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 404, "x": 344, "type": "mousemove", "message_id": 819}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 423, "x": 347, "type": "mousemove", "message_id": 820}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 444, "x": 349, "type": "mousemove", "message_id": 821}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 465, "x": 350, "type": "mousemove", "message_id": 822}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 480, "x": 349, "type": "mouseover", "message_id": 824}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 480, "x": 349, "type": "mousemove", "message_id": 825}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 480, "x": 349, "type": "mouseover", "message_id": 823}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 499, "x": 346, "type": "mouseover", "message_id": 826}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 499, "x": 346, "type": "mouseover", "message_id": 827}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 499, "x": 346, "type": "mousemove", "message_id": 828}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 514, "x": 343, "type": "mousemove", "message_id": 829}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 524, "x": 341, "type": "mousemove", "message_id": 830}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 530, "x": 340, "type": "mouseover", "message_id": 831}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 530, "x": 340, "type": "mouseover", "message_id": 832}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 532, "x": 340, "type": "mousemove", "message_id": 834}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 530, "x": 340, "type": "mousemove", "message_id": 833}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 534, "x": 340, "type": "mousemove", "message_id": 835}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 534, "x": 341, "type": "mousemove", "message_id": 836}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 535, "x": 341, "type": "mousemove", "message_id": 837}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 536, "x": 342, "type": "mousemove", "message_id": 838}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 536, "x": 342, "type": "mousemove", "message_id": 839}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 536, "x": 342, "type": "mousemove", "message_id": 840}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 536, "x": 342, "type": "mousemove", "message_id": 841}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 535, "x": 342, "type": "mousemove", "message_id": 842}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 534, "x": 343, "type": "mousemove", "message_id": 843}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 533, "x": 343, "type": "mousemove", "message_id": 844}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 532, "x": 344, "type": "mousemove", "message_id": 845}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 532, "x": 344, "type": "mousemove", "message_id": 846}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 532, "x": 344, "type": "mousemove", "message_id": 847}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 532, "x": 344, "type": "mousemove", "message_id": 848}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 531, "x": 344, "type": "mousemove", "message_id": 849}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 531, "x": 345, "type": "mousemove", "message_id": 850}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 531, "x": 346, "type": "mousemove", "message_id": 851}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 530, "x": 347, "type": "mousemove", "message_id": 852}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 530, "x": 347, "type": "mousemove", "message_id": 853}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 530, "x": 347, "type": "mousemove", "message_id": 854}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 530, "x": 347, "type": "mousemove", "message_id": 855}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 531, "x": 348, "type": "mousemove", "message_id": 856}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 533, "x": 348, "type": "mousemove", "message_id": 857}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 534, "x": 348, "type": "mousemove", "message_id": 858}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 535, "x": 348, "type": "mousemove", "message_id": 859}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 536, "x": 348, "type": "mousemove", "message_id": 860}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 537, "x": 348, "type": "mousemove", "message_id": 861}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 538, "x": 348, "type": "mousemove", "message_id": 862}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 538, "x": 348, "type": "mousemove", "message_id": 863}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 538, "x": 348, "type": "mousemove", "message_id": 864}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 538, "x": 348, "type": "mousemove", "message_id": 865}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 538, "x": 348, "type": "mousemove", "message_id": 866}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 538, "x": 348, "type": "mousemove", "message_id": 867}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 539, "x": 348, "type": "mousemove", "message_id": 868}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 539, "x": 348, "type": "mousemove", "message_id": 869}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 540, "x": 347, "type": "mousemove", "message_id": 870}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 541, "x": 347, "type": "mousemove", "message_id": 871}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 542, "x": 347, "type": "mousemove", "message_id": 872}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 544, "x": 347, "type": "mousemove", "message_id": 873}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 546, "x": 348, "type": "mousemove", "message_id": 874}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 547, "x": 348, "type": "mousemove", "message_id": 875}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 548, "x": 349, "type": "mousemove", "message_id": 876}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 548, "x": 349, "type": "mousemove", "message_id": 877}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 549, "x": 349, "type": "mousemove", "message_id": 878}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 549, "x": 349, "type": "mousemove", "message_id": 879}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 549, "x": 349, "type": "mousemove", "message_id": 880}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 549, "x": 349, "type": "mousemove", "message_id": 881}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 550, "x": 349, "type": "mousemove", "message_id": 882}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 550, "x": 349, "type": "mousemove", "message_id": 883}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 551, "x": 349, "type": "mousemove", "message_id": 884}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 551, "x": 349, "type": "mousemove", "message_id": 885}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 552, "x": 349, "type": "mousemove", "message_id": 886}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 552, "x": 348, "type": "mousemove", "message_id": 887}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 552, "x": 348, "type": "mousemove", "message_id": 888}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 553, "x": 348, "type": "mousemove", "message_id": 889}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 554, "x": 348, "type": "mousemove", "message_id": 890}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 555, "x": 347, "type": "mousemove", "message_id": 891}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 556, "x": 347, "type": "mousemove", "message_id": 892}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 557, "x": 346, "type": "mousemove", "message_id": 893}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 558, "x": 346, "type": "mousemove", "message_id": 894}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 558, "x": 346, "type": "mousemove", "message_id": 895}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 345, "type": "mousemove", "message_id": 896}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 345, "type": "mousemove", "message_id": 897}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 345, "type": "mousemove", "message_id": 898}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 345, "type": "mousemove", "message_id": 899}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 345, "type": "mousemove", "message_id": 900}
|
||||
{"sender": 3718, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 901, "altKey": false, "metaKey": false, "key": "h", "ctrlKey": false, "type": "keydown", "keyCode": 72}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 345, "type": "mousemove", "message_id": 903}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 345, "type": "mousemove", "message_id": 904}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 345, "type": "mousemove", "message_id": 905}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 345, "type": "mousemove", "message_id": 906}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 345, "type": "mousemove", "message_id": 907}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 345, "type": "mousemove", "message_id": 908}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 346, "type": "mousemove", "message_id": 909}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": 0, "delta": -1, "type": "wheel", "message_id": 910}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 345, "type": "mousemove", "message_id": 911}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 345, "type": "mousemove", "message_id": 912}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 345, "type": "mousemove", "message_id": 913}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 345, "type": "mousemove", "message_id": 915}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 345, "type": "mousemove", "message_id": 914}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 346, "type": "mousemove", "message_id": 916}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 346, "type": "mousemove", "message_id": 917}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 346, "type": "mousemove", "message_id": 918}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 346, "type": "mousemove", "message_id": 919}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 346, "type": "mousemove", "message_id": 920}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 346, "type": "mousemove", "message_id": 921}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 346, "type": "mousemove", "message_id": 922}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 346, "type": "mousemove", "message_id": 923}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 346, "type": "mousemove", "message_id": 924}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 346, "type": "mousemove", "message_id": 925}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 346, "type": "mousemove", "message_id": 926}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 346, "type": "mousemove", "message_id": 927}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 346, "type": "mousemove", "message_id": 928}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 347, "type": "mousemove", "message_id": 929}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 347, "type": "mousemove", "message_id": 930}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 347, "type": "mousemove", "message_id": 931}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 347, "type": "mousemove", "message_id": 932}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 347, "type": "mousemove", "message_id": 933}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 347, "type": "mousemove", "message_id": 934}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 347, "type": "mousemove", "message_id": 935}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 347, "type": "mousemove", "message_id": 936}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 347, "type": "mousemove", "message_id": 937}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 347, "type": "mousemove", "message_id": 938}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 347, "type": "mousemove", "message_id": 939}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 347, "type": "mousemove", "message_id": 940}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 347, "type": "mousemove", "message_id": 941}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 347, "type": "mousemove", "message_id": 942}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 347, "type": "mousemove", "message_id": 943}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 347, "type": "mousemove", "message_id": 944}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 347, "type": "mousemove", "message_id": 945}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 347, "type": "mousemove", "message_id": 946}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 348, "type": "mousemove", "message_id": 947}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 347, "type": "mousemove", "message_id": 948}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 347, "type": "mousemove", "message_id": 949}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 347, "type": "mousemove", "message_id": 950}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 347, "type": "mousemove", "message_id": 951}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 347, "type": "mousemove", "message_id": 952}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 347, "type": "mousemove", "message_id": 953}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 347, "type": "mousemove", "message_id": 954}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 347, "type": "mousemove", "message_id": 955}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 348, "type": "mousemove", "message_id": 956}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 348, "type": "mousemove", "message_id": 957}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 348, "type": "mousemove", "message_id": 958}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 348, "type": "mousemove", "message_id": 959}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 348, "type": "mousemove", "message_id": 960}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 348, "type": "mousemove", "message_id": 961}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 348, "type": "mousemove", "message_id": 962}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 348, "type": "mousemove", "message_id": 963}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 348, "type": "mousemove", "message_id": 964}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 348, "type": "mousemove", "message_id": 965}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 348, "type": "mousemove", "message_id": 966}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 560, "x": 348, "type": "mousemove", "message_id": 967}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 968}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 969}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 970}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 971}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 972}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 973}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 974}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 975}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 976}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 977}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 978}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 349, "type": "mousemove", "message_id": 979}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 980}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 981}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 982}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 983}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 984}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 985}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 986}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 987}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 988}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 989}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 990}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 348, "type": "mousemove", "message_id": 991}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 347, "type": "mousemove", "message_id": 992}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 347, "type": "mousemove", "message_id": 993}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 561, "x": 347, "type": "mousemove", "message_id": 994}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 562, "x": 347, "type": "mousemove", "message_id": 995}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 562, "x": 347, "type": "mousemove", "message_id": 996}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 562, "x": 347, "type": "mousemove", "message_id": 997}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 562, "x": 347, "type": "mousemove", "message_id": 998}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 562, "x": 347, "type": "mousemove", "message_id": 999}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 562, "x": 347, "type": "mousemove", "message_id": 1000}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 562, "x": 346, "type": "mousemove", "message_id": 1001}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 562, "x": 346, "type": "mousemove", "message_id": 1002}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 562, "x": 346, "type": "mousemove", "message_id": 1003}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 562, "x": 346, "type": "mousemove", "message_id": 1004}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 563, "x": 347, "type": "mousemove", "message_id": 1005}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 563, "x": 348, "type": "mousemove", "message_id": 1006}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 564, "x": 351, "type": "mouseover", "message_id": 1007}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 564, "x": 351, "type": "mouseover", "message_id": 1008}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 564, "x": 351, "type": "mousemove", "message_id": 1009}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 565, "x": 354, "type": "mousemove", "message_id": 1010}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 565, "x": 354, "type": "mouseover", "message_id": 1011}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 565, "x": 354, "type": "mouseover", "message_id": 1012}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 565, "x": 354, "type": "mousemove", "message_id": 1013}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 565, "x": 354, "type": "mousemove", "message_id": 1014}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 565, "x": 354, "type": "mousemove", "message_id": 1015}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 565, "x": 354, "type": "mousemove", "message_id": 1016}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 565, "x": 355, "type": "mousemove", "message_id": 1017}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 563, "x": 356, "type": "mousemove", "message_id": 1018}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 358, "type": "mouseover", "message_id": 1019}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 358, "type": "mouseover", "message_id": 1020}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 559, "x": 358, "type": "mousemove", "message_id": 1021}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 554, "x": 362, "type": "mouseover", "message_id": 1022}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 554, "x": 362, "type": "mouseover", "message_id": 1023}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 554, "x": 362, "type": "mousemove", "message_id": 1024}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 546, "x": 368, "type": "mousemove", "message_id": 1025}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 536, "x": 375, "type": "mouseover", "message_id": 1026}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 536, "x": 375, "type": "mouseover", "message_id": 1027}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 536, "x": 375, "type": "mousemove", "message_id": 1028}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 520, "x": 385, "type": "mouseover", "message_id": 1029}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 520, "x": 385, "type": "mouseover", "message_id": 1030}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 520, "x": 385, "type": "mousemove", "message_id": 1031}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 497, "x": 395, "type": "mousemove", "message_id": 1032}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 469, "x": 407, "type": "mousemove", "message_id": 1033}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 439, "x": 416, "type": "mousemove", "message_id": 1034}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 408, "x": 423, "type": "mouseover", "message_id": 1035}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 408, "x": 423, "type": "mouseover", "message_id": 1036}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 408, "x": 423, "type": "mousemove", "message_id": 1037}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 379, "x": 425, "type": "mouseover", "message_id": 1038}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 379, "x": 425, "type": "mousemove", "message_id": 1040}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 353, "x": 423, "type": "mouseover", "message_id": 1041}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 379, "x": 425, "type": "mouseover", "message_id": 1039}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 353, "x": 423, "type": "mouseover", "message_id": 1042}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 353, "x": 423, "type": "mousemove", "message_id": 1043}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 331, "x": 419, "type": "mouseover", "message_id": 1044}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 331, "x": 419, "type": "mouseover", "message_id": 1045}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 331, "x": 419, "type": "mousemove", "message_id": 1046}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 312, "x": 410, "type": "mousemove", "message_id": 1047}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 301, "x": 403, "type": "mousemove", "message_id": 1048}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 289, "x": 393, "type": "mousemove", "message_id": 1049}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 280, "x": 384, "type": "mousemove", "message_id": 1050}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 273, "x": 376, "type": "mousemove", "message_id": 1051}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 266, "x": 367, "type": "mousemove", "message_id": 1052}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 259, "x": 357, "type": "mousemove", "message_id": 1053}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 252, "x": 348, "type": "mousemove", "message_id": 1054}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 246, "x": 340, "type": "mousemove", "message_id": 1055}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 239, "x": 332, "type": "mousemove", "message_id": 1056}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 232, "x": 323, "type": "mousemove", "message_id": 1057}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 225, "x": 313, "type": "mousemove", "message_id": 1058}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 215, "x": 300, "type": "mousemove", "message_id": 1059}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 205, "x": 287, "type": "mousemove", "message_id": 1060}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 195, "x": 277, "type": "mousemove", "message_id": 1061}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 186, "x": 272, "type": "mouseover", "message_id": 1063}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 186, "x": 272, "type": "mouseover", "message_id": 1062}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 186, "x": 272, "type": "mousemove", "message_id": 1064}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 179, "x": 270, "type": "mouseover", "message_id": 1065}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 179, "x": 270, "type": "mouseover", "message_id": 1066}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 179, "x": 270, "type": "mousemove", "message_id": 1067}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 174, "x": 269, "type": "mouseover", "message_id": 1068}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 174, "x": 269, "type": "mouseover", "message_id": 1069}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 174, "x": 269, "type": "mousemove", "message_id": 1070}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 170, "x": 269, "type": "mousemove", "message_id": 1071}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 167, "x": 270, "type": "mousemove", "message_id": 1073}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 168, "x": 270, "type": "mousemove", "message_id": 1072}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 167, "x": 271, "type": "mousemove", "message_id": 1074}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": 0, "delta": -1, "type": "wheel", "message_id": 1075}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 167, "x": 271, "type": "mousemove", "message_id": 1076}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 3, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 1077}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 168, "x": 270, "type": "mousemove", "message_id": 1078}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 3, "deltaY": -3, "delta": -3, "type": "wheel", "message_id": 1079}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 169, "x": 270, "type": "mousemove", "message_id": 1080}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 2, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 1081}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 170, "x": 269, "type": "mousemove", "message_id": 1082}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1083}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 171, "x": 269, "type": "mousemove", "message_id": 1084}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": 0, "delta": -1, "type": "wheel", "message_id": 1085}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 173, "x": 269, "type": "mousemove", "message_id": 1086}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 1087}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 176, "x": 270, "type": "mousemove", "message_id": 1088}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 178, "x": 272, "type": "mouseover", "message_id": 1089}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 178, "x": 272, "type": "mouseover", "message_id": 1090}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 178, "x": 272, "type": "mousemove", "message_id": 1091}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 183, "x": 275, "type": "mousemove", "message_id": 1092}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 188, "x": 277, "type": "mousemove", "message_id": 1093}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 193, "x": 279, "type": "mousemove", "message_id": 1094}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 198, "x": 280, "type": "mouseover", "message_id": 1096}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 198, "x": 280, "type": "mouseover", "message_id": 1095}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 198, "x": 280, "type": "mousemove", "message_id": 1097}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 202, "x": 280, "type": "mousemove", "message_id": 1098}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 207, "x": 281, "type": "mousemove", "message_id": 1099}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 211, "x": 281, "type": "mousemove", "message_id": 1100}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 216, "x": 281, "type": "mousemove", "message_id": 1101}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 221, "x": 280, "type": "mousemove", "message_id": 1102}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 227, "x": 280, "type": "mousemove", "message_id": 1103}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 233, "x": 280, "type": "mousemove", "message_id": 1104}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 238, "x": 280, "type": "mousemove", "message_id": 1105}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 241, "x": 280, "type": "mousemove", "message_id": 1106}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 244, "x": 280, "type": "mousemove", "message_id": 1107}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 244, "x": 280, "type": "mousemove", "message_id": 1108}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 245, "x": 280, "type": "mousemove", "message_id": 1109}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 2, "deltaY": 0, "delta": -2, "type": "wheel", "message_id": 1110}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 4, "deltaY": 0, "delta": -4, "type": "wheel", "message_id": 1111}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 4, "deltaY": 0, "delta": -4, "type": "wheel", "message_id": 1112}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 4, "deltaY": 0, "delta": -4, "type": "wheel", "message_id": 1113}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 3, "deltaY": 0, "delta": -3, "type": "wheel", "message_id": 1114}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 245, "x": 280, "type": "mousemove", "message_id": 1115}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 3, "deltaY": 0, "delta": -3, "type": "wheel", "message_id": 1116}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 246, "x": 280, "type": "mousemove", "message_id": 1117}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 3, "deltaY": 0, "delta": -3, "type": "wheel", "message_id": 1118}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 246, "x": 281, "type": "mousemove", "message_id": 1119}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 247, "x": 281, "type": "mousemove", "message_id": 1120}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 3, "deltaY": 0, "delta": -3, "type": "wheel", "message_id": 1121}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 3, "deltaY": 0, "delta": -3, "type": "wheel", "message_id": 1123}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 248, "x": 282, "type": "mousemove", "message_id": 1122}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 249, "x": 283, "type": "mousemove", "message_id": 1124}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 251, "x": 286, "type": "mouseover", "message_id": 1125}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 251, "x": 286, "type": "mouseover", "message_id": 1126}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 251, "x": 286, "type": "mousemove", "message_id": 1127}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 254, "x": 291, "type": "mouseover", "message_id": 1129}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 3, "deltaY": 0, "delta": -3, "type": "wheel", "message_id": 1128}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 254, "x": 291, "type": "mouseover", "message_id": 1130}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 254, "x": 291, "type": "mousemove", "message_id": 1131}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 2, "deltaY": 0, "delta": -2, "type": "wheel", "message_id": 1132}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 258, "x": 297, "type": "mouseover", "message_id": 1133}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 258, "x": 297, "type": "mouseover", "message_id": 1134}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 258, "x": 297, "type": "mousemove", "message_id": 1135}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 261, "x": 301, "type": "mousemove", "message_id": 1136}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 2, "deltaY": 0, "delta": -2, "type": "wheel", "message_id": 1137}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 264, "x": 305, "type": "mousemove", "message_id": 1138}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 265, "x": 307, "type": "mouseover", "message_id": 1140}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 2, "deltaY": 0, "delta": -2, "type": "wheel", "message_id": 1139}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 265, "x": 307, "type": "mouseover", "message_id": 1141}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 265, "x": 307, "type": "mousemove", "message_id": 1142}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 266, "x": 307, "type": "mouseover", "message_id": 1144}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 2, "deltaY": 0, "delta": -2, "type": "wheel", "message_id": 1143}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 266, "x": 307, "type": "mouseover", "message_id": 1145}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 266, "x": 307, "type": "mousemove", "message_id": 1146}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 2, "deltaY": 0, "delta": -2, "type": "wheel", "message_id": 1148}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 266, "x": 307, "type": "mousemove", "message_id": 1147}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": 0, "delta": -1, "type": "wheel", "message_id": 1149}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 266, "x": 307, "type": "mousemove", "message_id": 1150}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": 0, "delta": -1, "type": "wheel", "message_id": 1152}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 267, "x": 307, "type": "mousemove", "message_id": 1153}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 266, "x": 307, "type": "mousemove", "message_id": 1151}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": 0, "delta": -1, "type": "wheel", "message_id": 1154}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 268, "x": 308, "type": "mousemove", "message_id": 1155}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 268, "x": 308, "type": "mousemove", "message_id": 1156}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": 0, "delta": -1, "type": "wheel", "message_id": 1157}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 269, "x": 309, "type": "mousemove", "message_id": 1160}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 269, "x": 308, "type": "mousemove", "message_id": 1158}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 269, "x": 309, "type": "mousemove", "message_id": 1161}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": 0, "delta": -1, "type": "wheel", "message_id": 1159}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": 0, "delta": -1, "type": "wheel", "message_id": 1162}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": 0, "delta": -1, "type": "wheel", "message_id": 1164}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 269, "x": 309, "type": "mousemove", "message_id": 1163}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": 0, "delta": -1, "type": "wheel", "message_id": 1165}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": 0, "delta": -1, "type": "wheel", "message_id": 1166}
|
||||
{"sender": 3718, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 1167, "altKey": false, "metaKey": true, "key": "Meta", "ctrlKey": false, "type": "keydown", "keyCode": 91}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": 0, "delta": -1, "type": "wheel", "message_id": 1168}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": 0, "delta": -1, "type": "wheel", "message_id": 1170}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": 0, "delta": -1, "type": "wheel", "message_id": 1172}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": 0, "delta": -1, "type": "wheel", "message_id": 1174}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1176}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1178}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1180}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 1182}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1184}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1186}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1188}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1190}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1192}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1194}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1196}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1198}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1200}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1202}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1204}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1206}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1208}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1210}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1212}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1214}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1216}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1218}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1220}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1222}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1224}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1226}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1228}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1230}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 1232}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1234}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 1236}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1238}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1240}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1242}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1244}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1246}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1248}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 1250}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1252}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 1254}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1256}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1258}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1260}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1262}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1264}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1266}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1268}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1270}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1272}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1274}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1276}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1278}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1280}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1282}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1284}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 1286}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1288}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1290}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1292}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1294}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1296}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1298}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1300}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1302}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1304}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1306}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": 0, "delta": 1, "type": "wheel", "message_id": 1308}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": 0, "delta": 1, "type": "wheel", "message_id": 1310}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1312}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -3, "delta": -3, "type": "wheel", "message_id": 1314}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 1316}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 1318}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 1320}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 1322}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1324}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -2, "delta": -2, "type": "wheel", "message_id": 1326}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1328}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1330}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1332}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": 0, "delta": 1, "type": "wheel", "message_id": 1334}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1336}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1338}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1340}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1342}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1344}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1346}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1348}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1350}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1352}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1354}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1356}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1358}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1360}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1362}
|
||||
{"originalEvent": {"metaKey": true}, "sender": 3718, "msg_type": "MouseWheelEvent", "deltaX": 0, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 1364}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 267, "x": 309, "type": "mousemove", "message_id": 1366}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 264, "x": 309, "type": "mousemove", "message_id": 1367}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 261, "x": 310, "type": "mousemove", "message_id": 1368}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 257, "x": 311, "type": "mousemove", "message_id": 1369}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 251, "x": 312, "type": "mousemove", "message_id": 1370}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 244, "x": 312, "type": "mousemove", "message_id": 1371}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 235, "x": 311, "type": "mousemove", "message_id": 1372}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 226, "x": 308, "type": "mouseover", "message_id": 1374}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 226, "x": 308, "type": "mouseover", "message_id": 1373}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 226, "x": 308, "type": "mousemove", "message_id": 1375}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 216, "x": 304, "type": "mouseover", "message_id": 1376}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 216, "x": 304, "type": "mouseover", "message_id": 1377}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 216, "x": 304, "type": "mousemove", "message_id": 1378}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 206, "x": 298, "type": "mousemove", "message_id": 1379}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 194, "x": 288, "type": "mouseover", "message_id": 1380}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 194, "x": 288, "type": "mouseover", "message_id": 1381}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 194, "x": 288, "type": "mousemove", "message_id": 1382}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 184, "x": 277, "type": "mouseover", "message_id": 1383}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 184, "x": 277, "type": "mouseover", "message_id": 1384}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 184, "x": 277, "type": "mousemove", "message_id": 1385}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 173, "x": 261, "type": "mouseover", "message_id": 1386}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 173, "x": 261, "type": "mouseover", "message_id": 1387}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 173, "x": 261, "type": "mousemove", "message_id": 1388}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 163, "x": 243, "type": "mouseover", "message_id": 1389}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 163, "x": 243, "type": "mousemove", "message_id": 1391}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 163, "x": 243, "type": "mouseover", "message_id": 1390}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 153, "x": 227, "type": "mousemove", "message_id": 1392}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 132, "x": 199, "type": "mousemove", "message_id": 1394}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 121, "x": 187, "type": "mouseover", "message_id": 1395}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 143, "x": 212, "type": "mousemove", "message_id": 1393}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 121, "x": 187, "type": "mouseover", "message_id": 1396}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 121, "x": 187, "type": "mousemove", "message_id": 1397}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 103, "x": 171, "type": "mousemove", "message_id": 1399}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 111, "x": 178, "type": "mousemove", "message_id": 1398}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 96, "x": 167, "type": "mousemove", "message_id": 1400}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 92, "x": 165, "type": "mouseover", "message_id": 1401}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 92, "x": 165, "type": "mouseover", "message_id": 1402}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 92, "x": 165, "type": "mousemove", "message_id": 1403}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 87, "x": 164, "type": "mouseover", "message_id": 1404}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 87, "x": 164, "type": "mouseover", "message_id": 1405}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 87, "x": 164, "type": "mousemove", "message_id": 1406}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 81, "x": 162, "type": "mouseover", "message_id": 1407}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 81, "x": 162, "type": "mousemove", "message_id": 1409}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 81, "x": 162, "type": "mouseover", "message_id": 1408}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 76, "x": 160, "type": "mousemove", "message_id": 1410}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 71, "x": 157, "type": "mouseover", "message_id": 1411}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 71, "x": 157, "type": "mouseover", "message_id": 1412}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 71, "x": 157, "type": "mousemove", "message_id": 1413}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 67, "x": 154, "type": "mousemove", "message_id": 1414}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 64, "x": 153, "type": "mouseover", "message_id": 1415}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 64, "x": 153, "type": "mousemove", "message_id": 1417}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 64, "x": 153, "type": "mouseover", "message_id": 1416}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 63, "x": 152, "type": "mousemove", "message_id": 1418}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 63, "x": 152, "type": "mousemove", "message_id": 1419}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 62, "x": 152, "type": "mousemove", "message_id": 1420}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 62, "x": 153, "type": "mousemove", "message_id": 1421}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 63, "x": 155, "type": "mouseover", "message_id": 1422}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 63, "x": 155, "type": "mouseover", "message_id": 1423}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 63, "x": 155, "type": "mousemove", "message_id": 1424}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 63, "x": 159, "type": "mousemove", "message_id": 1425}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 63, "x": 165, "type": "mousemove", "message_id": 1426}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 62, "x": 169, "type": "mousemove", "message_id": 1427}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 60, "x": 172, "type": "mouseover", "message_id": 1428}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 60, "x": 172, "type": "mouseover", "message_id": 1429}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 60, "x": 172, "type": "mousemove", "message_id": 1430}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 59, "x": 174, "type": "mouseover", "message_id": 1431}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 59, "x": 174, "type": "mouseover", "message_id": 1432}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 59, "x": 176, "type": "mousemove", "message_id": 1434}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 59, "x": 174, "type": "mousemove", "message_id": 1433}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 59, "x": 177, "type": "mouseover", "message_id": 1435}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 59, "x": 177, "type": "mouseover", "message_id": 1436}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 59, "x": 177, "type": "mousemove", "message_id": 1437}
|
||||
{"sender": 3718, "msg_type": "MouseEvent", "y": 58, "x": 177, "type": "mousemove", "message_id": 1438}
|
||||
120
recordings/test_rack.replay
Normal file
120
recordings/test_rack.replay
Normal file
@ -0,0 +1,120 @@
|
||||
{"panX": 88.50231573279976, "panY": 87.7890649686315, "scale": 0.7399999999999998, "sender": 4115, "msg_type": "ViewPort", "message_id": 0}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 29, "x": 185, "type": "mousemove", "message_id": 1643}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 32, "x": 185, "type": "mousemove", "message_id": 1644}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 34, "x": 186, "type": "mousemove", "message_id": 1645}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 38, "x": 187, "type": "mousemove", "message_id": 1646}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 42, "x": 189, "type": "mouseover", "message_id": 1647}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 42, "x": 189, "type": "mouseover", "message_id": 1648}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 42, "x": 189, "type": "mousemove", "message_id": 1649}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 49, "x": 192, "type": "mouseover", "message_id": 1650}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 49, "x": 192, "type": "mouseover", "message_id": 1651}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 49, "x": 192, "type": "mousemove", "message_id": 1652}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 58, "x": 196, "type": "mousemove", "message_id": 1653}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 70, "x": 203, "type": "mouseover", "message_id": 1654}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 70, "x": 203, "type": "mouseover", "message_id": 1655}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 70, "x": 203, "type": "mousemove", "message_id": 1656}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 84, "x": 210, "type": "mousemove", "message_id": 1657}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 97, "x": 217, "type": "mousemove", "message_id": 1658}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 116, "x": 226, "type": "mousemove", "message_id": 1659}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 133, "x": 235, "type": "mousemove", "message_id": 1660}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 152, "x": 244, "type": "mousemove", "message_id": 1661}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 168, "x": 250, "type": "mousemove", "message_id": 1662}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 186, "x": 258, "type": "mousemove", "message_id": 1663}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 204, "x": 265, "type": "mousemove", "message_id": 1664}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 210, "x": 267, "type": "mousemove", "message_id": 1665}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 223, "x": 271, "type": "mousemove", "message_id": 1666}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 235, "x": 275, "type": "mousemove", "message_id": 1667}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 246, "x": 278, "type": "mousemove", "message_id": 1668}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 255, "x": 280, "type": "mousemove", "message_id": 1669}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 262, "x": 282, "type": "mousemove", "message_id": 1670}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 265, "x": 283, "type": "mouseover", "message_id": 1671}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 265, "x": 283, "type": "mouseover", "message_id": 1672}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 270, "x": 284, "type": "mousemove", "message_id": 1674}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 265, "x": 283, "type": "mousemove", "message_id": 1673}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 273, "x": 284, "type": "mousemove", "message_id": 1675}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 278, "x": 285, "type": "mousemove", "message_id": 1677}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 276, "x": 284, "type": "mousemove", "message_id": 1676}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 280, "x": 285, "type": "mousemove", "message_id": 1678}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 281, "x": 285, "type": "mousemove", "message_id": 1679}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 282, "x": 285, "type": "mousemove", "message_id": 1680}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 282, "x": 285, "type": "mousemove", "message_id": 1681}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 283, "x": 285, "type": "mousemove", "message_id": 1682}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 283, "x": 285, "type": "mousemove", "message_id": 1683}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 283, "x": 285, "type": "mousemove", "message_id": 1684}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 283, "x": 284, "type": "mousemove", "message_id": 1685}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 283, "x": 284, "type": "mousemove", "message_id": 1686}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 283, "x": 284, "type": "mousedown", "message_id": 1687}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 283, "x": 284, "type": "mouseup", "message_id": 1688}
|
||||
{"sender": 4115, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 1689, "altKey": false, "metaKey": false, "key": "a", "ctrlKey": false, "type": "keydown", "keyCode": 65}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 283, "x": 284, "type": "mousedown", "message_id": 1691}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 283, "x": 284, "type": "mouseup", "message_id": 1693}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 283, "x": 284, "type": "mousedown", "message_id": 1694}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 283, "x": 284, "type": "mouseup", "message_id": 1697}
|
||||
{"sender": 4115, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 1698, "altKey": false, "metaKey": false, "key": "1", "ctrlKey": false, "type": "keydown", "keyCode": 49}
|
||||
{"sender": 4115, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 1700, "altKey": false, "metaKey": false, "key": "Enter", "ctrlKey": false, "type": "keydown", "keyCode": 13}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 282, "x": 283, "type": "mousemove", "message_id": 1702}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 281, "x": 282, "type": "mousemove", "message_id": 1703}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 280, "x": 281, "type": "mousemove", "message_id": 1704}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 278, "x": 280, "type": "mousemove", "message_id": 1705}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 276, "x": 277, "type": "mouseover", "message_id": 1706}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 276, "x": 277, "type": "mouseover", "message_id": 1707}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 276, "x": 277, "type": "mousemove", "message_id": 1708}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 273, "x": 275, "type": "mousemove", "message_id": 1709}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 271, "x": 273, "type": "mouseover", "message_id": 1710}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 271, "x": 273, "type": "mouseover", "message_id": 1711}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 271, "x": 273, "type": "mousemove", "message_id": 1712}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 267, "x": 270, "type": "mouseover", "message_id": 1713}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 267, "x": 270, "type": "mouseover", "message_id": 1714}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 267, "x": 270, "type": "mousemove", "message_id": 1715}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 258, "x": 265, "type": "mousemove", "message_id": 1716}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 252, "x": 260, "type": "mousemove", "message_id": 1717}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 243, "x": 255, "type": "mouseover", "message_id": 1718}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 243, "x": 255, "type": "mousemove", "message_id": 1720}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 243, "x": 255, "type": "mouseover", "message_id": 1719}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 232, "x": 250, "type": "mouseover", "message_id": 1721}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 232, "x": 250, "type": "mousemove", "message_id": 1723}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 232, "x": 250, "type": "mouseover", "message_id": 1722}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 209, "x": 239, "type": "mousemove", "message_id": 1724}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 182, "x": 228, "type": "mousemove", "message_id": 1726}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 192, "x": 232, "type": "mousemove", "message_id": 1725}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 148, "x": 214, "type": "mousemove", "message_id": 1727}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 136, "x": 209, "type": "mousemove", "message_id": 1728}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 116, "x": 202, "type": "mousemove", "message_id": 1729}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 96, "x": 194, "type": "mousemove", "message_id": 1730}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 80, "x": 188, "type": "mousemove", "message_id": 1731}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 73, "x": 186, "type": "mousemove", "message_id": 1732}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 59, "x": 180, "type": "mouseover", "message_id": 1733}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 59, "x": 180, "type": "mouseover", "message_id": 1734}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 59, "x": 180, "type": "mousemove", "message_id": 1735}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 47, "x": 177, "type": "mousemove", "message_id": 1736}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 38, "x": 173, "type": "mouseover", "message_id": 1737}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 38, "x": 173, "type": "mouseover", "message_id": 1738}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 38, "x": 173, "type": "mousemove", "message_id": 1739}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 30, "x": 171, "type": "mousemove", "message_id": 1740}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 23, "x": 169, "type": "mouseover", "message_id": 1741}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 23, "x": 169, "type": "mouseover", "message_id": 1742}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 23, "x": 169, "type": "mousemove", "message_id": 1743}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 21, "x": 168, "type": "mouseover", "message_id": 1744}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 21, "x": 168, "type": "mousemove", "message_id": 1746}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 21, "x": 168, "type": "mouseover", "message_id": 1745}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 16, "x": 167, "type": "mousemove", "message_id": 1747}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 11, "x": 165, "type": "mousemove", "message_id": 1749}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 13, "x": 166, "type": "mousemove", "message_id": 1748}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 9, "x": 164, "type": "mousemove", "message_id": 1750}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 11, "x": 164, "type": "mousemove", "message_id": 1752}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 9, "x": 164, "type": "mousemove", "message_id": 1751}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 13, "x": 165, "type": "mousemove", "message_id": 1753}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 14, "x": 166, "type": "mousemove", "message_id": 1754}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 16, "x": 166, "type": "mousemove", "message_id": 1755}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 17, "x": 167, "type": "mousemove", "message_id": 1756}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 19, "x": 168, "type": "mousemove", "message_id": 1757}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 20, "x": 169, "type": "mousemove", "message_id": 1758}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 22, "x": 170, "type": "mousemove", "message_id": 1759}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 24, "x": 170, "type": "mousemove", "message_id": 1760}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 26, "x": 171, "type": "mousemove", "message_id": 1761}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 27, "x": 172, "type": "mousemove", "message_id": 1762}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 29, "x": 172, "type": "mousemove", "message_id": 1763}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 30, "x": 173, "type": "mousemove", "message_id": 1764}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 31, "x": 173, "type": "mousemove", "message_id": 1765}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 32, "x": 174, "type": "mousemove", "message_id": 1766}
|
||||
{"sender": 4115, "msg_type": "MouseEvent", "y": 33, "x": 174, "type": "mousemove", "message_id": 1767}
|
||||
76
recordings/test_recording.replay
Normal file
76
recordings/test_recording.replay
Normal file
@ -0,0 +1,76 @@
|
||||
{"panX": 161.32635274860883, "panY": 151.1342654089031, "scale": 0.510765027322404, "sender": 3914, "msg_type": "ViewPort", "message_id": 0}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 40, "x": 183, "type": "mousemove", "message_id": 2}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 40, "x": 183, "type": "mousemove", "message_id": 3}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 41, "x": 183, "type": "mousemove", "message_id": 4}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 61, "x": 198, "type": "mouseover", "message_id": 5}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 61, "x": 198, "type": "mouseover", "message_id": 6}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 61, "x": 198, "type": "mousemove", "message_id": 7}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 70, "x": 203, "type": "mousemove", "message_id": 8}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 76, "x": 207, "type": "mousemove", "message_id": 9}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 84, "x": 213, "type": "mousemove", "message_id": 10}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 93, "x": 219, "type": "mousemove", "message_id": 11}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 111, "x": 233, "type": "mousemove", "message_id": 12}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 126, "x": 245, "type": "mousemove", "message_id": 13}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 141, "x": 257, "type": "mousemove", "message_id": 14}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 156, "x": 268, "type": "mousemove", "message_id": 15}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 169, "x": 277, "type": "mousemove", "message_id": 16}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 180, "x": 283, "type": "mousemove", "message_id": 17}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 189, "x": 286, "type": "mousemove", "message_id": 18}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 196, "x": 287, "type": "mouseover", "message_id": 20}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 196, "x": 287, "type": "mouseover", "message_id": 19}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 196, "x": 287, "type": "mousemove", "message_id": 21}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 201, "x": 286, "type": "mousemove", "message_id": 22}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 204, "x": 284, "type": "mouseover", "message_id": 23}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 204, "x": 284, "type": "mouseover", "message_id": 24}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 204, "x": 284, "type": "mousemove", "message_id": 25}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 207, "x": 282, "type": "mousemove", "message_id": 26}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 208, "x": 281, "type": "mouseover", "message_id": 27}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 208, "x": 281, "type": "mouseover", "message_id": 28}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 208, "x": 281, "type": "mousemove", "message_id": 29}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 209, "x": 279, "type": "mousemove", "message_id": 31}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 209, "x": 280, "type": "mousemove", "message_id": 30}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 209, "x": 279, "type": "mousemove", "message_id": 32}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 209, "x": 279, "type": "mousemove", "message_id": 33}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 208, "x": 279, "type": "mousemove", "message_id": 34}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 207, "x": 279, "type": "mousemove", "message_id": 35}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 204, "x": 279, "type": "mousemove", "message_id": 36}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 201, "x": 279, "type": "mousemove", "message_id": 37}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 196, "x": 278, "type": "mousemove", "message_id": 38}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 190, "x": 277, "type": "mousemove", "message_id": 39}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 181, "x": 275, "type": "mouseover", "message_id": 40}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 181, "x": 275, "type": "mouseover", "message_id": 41}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 181, "x": 275, "type": "mousemove", "message_id": 42}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 169, "x": 270, "type": "mousemove", "message_id": 43}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 155, "x": 265, "type": "mousemove", "message_id": 44}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 141, "x": 260, "type": "mousemove", "message_id": 45}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 126, "x": 255, "type": "mousemove", "message_id": 46}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 112, "x": 248, "type": "mousemove", "message_id": 47}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 94, "x": 239, "type": "mousemove", "message_id": 48}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 86, "x": 234, "type": "mousemove", "message_id": 49}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 74, "x": 225, "type": "mousemove", "message_id": 50}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 69, "x": 220, "type": "mousemove", "message_id": 51}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 64, "x": 213, "type": "mousemove", "message_id": 52}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 62, "x": 209, "type": "mousemove", "message_id": 53}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 60, "x": 205, "type": "mouseover", "message_id": 54}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 60, "x": 205, "type": "mouseover", "message_id": 55}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 60, "x": 205, "type": "mousemove", "message_id": 56}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 59, "x": 202, "type": "mouseover", "message_id": 57}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 59, "x": 202, "type": "mouseover", "message_id": 58}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 59, "x": 202, "type": "mousemove", "message_id": 59}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 58, "x": 201, "type": "mouseover", "message_id": 60}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 58, "x": 201, "type": "mouseover", "message_id": 61}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 58, "x": 201, "type": "mousemove", "message_id": 62}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 58, "x": 200, "type": "mousemove", "message_id": 63}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 58, "x": 200, "type": "mousemove", "message_id": 64}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 58, "x": 199, "type": "mousemove", "message_id": 66}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 58, "x": 200, "type": "mousemove", "message_id": 65}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 58, "x": 199, "type": "mousemove", "message_id": 68}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 58, "x": 199, "type": "mousemove", "message_id": 67}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 58, "x": 199, "type": "mousemove", "message_id": 69}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 58, "x": 198, "type": "mousemove", "message_id": 70}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 58, "x": 198, "type": "mousemove", "message_id": 71}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 57, "x": 197, "type": "mousemove", "message_id": 72}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 56, "x": 196, "type": "mousemove", "message_id": 73}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 55, "x": 194, "type": "mouseover", "message_id": 74}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 55, "x": 194, "type": "mouseover", "message_id": 75}
|
||||
{"sender": 3914, "msg_type": "MouseEvent", "y": 55, "x": 194, "type": "mousemove", "message_id": 76}
|
||||
167
recordings/test_touches.replay
Normal file
167
recordings/test_touches.replay
Normal file
@ -0,0 +1,167 @@
|
||||
{"scale": 0.8300384220585794, "sender": 4518, "msg_type": "ViewPort", "panY": 533.1751450631841, "panX": 1969.071635134498, "message_id": 142}
|
||||
{"touches": [{"screenY": 321, "screenX": 575}], "type": "touchstart", "sender": 4518, "msg_type": "TouchEvent", "message_id": 143}
|
||||
{"touches": [{"screenY": 288, "screenX": 561}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 145}
|
||||
{"touches": [{"screenY": 298, "screenX": 568}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 144}
|
||||
{"touches": [{"screenY": 262, "screenX": 540}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 146}
|
||||
{"touches": [{"screenY": 222, "screenX": 495}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 148}
|
||||
{"touches": [{"screenY": 234, "screenX": 512}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 147}
|
||||
{"touches": [{"screenY": 213, "screenX": 477}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 149}
|
||||
{"touches": [{"screenY": 207, "screenX": 460}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 150}
|
||||
{"touches": [{"screenY": 202, "screenX": 444}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 151}
|
||||
{"touches": [{"screenY": 200, "screenX": 429}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 152}
|
||||
{"touches": [{"screenY": 200, "screenX": 416}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 153}
|
||||
{"touches": [{"screenY": 202, "screenX": 403}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 154}
|
||||
{"touches": [{"screenY": 208, "screenX": 392}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 155}
|
||||
{"touches": [{"screenY": 216, "screenX": 384}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 156}
|
||||
{"touches": [{"screenY": 221, "screenX": 380}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 157}
|
||||
{"touches": [], "type": "touchend", "sender": 4518, "msg_type": "TouchEvent", "message_id": 158}
|
||||
{"touches": [{"screenY": 417, "screenX": 524}], "type": "touchstart", "sender": 4518, "msg_type": "TouchEvent", "message_id": 159}
|
||||
{"touches": [{"screenY": 410, "screenX": 516}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 161}
|
||||
{"touches": [{"screenY": 402, "screenX": 506}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 162}
|
||||
{"touches": [{"screenY": 390, "screenX": 492}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 164}
|
||||
{"touches": [{"screenY": 383, "screenX": 484}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 166}
|
||||
{"touches": [{"screenY": 374, "screenX": 475}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 168}
|
||||
{"touches": [{"screenY": 364, "screenX": 468}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 170}
|
||||
{"touches": [{"screenY": 353, "screenX": 461}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 172}
|
||||
{"touches": [{"screenY": 342, "screenX": 455}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 174}
|
||||
{"touches": [{"screenY": 330, "screenX": 450}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 176}
|
||||
{"touches": [{"screenY": 317, "screenX": 445}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 178}
|
||||
{"touches": [{"screenY": 304, "screenX": 440}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 180}
|
||||
{"touches": [{"screenY": 291, "screenX": 434}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 182}
|
||||
{"touches": [{"screenY": 279, "screenX": 427}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 184}
|
||||
{"touches": [{"screenY": 267, "screenX": 421}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 186}
|
||||
{"touches": [{"screenY": 255, "screenX": 412}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 188}
|
||||
{"touches": [{"screenY": 246, "screenX": 402}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 190}
|
||||
{"touches": [{"screenY": 237, "screenX": 391}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 192}
|
||||
{"touches": [{"screenY": 231, "screenX": 378}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 194}
|
||||
{"touches": [{"screenY": 225, "screenX": 365}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 196}
|
||||
{"touches": [{"screenY": 223, "screenX": 352}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 198}
|
||||
{"touches": [{"screenY": 223, "screenX": 340}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 200}
|
||||
{"touches": [{"screenY": 227, "screenX": 326}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 202}
|
||||
{"touches": [{"screenY": 236, "screenX": 311}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 204}
|
||||
{"touches": [{"screenY": 248, "screenX": 297}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 206}
|
||||
{"touches": [{"screenY": 263, "screenX": 284}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 208}
|
||||
{"touches": [{"screenY": 279, "screenX": 274}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 210}
|
||||
{"touches": [{"screenY": 293, "screenX": 269}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 212}
|
||||
{"touches": [{"screenY": 309, "screenX": 267}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 214}
|
||||
{"touches": [{"screenY": 319, "screenX": 267}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 216}
|
||||
{"touches": [{"screenY": 327, "screenX": 269}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 218}
|
||||
{"touches": [{"screenY": 329, "screenX": 271}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 220}
|
||||
{"touches": [], "type": "touchend", "sender": 4518, "msg_type": "TouchEvent", "message_id": 222}
|
||||
{"touches": [{"screenY": 420, "screenX": 726}], "type": "touchstart", "sender": 4518, "msg_type": "TouchEvent", "message_id": 223}
|
||||
{"touches": [{"screenY": 408, "screenX": 716}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 228}
|
||||
{"touches": [{"screenY": 393, "screenX": 698}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 229}
|
||||
{"touches": [{"screenY": 371, "screenX": 676}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 231}
|
||||
{"touches": [{"screenY": 361, "screenX": 666}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 233}
|
||||
{"touches": [{"screenY": 350, "screenX": 659}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 235}
|
||||
{"touches": [{"screenY": 339, "screenX": 653}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 237}
|
||||
{"touches": [{"screenY": 328, "screenX": 648}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 239}
|
||||
{"touches": [{"screenY": 316, "screenX": 644}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 241}
|
||||
{"touches": [{"screenY": 303, "screenX": 640}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 243}
|
||||
{"touches": [{"screenY": 290, "screenX": 636}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 245}
|
||||
{"touches": [{"screenY": 277, "screenX": 632}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 247}
|
||||
{"touches": [{"screenY": 264, "screenX": 626}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 249}
|
||||
{"touches": [{"screenY": 251, "screenX": 618}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 251}
|
||||
{"touches": [{"screenY": 239, "screenX": 609}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 253}
|
||||
{"touches": [{"screenY": 228, "screenX": 597}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 255}
|
||||
{"touches": [{"screenY": 221, "screenX": 583}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 257}
|
||||
{"touches": [{"screenY": 217, "screenX": 568}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 259}
|
||||
{"touches": [{"screenY": 217, "screenX": 552}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 261}
|
||||
{"touches": [{"screenY": 220, "screenX": 534}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 263}
|
||||
{"touches": [{"screenY": 227, "screenX": 519}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 265}
|
||||
{"touches": [{"screenY": 238, "screenX": 503}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 267}
|
||||
{"touches": [{"screenY": 248, "screenX": 492}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 269}
|
||||
{"touches": [{"screenY": 256, "screenX": 486}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 271}
|
||||
{"touches": [{"screenY": 264, "screenX": 483}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 273}
|
||||
{"touches": [], "type": "touchend", "sender": 4518, "msg_type": "TouchEvent", "message_id": 275}
|
||||
{"touches": [{"screenY": 353, "screenX": 381}], "type": "touchstart", "sender": 4518, "msg_type": "TouchEvent", "message_id": 276}
|
||||
{"touches": [{"screenY": 370, "screenX": 377}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 279}
|
||||
{"touches": [{"screenY": 355, "screenX": 378}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 278}
|
||||
{"touches": [{"screenY": 381, "screenX": 377}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 280}
|
||||
{"touches": [{"screenY": 390, "screenX": 382}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 281}
|
||||
{"touches": [{"screenY": 399, "screenX": 390}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 282}
|
||||
{"touches": [{"screenY": 405, "screenX": 401}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 283}
|
||||
{"touches": [{"screenY": 411, "screenX": 413}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 284}
|
||||
{"touches": [{"screenY": 416, "screenX": 426}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 285}
|
||||
{"touches": [{"screenY": 419, "screenX": 439}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 286}
|
||||
{"touches": [{"screenY": 421, "screenX": 454}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 287}
|
||||
{"touches": [{"screenY": 421, "screenX": 470}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 288}
|
||||
{"touches": [{"screenY": 421, "screenX": 486}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 289}
|
||||
{"touches": [{"screenY": 420, "screenX": 502}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 290}
|
||||
{"touches": [{"screenY": 416, "screenX": 517}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 291}
|
||||
{"touches": [{"screenY": 412, "screenX": 528}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 292}
|
||||
{"touches": [{"screenY": 409, "screenX": 536}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 293}
|
||||
{"touches": [{"screenY": 406, "screenX": 543}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 294}
|
||||
{"touches": [{"screenY": 402, "screenX": 546}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 295}
|
||||
{"touches": [{"screenY": 399, "screenX": 548}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 296}
|
||||
{"touches": [{"screenY": 396, "screenX": 548}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 297}
|
||||
{"touches": [{"screenY": 392, "screenX": 548}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 298}
|
||||
{"touches": [{"screenY": 388, "screenX": 548}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 299}
|
||||
{"touches": [{"screenY": 384, "screenX": 548}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 300}
|
||||
{"touches": [{"screenY": 382, "screenX": 547}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 301}
|
||||
{"touches": [{"screenY": 382, "screenX": 545}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 302}
|
||||
{"touches": [{"screenY": 381, "screenX": 543}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 303}
|
||||
{"touches": [{"screenY": 381, "screenX": 538}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 304}
|
||||
{"touches": [{"screenY": 382, "screenX": 531}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 305}
|
||||
{"touches": [], "type": "touchend", "sender": 4518, "msg_type": "TouchEvent", "message_id": 306}
|
||||
{"touches": [{"screenY": 498, "screenX": 327}, {"screenY": 359, "screenX": 594}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 309}
|
||||
{"touches": [{"screenY": 504, "screenX": 325}, {"screenY": 359, "screenX": 594}], "type": "touchstart", "sender": 4518, "msg_type": "TouchEvent", "message_id": 308}
|
||||
{"touches": [{"screenY": 504, "screenX": 325}], "type": "touchstart", "sender": 4518, "msg_type": "TouchEvent", "message_id": 307}
|
||||
{"touches": [{"screenY": 498, "screenX": 327}, {"screenY": 359, "screenX": 594}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 310}
|
||||
{"touches": [{"screenY": 498, "screenX": 329}, {"screenY": 363, "screenX": 588}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 312}
|
||||
{"touches": [{"screenY": 498, "screenX": 329}, {"screenY": 363, "screenX": 588}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 311}
|
||||
{"touches": [{"screenY": 498, "screenX": 331}, {"screenY": 365, "screenX": 585}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 313}
|
||||
{"touches": [{"screenY": 498, "screenX": 331}, {"screenY": 365, "screenX": 585}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 314}
|
||||
{"touches": [{"screenY": 498, "screenX": 334}, {"screenY": 368, "screenX": 580}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 315}
|
||||
{"touches": [{"screenY": 497, "screenX": 336}, {"screenY": 370, "screenX": 576}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 317}
|
||||
{"touches": [{"screenY": 498, "screenX": 334}, {"screenY": 368, "screenX": 580}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 316}
|
||||
{"touches": [{"screenY": 497, "screenX": 336}, {"screenY": 370, "screenX": 576}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 318}
|
||||
{"touches": [{"screenY": 496, "screenX": 339}, {"screenY": 373, "screenX": 572}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 319}
|
||||
{"touches": [{"screenY": 496, "screenX": 339}, {"screenY": 373, "screenX": 572}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 320}
|
||||
{"touches": [{"screenY": 496, "screenX": 340}, {"screenY": 374, "screenX": 568}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 321}
|
||||
{"touches": [{"screenY": 496, "screenX": 340}, {"screenY": 374, "screenX": 568}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 322}
|
||||
{"touches": [{"screenY": 495, "screenX": 342}, {"screenY": 375, "screenX": 563}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 323}
|
||||
{"touches": [{"screenY": 495, "screenX": 342}, {"screenY": 375, "screenX": 563}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 324}
|
||||
{"touches": [{"screenY": 495, "screenX": 344}, {"screenY": 377, "screenX": 559}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 325}
|
||||
{"touches": [{"screenY": 494, "screenX": 346}, {"screenY": 378, "screenX": 556}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 327}
|
||||
{"touches": [{"screenY": 495, "screenX": 344}, {"screenY": 377, "screenX": 559}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 326}
|
||||
{"touches": [{"screenY": 494, "screenX": 346}, {"screenY": 378, "screenX": 556}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 328}
|
||||
{"touches": [{"screenY": 494, "screenX": 348}, {"screenY": 380, "screenX": 553}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 329}
|
||||
{"touches": [{"screenY": 494, "screenX": 348}, {"screenY": 380, "screenX": 553}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 330}
|
||||
{"touches": [{"screenY": 493, "screenX": 350}, {"screenY": 382, "screenX": 550}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 331}
|
||||
{"touches": [{"screenY": 493, "screenX": 351}, {"screenY": 383, "screenX": 548}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 333}
|
||||
{"touches": [{"screenY": 493, "screenX": 350}, {"screenY": 382, "screenX": 550}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 332}
|
||||
{"touches": [{"screenY": 493, "screenX": 351}, {"screenY": 383, "screenX": 548}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 334}
|
||||
{"touches": [{"screenY": 493, "screenX": 352}, {"screenY": 384, "screenX": 547}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 335}
|
||||
{"touches": [{"screenY": 493, "screenX": 352}, {"screenY": 384, "screenX": 547}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 336}
|
||||
{"touches": [{"screenY": 493, "screenX": 353}, {"screenY": 384, "screenX": 547}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 337}
|
||||
{"touches": [{"screenY": 493, "screenX": 353}, {"screenY": 384, "screenX": 547}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 338}
|
||||
{"touches": [{"screenY": 495, "screenX": 345}, {"screenY": 378, "screenX": 553}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 339}
|
||||
{"touches": [{"screenY": 498, "screenX": 337}, {"screenY": 373, "screenX": 559}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 342}
|
||||
{"touches": [{"screenY": 498, "screenX": 337}, {"screenY": 373, "screenX": 559}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 341}
|
||||
{"touches": [{"screenY": 495, "screenX": 345}, {"screenY": 378, "screenX": 553}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 340}
|
||||
{"touches": [{"screenY": 498, "screenX": 334}, {"screenY": 370, "screenX": 563}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 343}
|
||||
{"touches": [{"screenY": 498, "screenX": 334}, {"screenY": 370, "screenX": 563}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 344}
|
||||
{"touches": [{"screenY": 498, "screenX": 332}, {"screenY": 369, "screenX": 564}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 346}
|
||||
{"touches": [{"screenY": 498, "screenX": 332}, {"screenY": 369, "screenX": 564}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 345}
|
||||
{"touches": [{"screenY": 498, "screenX": 331}, {"screenY": 368, "screenX": 566}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 347}
|
||||
{"touches": [{"screenY": 498, "screenX": 331}, {"screenY": 368, "screenX": 566}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 348}
|
||||
{"touches": [{"screenY": 498, "screenX": 330}, {"screenY": 366, "screenX": 566}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 350}
|
||||
{"touches": [{"screenY": 498, "screenX": 330}, {"screenY": 366, "screenX": 566}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 349}
|
||||
{"touches": [{"screenY": 498, "screenX": 329}, {"screenY": 365, "screenX": 567}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 351}
|
||||
{"touches": [{"screenY": 498, "screenX": 329}, {"screenY": 365, "screenX": 567}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 352}
|
||||
{"touches": [{"screenY": 498, "screenX": 328}, {"screenY": 364, "screenX": 568}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 353}
|
||||
{"touches": [{"screenY": 498, "screenX": 328}, {"screenY": 364, "screenX": 568}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 354}
|
||||
{"touches": [{"screenY": 498, "screenX": 328}, {"screenY": 364, "screenX": 569}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 355}
|
||||
{"touches": [{"screenY": 498, "screenX": 328}, {"screenY": 364, "screenX": 569}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 356}
|
||||
{"touches": [{"screenY": 498, "screenX": 327}, {"screenY": 363, "screenX": 570}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 357}
|
||||
{"touches": [{"screenY": 498, "screenX": 327}, {"screenY": 363, "screenX": 570}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 358}
|
||||
{"touches": [{"screenY": 498, "screenX": 327}, {"screenY": 361, "screenX": 571}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 359}
|
||||
{"touches": [{"screenY": 498, "screenX": 327}, {"screenY": 361, "screenX": 571}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 360}
|
||||
{"touches": [{"screenY": 498, "screenX": 326}, {"screenY": 360, "screenX": 572}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 361}
|
||||
{"touches": [{"screenY": 498, "screenX": 326}, {"screenY": 360, "screenX": 572}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 362}
|
||||
{"touches": [{"screenY": 498, "screenX": 325}, {"screenY": 359, "screenX": 573}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 363}
|
||||
{"touches": [{"screenY": 498, "screenX": 325}, {"screenY": 359, "screenX": 573}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 364}
|
||||
{"touches": [{"screenY": 499, "screenX": 324}, {"screenY": 357, "screenX": 575}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 365}
|
||||
{"touches": [{"screenY": 499, "screenX": 324}, {"screenY": 357, "screenX": 575}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 366}
|
||||
{"touches": [{"screenY": 499, "screenX": 323}, {"screenY": 356, "screenX": 576}], "type": "touchmove", "sender": 4518, "msg_type": "TouchEvent", "message_id": 367}
|
||||
211
recordings/test_undo_redo.replay
Normal file
211
recordings/test_undo_redo.replay
Normal file
@ -0,0 +1,211 @@
|
||||
{"panX": -250.5, "panY": -112, "scale": 2, "sender": 3699, "msg_type": "ViewPort", "message_id": 0}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 49, "x": 173, "type": "mousemove", "message_id": 16}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 50, "x": 175, "type": "mouseover", "message_id": 18}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 50, "x": 175, "type": "mouseover", "message_id": 17}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 50, "x": 175, "type": "mousemove", "message_id": 19}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 177, "type": "mouseover", "message_id": 20}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 177, "type": "mouseover", "message_id": 21}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 56, "x": 181, "type": "mousemove", "message_id": 23}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 52, "x": 177, "type": "mousemove", "message_id": 22}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 62, "x": 187, "type": "mouseover", "message_id": 24}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 62, "x": 187, "type": "mouseover", "message_id": 25}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 62, "x": 187, "type": "mousemove", "message_id": 26}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 69, "x": 193, "type": "mousemove", "message_id": 27}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 79, "x": 202, "type": "mousemove", "message_id": 28}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 86, "x": 209, "type": "mousemove", "message_id": 29}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 97, "x": 217, "type": "mousemove", "message_id": 30}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 108, "x": 223, "type": "mousemove", "message_id": 31}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 120, "x": 229, "type": "mousemove", "message_id": 32}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 133, "x": 233, "type": "mousemove", "message_id": 33}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 148, "x": 238, "type": "mousemove", "message_id": 34}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 165, "x": 241, "type": "mousemove", "message_id": 35}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 182, "x": 245, "type": "mousemove", "message_id": 36}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 197, "x": 248, "type": "mousemove", "message_id": 37}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 209, "x": 249, "type": "mouseover", "message_id": 38}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 209, "x": 249, "type": "mouseover", "message_id": 39}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 209, "x": 249, "type": "mousemove", "message_id": 40}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 219, "x": 249, "type": "mousemove", "message_id": 41}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 223, "x": 249, "type": "mousemove", "message_id": 42}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 227, "x": 249, "type": "mousemove", "message_id": 43}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 229, "x": 249, "type": "mousemove", "message_id": 44}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 229, "x": 249, "type": "mousemove", "message_id": 45}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 229, "x": 249, "type": "mousemove", "message_id": 46}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 229, "x": 249, "type": "mousemove", "message_id": 47}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 229, "x": 249, "type": "mousedown", "message_id": 48}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 229, "x": 249, "type": "mouseup", "message_id": 49}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 50, "altKey": false, "metaKey": false, "key": "s", "ctrlKey": false, "type": "keydown", "keyCode": 83}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 229, "x": 249, "type": "mousemove", "message_id": 52}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 229, "x": 249, "type": "mousemove", "message_id": 53}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 228, "x": 248, "type": "mousemove", "message_id": 54}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 228, "x": 248, "type": "mousemove", "message_id": 55}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 228, "x": 248, "type": "mousemove", "message_id": 56}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 228, "x": 249, "type": "mousemove", "message_id": 57}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 228, "x": 250, "type": "mousemove", "message_id": 58}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 228, "x": 251, "type": "mousemove", "message_id": 59}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 228, "x": 251, "type": "mousemove", "message_id": 60}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 228, "x": 251, "type": "mousemove", "message_id": 61}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 228, "x": 251, "type": "mousemove", "message_id": 62}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 228, "x": 251, "type": "mousemove", "message_id": 63}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": 0, "delta": 1, "type": "wheel", "message_id": 64}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": 0, "delta": 1, "type": "wheel", "message_id": 65}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 228, "x": 251, "type": "mousedown", "message_id": 66}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": -1, "delta": -1, "type": "wheel", "message_id": 68}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": -1, "deltaY": 0, "delta": 1, "type": "wheel", "message_id": 69}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 228, "x": 251, "type": "mousemove", "message_id": 70}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 229, "x": 251, "type": "mousemove", "message_id": 71}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 230, "x": 250, "type": "mousemove", "message_id": 73}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 232, "x": 249, "type": "mousemove", "message_id": 75}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 234, "x": 248, "type": "mousemove", "message_id": 77}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 237, "x": 246, "type": "mouseover", "message_id": 79}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 237, "x": 246, "type": "mouseover", "message_id": 80}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 237, "x": 246, "type": "mousemove", "message_id": 81}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 240, "x": 244, "type": "mousemove", "message_id": 83}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 244, "x": 242, "type": "mousemove", "message_id": 85}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 249, "x": 239, "type": "mousemove", "message_id": 87}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 256, "x": 236, "type": "mousemove", "message_id": 89}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 263, "x": 233, "type": "mousemove", "message_id": 91}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 271, "x": 230, "type": "mousemove", "message_id": 93}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 280, "x": 228, "type": "mousemove", "message_id": 95}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 287, "x": 226, "type": "mousemove", "message_id": 97}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 296, "x": 225, "type": "mouseover", "message_id": 99}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 296, "x": 225, "type": "mouseover", "message_id": 100}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 296, "x": 225, "type": "mousemove", "message_id": 101}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 304, "x": 224, "type": "mousemove", "message_id": 103}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 310, "x": 224, "type": "mousemove", "message_id": 105}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 315, "x": 224, "type": "mousemove", "message_id": 107}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 321, "x": 224, "type": "mousemove", "message_id": 109}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 326, "x": 225, "type": "mousemove", "message_id": 111}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 333, "x": 227, "type": "mouseover", "message_id": 113}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 333, "x": 227, "type": "mousemove", "message_id": 115}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 333, "x": 227, "type": "mouseover", "message_id": 114}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 342, "x": 229, "type": "mousemove", "message_id": 117}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 352, "x": 233, "type": "mouseover", "message_id": 119}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 352, "x": 233, "type": "mouseover", "message_id": 120}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 352, "x": 233, "type": "mousemove", "message_id": 121}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 362, "x": 238, "type": "mousemove", "message_id": 123}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 369, "x": 242, "type": "mouseover", "message_id": 125}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 369, "x": 242, "type": "mousemove", "message_id": 127}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 369, "x": 242, "type": "mouseover", "message_id": 126}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 379, "x": 248, "type": "mouseover", "message_id": 129}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 379, "x": 248, "type": "mouseover", "message_id": 130}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 379, "x": 248, "type": "mousemove", "message_id": 131}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 387, "x": 255, "type": "mouseover", "message_id": 133}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 387, "x": 255, "type": "mouseover", "message_id": 134}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 387, "x": 255, "type": "mousemove", "message_id": 135}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 394, "x": 264, "type": "mousemove", "message_id": 137}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 409, "x": 289, "type": "mousemove", "message_id": 141}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 401, "x": 275, "type": "mousemove", "message_id": 139}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 415, "x": 306, "type": "mousemove", "message_id": 143}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 419, "x": 324, "type": "mousemove", "message_id": 145}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 422, "x": 343, "type": "mousemove", "message_id": 147}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 425, "x": 361, "type": "mousemove", "message_id": 149}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 426, "x": 375, "type": "mouseover", "message_id": 151}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 426, "x": 375, "type": "mouseover", "message_id": 152}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 426, "x": 375, "type": "mousemove", "message_id": 153}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 427, "x": 390, "type": "mousemove", "message_id": 155}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 427, "x": 400, "type": "mousemove", "message_id": 157}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 426, "x": 414, "type": "mousemove", "message_id": 159}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 424, "x": 428, "type": "mouseover", "message_id": 161}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 424, "x": 428, "type": "mouseover", "message_id": 162}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 424, "x": 428, "type": "mousemove", "message_id": 163}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 421, "x": 441, "type": "mousemove", "message_id": 165}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 418, "x": 449, "type": "mousemove", "message_id": 167}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 415, "x": 458, "type": "mousemove", "message_id": 169}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 411, "x": 464, "type": "mousemove", "message_id": 171}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 408, "x": 467, "type": "mousemove", "message_id": 173}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 406, "x": 469, "type": "mousemove", "message_id": 175}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 404, "x": 470, "type": "mouseover", "message_id": 177}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 404, "x": 470, "type": "mouseover", "message_id": 178}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 404, "x": 470, "type": "mousemove", "message_id": 179}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 402, "x": 471, "type": "mousemove", "message_id": 181}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 401, "x": 472, "type": "mousemove", "message_id": 183}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 401, "x": 472, "type": "mousemove", "message_id": 185}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 400, "x": 473, "type": "mousemove", "message_id": 187}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 400, "x": 473, "type": "mousemove", "message_id": 189}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 400, "x": 473, "type": "mousemove", "message_id": 191}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 400, "x": 473, "type": "mousemove", "message_id": 194}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 400, "x": 473, "type": "mouseup", "message_id": 193}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 400, "x": 473, "type": "mousemove", "message_id": 195}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 399, "x": 474, "type": "mousemove", "message_id": 196}
|
||||
{"originalEvent": {"metaKey": false}, "sender": 3699, "msg_type": "MouseWheelEvent", "deltaX": 1, "deltaY": 0, "delta": -1, "type": "wheel", "message_id": 197}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 399, "x": 474, "type": "mousemove", "message_id": 198}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 199, "altKey": false, "metaKey": true, "key": "Meta", "ctrlKey": false, "type": "keydown", "keyCode": 91}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 399, "x": 474, "type": "mousemove", "message_id": 200}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 201, "altKey": false, "metaKey": true, "key": "z", "ctrlKey": false, "type": "keydown", "keyCode": 90}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 203, "altKey": false, "metaKey": true, "key": "z", "ctrlKey": false, "type": "keydown", "keyCode": 90}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 205, "altKey": false, "metaKey": true, "key": "z", "ctrlKey": false, "type": "keydown", "keyCode": 90}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 207, "altKey": false, "metaKey": true, "key": "z", "ctrlKey": false, "type": "keydown", "keyCode": 90}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 209, "altKey": false, "metaKey": true, "key": "z", "ctrlKey": false, "type": "keydown", "keyCode": 90}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 211, "altKey": false, "metaKey": true, "key": "z", "ctrlKey": false, "type": "keydown", "keyCode": 90}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 213, "altKey": false, "metaKey": true, "key": "z", "ctrlKey": false, "type": "keydown", "keyCode": 90}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 215, "altKey": false, "metaKey": true, "key": "z", "ctrlKey": false, "type": "keydown", "keyCode": 90}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 217, "altKey": false, "metaKey": true, "key": "z", "ctrlKey": false, "type": "keydown", "keyCode": 90}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": false, "message_id": 219, "altKey": false, "metaKey": true, "key": "z", "ctrlKey": false, "type": "keydown", "keyCode": 90}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": true, "message_id": 221, "altKey": false, "metaKey": true, "key": "Shift", "ctrlKey": false, "type": "keydown", "keyCode": 16}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": true, "message_id": 222, "altKey": false, "metaKey": true, "key": "Z", "ctrlKey": false, "type": "keydown", "keyCode": 90}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": true, "message_id": 224, "altKey": false, "metaKey": true, "key": "Z", "ctrlKey": false, "type": "keydown", "keyCode": 90}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": true, "message_id": 226, "altKey": false, "metaKey": true, "key": "Z", "ctrlKey": false, "type": "keydown", "keyCode": 90}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": true, "message_id": 228, "altKey": false, "metaKey": true, "key": "Z", "ctrlKey": false, "type": "keydown", "keyCode": 90}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": true, "message_id": 230, "altKey": false, "metaKey": true, "key": "Z", "ctrlKey": false, "type": "keydown", "keyCode": 90}
|
||||
{"sender": 3699, "msg_type": "KeyEvent", "shiftKey": true, "message_id": 232, "altKey": false, "metaKey": true, "key": "Z", "ctrlKey": false, "type": "keydown", "keyCode": 90}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 399, "x": 474, "type": "mousemove", "message_id": 234}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 358, "x": 483, "type": "mouseover", "message_id": 235}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 358, "x": 483, "type": "mouseover", "message_id": 236}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 345, "x": 485, "type": "mousemove", "message_id": 238}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 358, "x": 483, "type": "mousemove", "message_id": 237}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 330, "x": 486, "type": "mouseover", "message_id": 239}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 330, "x": 486, "type": "mouseover", "message_id": 240}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 330, "x": 486, "type": "mousemove", "message_id": 241}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 282, "x": 485, "type": "mouseover", "message_id": 242}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 282, "x": 485, "type": "mouseover", "message_id": 243}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 282, "x": 485, "type": "mousemove", "message_id": 244}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 251, "x": 478, "type": "mousemove", "message_id": 245}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 226, "x": 465, "type": "mousemove", "message_id": 246}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 201, "x": 444, "type": "mousemove", "message_id": 247}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 180, "x": 421, "type": "mousemove", "message_id": 248}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 162, "x": 396, "type": "mousemove", "message_id": 249}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 147, "x": 374, "type": "mousemove", "message_id": 250}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 137, "x": 358, "type": "mousemove", "message_id": 251}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 129, "x": 348, "type": "mousemove", "message_id": 252}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 124, "x": 340, "type": "mousemove", "message_id": 253}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 121, "x": 335, "type": "mousemove", "message_id": 254}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 117, "x": 327, "type": "mousemove", "message_id": 255}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 107, "x": 308, "type": "mousemove", "message_id": 257}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 112, "x": 318, "type": "mousemove", "message_id": 256}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 102, "x": 300, "type": "mousemove", "message_id": 258}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 96, "x": 291, "type": "mousemove", "message_id": 259}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 89, "x": 282, "type": "mousemove", "message_id": 260}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 83, "x": 270, "type": "mousemove", "message_id": 261}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 75, "x": 254, "type": "mousemove", "message_id": 262}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 70, "x": 234, "type": "mousemove", "message_id": 263}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 66, "x": 215, "type": "mousemove", "message_id": 264}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 64, "x": 199, "type": "mousemove", "message_id": 265}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 62, "x": 190, "type": "mousemove", "message_id": 266}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 61, "x": 181, "type": "mouseover", "message_id": 267}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 61, "x": 181, "type": "mouseover", "message_id": 268}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 61, "x": 181, "type": "mousemove", "message_id": 269}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 59, "x": 174, "type": "mouseover", "message_id": 270}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 59, "x": 174, "type": "mouseover", "message_id": 271}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 59, "x": 174, "type": "mousemove", "message_id": 272}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 57, "x": 170, "type": "mousemove", "message_id": 273}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 55, "x": 167, "type": "mousemove", "message_id": 274}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 54, "x": 166, "type": "mouseover", "message_id": 275}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 54, "x": 166, "type": "mouseover", "message_id": 276}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 54, "x": 166, "type": "mousemove", "message_id": 277}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 53, "x": 165, "type": "mousemove", "message_id": 278}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 53, "x": 164, "type": "mousemove", "message_id": 279}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 53, "x": 165, "type": "mousemove", "message_id": 280}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 53, "x": 167, "type": "mouseover", "message_id": 281}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 53, "x": 167, "type": "mouseover", "message_id": 282}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 53, "x": 167, "type": "mousemove", "message_id": 283}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 54, "x": 171, "type": "mousemove", "message_id": 284}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 54, "x": 173, "type": "mousemove", "message_id": 285}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 54, "x": 174, "type": "mouseover", "message_id": 286}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 54, "x": 174, "type": "mousemove", "message_id": 288}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 54, "x": 174, "type": "mouseover", "message_id": 287}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 54, "x": 174, "type": "mousemove", "message_id": 289}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 54, "x": 175, "type": "mousemove", "message_id": 290}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 54, "x": 175, "type": "mousemove", "message_id": 291}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 54, "x": 176, "type": "mousemove", "message_id": 292}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 54, "x": 177, "type": "mousemove", "message_id": 293}
|
||||
{"sender": 3699, "msg_type": "MouseEvent", "y": 54, "x": 178, "type": "mousemove", "message_id": 294}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user