aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bin/SDL2.dllbin771072 -> 771072 bytes
-rw-r--r--bin/cembed.exebin11264 -> 11264 bytes
-rw-r--r--bin/img.asset1
-rw-r--r--bin/jin.exebin317440 -> 314368 bytes
-rw-r--r--bin/lua51.dllbin364544 -> 364544 bytes
-rw-r--r--samples/post-processing/img.asset1
-rw-r--r--samples/post-processing/main.lua1
-rw-r--r--samples/post-processing/shaders/rgb-split.jsl2
-rw-r--r--src/libjin-lua/scripts/ai/ai.lua4
-rw-r--r--src/libjin-lua/scripts/ai/ai.lua.h7
-rw-r--r--src/libjin-lua/scripts/ai/state_machine.lua222
-rw-r--r--src/libjin-lua/scripts/ai/state_machine.lua.h382
-rw-r--r--src/libjin-lua/scripts/app.lua136
-rw-r--r--src/libjin-lua/scripts/app.lua.h267
-rw-r--r--src/libjin-lua/scripts/graphics/graphics.lua144
-rw-r--r--src/libjin-lua/scripts/graphics/graphics.lua.h356
-rw-r--r--src/libjin-lua/scripts/keyboard/keyboard.lua4
-rw-r--r--src/libjin-lua/scripts/keyboard/keyboard.lua.h12
-rw-r--r--src/libjin-lua/scripts/log.lua94
-rw-r--r--src/libjin-lua/scripts/log.lua.h188
-rw-r--r--src/libjin-lua/scripts/mouse/mouse.lua4
-rw-r--r--src/libjin-lua/scripts/mouse/mouse.lua.h12
-rw-r--r--src/libjin-lua/scripts/path/path.lua2
-rw-r--r--src/libjin-lua/scripts/path/path.lua.h4
-rw-r--r--src/libjin-lua/scripts/physics/physics.lua472
-rw-r--r--src/libjin-lua/scripts/physics/physics.lua.h1885
-rw-r--r--src/libjin-lua/scripts/time/time.lua22
-rw-r--r--src/libjin-lua/scripts/time/time.lua.h27
-rw-r--r--src/libjin-lua/scripts/utils/json.lua512
-rw-r--r--src/libjin-lua/scripts/utils/json.lua.h904
-rw-r--r--src/libjin-lua/scripts/utils/xml.lua244
-rw-r--r--src/libjin-lua/scripts/utils/xml.lua.h451
32 files changed, 3098 insertions, 3262 deletions
diff --git a/bin/SDL2.dll b/bin/SDL2.dll
index 6202063..eb67c27 100644
--- a/bin/SDL2.dll
+++ b/bin/SDL2.dll
Binary files differ
diff --git a/bin/cembed.exe b/bin/cembed.exe
index d9d3a6c..9258f0b 100644
--- a/bin/cembed.exe
+++ b/bin/cembed.exe
Binary files differ
diff --git a/bin/img.asset b/bin/img.asset
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/bin/img.asset
@@ -0,0 +1 @@
+{} \ No newline at end of file
diff --git a/bin/jin.exe b/bin/jin.exe
index 64620b8..4a49d82 100644
--- a/bin/jin.exe
+++ b/bin/jin.exe
Binary files differ
diff --git a/bin/lua51.dll b/bin/lua51.dll
index 58b7cdd..89093ae 100644
--- a/bin/lua51.dll
+++ b/bin/lua51.dll
Binary files differ
diff --git a/samples/post-processing/img.asset b/samples/post-processing/img.asset
new file mode 100644
index 0000000..3941af5
--- /dev/null
+++ b/samples/post-processing/img.asset
@@ -0,0 +1 @@
+return {} \ No newline at end of file
diff --git a/samples/post-processing/main.lua b/samples/post-processing/main.lua
index bc464c5..491e34e 100644
--- a/samples/post-processing/main.lua
+++ b/samples/post-processing/main.lua
@@ -1,5 +1,4 @@
io.stdout:setvbuf("no")
-
music = nil
local tex = nil
local timer = nil
diff --git a/samples/post-processing/shaders/rgb-split.jsl b/samples/post-processing/shaders/rgb-split.jsl
index aba401b..41e7762 100644
--- a/samples/post-processing/shaders/rgb-split.jsl
+++ b/samples/post-processing/shaders/rgb-split.jsl
@@ -9,7 +9,7 @@ Vertex vert(Vertex v)
Color frag(Color col, Texture tex, Vertex v)
{
float t = jin_Time.x;
- //t = 0.02;
+ t = 0.02;
float a = abs(sin(t)) * 3.14;
vec2 p = vec2(0.5*cos(a) + 0.5, 0.5*sin(a) + 0.5);
vec2 dir = v.uv - p;
diff --git a/src/libjin-lua/scripts/ai/ai.lua b/src/libjin-lua/scripts/ai/ai.lua
index 7afe7d8..3ce7a12 100644
--- a/src/libjin-lua/scripts/ai/ai.lua
+++ b/src/libjin-lua/scripts/ai/ai.lua
@@ -3,6 +3,6 @@ jin.ai = jin.ai or {}
local ja = jin.ai
--ja.StateMachineType = {
--- STEPWISE = 1,
--- ITERATIVE = 2,
+-- STEPWISE = 1,
+-- ITERATIVE = 2,
--}
diff --git a/src/libjin-lua/scripts/ai/ai.lua.h b/src/libjin-lua/scripts/ai/ai.lua.h
index 90aa889..6ef9b73 100644
--- a/src/libjin-lua/scripts/ai/ai.lua.h
+++ b/src/libjin-lua/scripts/ai/ai.lua.h
@@ -3,9 +3,8 @@ static char ai_lua[] = {
106,105,110,46,97,105,32,61,32,106,105,110,46,97,105,32,111,114,32,123,
125,32,13,10,13,10,108,111,99,97,108,32,106,97,32,61,32,106,105,110,
46,97,105,13,10,13,10,45,45,106,97,46,83,116,97,116,101,77,97,99,
-104,105,110,101,84,121,112,101,32,61,32,123,13,10,45,45,32,32,32,32,
-83,84,69,80,87,73,83,69,32,61,32,49,44,32,13,10,45,45,32,32,
-32,32,73,84,69,82,65,84,73,86,69,32,61,32,50,44,13,10,45,45,
-125,13,10,0
+104,105,110,101,84,121,112,101,32,61,32,123,13,10,45,45,32,32,83,84,
+69,80,87,73,83,69,32,61,32,49,44,32,13,10,45,45,32,32,73,84,
+69,82,65,84,73,86,69,32,61,32,50,44,13,10,45,45,125,13,10,0
};
diff --git a/src/libjin-lua/scripts/ai/state_machine.lua b/src/libjin-lua/scripts/ai/state_machine.lua
index 423576a..82d7297 100644
--- a/src/libjin-lua/scripts/ai/state_machine.lua
+++ b/src/libjin-lua/scripts/ai/state_machine.lua
@@ -11,149 +11,149 @@ local NONE = "none"
local ASYNC = "async"
local function call_handler(handler, params)
- if handler then
- return handler(unpack(params))
- end
+ if handler then
+ return handler(unpack(params))
+ end
end
local function create_transition(name)
- local can, to, from, params
-
- local function transition(self, ...)
- if self.asyncState == NONE then
- can, to = self:can(name)
- from = self.current
- params = { self, name, from, to, ...}
-
- if not can then return false end
- self.currentTransitioningEvent = name
-
- local beforeReturn = call_handler(self["onbefore" .. name], params)
- local leaveReturn = call_handler(self["onleave" .. from], params)
-
- if beforeReturn == false or leaveReturn == false then
- return false
- end
-
- self.asyncState = name .. "WaitingOnLeave"
-
- if leaveReturn ~= ASYNC then
- transition(self, ...)
- end
-
- return true
- elseif self.asyncState == name .. "WaitingOnLeave" then
- self.current = to
-
- local enterReturn = call_handler(self["onenter" .. to] or self["on" .. to], params)
-
- self.asyncState = name .. "WaitingOnEnter"
-
- if enterReturn ~= ASYNC then
- transition(self, ...)
- end
-
- return true
- elseif self.asyncState == name .. "WaitingOnEnter" then
- call_handler(self["onafter" .. name] or self["on" .. name], params)
- call_handler(self["onstatechange"], params)
- self.asyncState = NONE
- self.currentTransitioningEvent = nil
- return true
- else
- if string.find(self.asyncState, "WaitingOnLeave") or string.find(self.asyncState, "WaitingOnEnter") then
- self.asyncState = NONE
- transition(self, ...)
- return true
- end
- end
-
- self.currentTransitioningEvent = nil
+ local can, to, from, params
+
+ local function transition(self, ...)
+ if self.asyncState == NONE then
+ can, to = self:can(name)
+ from = self.current
+ params = { self, name, from, to, ...}
+
+ if not can then return false end
+ self.currentTransitioningEvent = name
+
+ local beforeReturn = call_handler(self["onbefore" .. name], params)
+ local leaveReturn = call_handler(self["onleave" .. from], params)
+
+ if beforeReturn == false or leaveReturn == false then
return false
+ end
+
+ self.asyncState = name .. "WaitingOnLeave"
+
+ if leaveReturn ~= ASYNC then
+ transition(self, ...)
+ end
+
+ return true
+ elseif self.asyncState == name .. "WaitingOnLeave" then
+ self.current = to
+
+ local enterReturn = call_handler(self["onenter" .. to] or self["on" .. to], params)
+
+ self.asyncState = name .. "WaitingOnEnter"
+
+ if enterReturn ~= ASYNC then
+ transition(self, ...)
+ end
+
+ return true
+ elseif self.asyncState == name .. "WaitingOnEnter" then
+ call_handler(self["onafter" .. name] or self["on" .. name], params)
+ call_handler(self["onstatechange"], params)
+ self.asyncState = NONE
+ self.currentTransitioningEvent = nil
+ return true
+ else
+ if string.find(self.asyncState, "WaitingOnLeave") or string.find(self.asyncState, "WaitingOnEnter") then
+ self.asyncState = NONE
+ transition(self, ...)
+ return true
+ end
end
- return transition
+ self.currentTransitioningEvent = nil
+ return false
+ end
+
+ return transition
end
local function add_to_map(map, event)
- if type(event.from) == 'string' then
- map[event.from] = event.to
- else
- for _, from in ipairs(event.from) do
- map[from] = event.to
- end
+ if type(event.from) == 'string' then
+ map[event.from] = event.to
+ else
+ for _, from in ipairs(event.from) do
+ map[from] = event.to
end
+ end
end
function machine.create(options)
- assert(options.events)
-
- local fsm = {}
- setmetatable(fsm, machine)
-
- fsm.options = options
- fsm.current = options.initial or 'none'
- fsm.asyncState = NONE
- fsm.events = {}
-
- for _, event in ipairs(options.events or {}) do
- local name = event.name
- fsm[name] = fsm[name] or create_transition(name)
- fsm.events[name] = fsm.events[name] or { map = {} }
- add_to_map(fsm.events[name].map, event)
- end
-
- for name, callback in pairs(options.callbacks or {}) do
- fsm[name] = callback
- end
-
- return fsm
+ assert(options.events)
+
+ local fsm = {}
+ setmetatable(fsm, machine)
+
+ fsm.options = options
+ fsm.current = options.initial or 'none'
+ fsm.asyncState = NONE
+ fsm.events = {}
+
+ for _, event in ipairs(options.events or {}) do
+ local name = event.name
+ fsm[name] = fsm[name] or create_transition(name)
+ fsm.events[name] = fsm.events[name] or { map = {} }
+ add_to_map(fsm.events[name].map, event)
+ end
+
+ for name, callback in pairs(options.callbacks or {}) do
+ fsm[name] = callback
+ end
+
+ return fsm
end
function machine:is(state)
- return self.current == state
+ return self.current == state
end
function machine:can(e)
- local event = self.events[e]
- local to = event and event.map[self.current] or event.map['*']
- return to ~= nil, to
+ local event = self.events[e]
+ local to = event and event.map[self.current] or event.map['*']
+ return to ~= nil, to
end
function machine:cannot(e)
- return not self:can(e)
+ return not self:can(e)
end
function machine:todot(filename)
- local dotfile = io.open(filename,'w')
- dotfile:write('digraph {\n')
- local transition = function(event,from,to)
- dotfile:write(string.format('%s -> %s [label=%s];\n',from,to,event))
- end
- for _, event in pairs(self.options.events) do
- if type(event.from) == 'table' then
- for _, from in ipairs(event.from) do
- transition(event.name,from,event.to)
- end
- else
- transition(event.name,event.from,event.to)
- end
+ local dotfile = io.open(filename,'w')
+ dotfile:write('digraph {\n')
+ local transition = function(event,from,to)
+ dotfile:write(string.format('%s -> %s [label=%s];\n',from,to,event))
+ end
+ for _, event in pairs(self.options.events) do
+ if type(event.from) == 'table' then
+ for _, from in ipairs(event.from) do
+ transition(event.name,from,event.to)
+ end
+ else
+ transition(event.name,event.from,event.to)
end
- dotfile:write('}\n')
- dotfile:close()
+ end
+ dotfile:write('}\n')
+ dotfile:close()
end
function machine:transition(event)
- if self.currentTransitioningEvent == event then
- return self[self.currentTransitioningEvent](self)
- end
+ if self.currentTransitioningEvent == event then
+ return self[self.currentTransitioningEvent](self)
+ end
end
function machine:cancelTransition(event)
- if self.currentTransitioningEvent == event then
- self.asyncState = NONE
- self.currentTransitioningEvent = nil
- end
+ if self.currentTransitioningEvent == event then
+ self.asyncState = NONE
+ self.currentTransitioningEvent = nil
+ end
end
machine.NONE = NONE
diff --git a/src/libjin-lua/scripts/ai/state_machine.lua.h b/src/libjin-lua/scripts/ai/state_machine.lua.h
index 93a1a9a..4d70378 100644
--- a/src/libjin-lua/scripts/ai/state_machine.lua.h
+++ b/src/libjin-lua/scripts/ai/state_machine.lua.h
@@ -22,229 +22,209 @@ static char state_machine_lua[] = {
13,10,108,111,99,97,108,32,65,83,89,78,67,32,61,32,34,97,115,121,
110,99,34,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,
110,32,99,97,108,108,95,104,97,110,100,108,101,114,40,104,97,110,100,108,
-101,114,44,32,112,97,114,97,109,115,41,13,10,32,32,32,32,105,102,32,
-104,97,110,100,108,101,114,32,116,104,101,110,13,10,32,32,32,32,32,32,
-32,32,114,101,116,117,114,110,32,104,97,110,100,108,101,114,40,117,110,112,
-97,99,107,40,112,97,114,97,109,115,41,41,13,10,32,32,32,32,101,110,
-100,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,102,117,110,99,
-116,105,111,110,32,99,114,101,97,116,101,95,116,114,97,110,115,105,116,105,
-111,110,40,110,97,109,101,41,13,10,32,32,32,32,108,111,99,97,108,32,
-99,97,110,44,32,116,111,44,32,102,114,111,109,44,32,112,97,114,97,109,
-115,13,10,13,10,32,32,32,32,108,111,99,97,108,32,102,117,110,99,116,
-105,111,110,32,116,114,97,110,115,105,116,105,111,110,40,115,101,108,102,44,
-32,46,46,46,41,13,10,32,32,32,32,32,32,32,32,105,102,32,115,101,
-108,102,46,97,115,121,110,99,83,116,97,116,101,32,61,61,32,78,79,78,
-69,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,32,32,32,32,
-99,97,110,44,32,116,111,32,61,32,115,101,108,102,58,99,97,110,40,110,
-97,109,101,41,13,10,32,32,32,32,32,32,32,32,32,32,32,32,102,114,
-111,109,32,61,32,115,101,108,102,46,99,117,114,114,101,110,116,13,10,32,
-32,32,32,32,32,32,32,32,32,32,32,112,97,114,97,109,115,32,61,32,
-123,32,115,101,108,102,44,32,110,97,109,101,44,32,102,114,111,109,44,32,
-116,111,44,32,46,46,46,125,13,10,13,10,32,32,32,32,32,32,32,32,
+101,114,44,32,112,97,114,97,109,115,41,13,10,32,32,105,102,32,104,97,
+110,100,108,101,114,32,116,104,101,110,13,10,32,32,32,32,114,101,116,117,
+114,110,32,104,97,110,100,108,101,114,40,117,110,112,97,99,107,40,112,97,
+114,97,109,115,41,41,13,10,32,32,101,110,100,13,10,101,110,100,13,10,
+13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,99,114,101,
+97,116,101,95,116,114,97,110,115,105,116,105,111,110,40,110,97,109,101,41,
+13,10,32,32,108,111,99,97,108,32,99,97,110,44,32,116,111,44,32,102,
+114,111,109,44,32,112,97,114,97,109,115,13,10,13,10,32,32,108,111,99,
+97,108,32,102,117,110,99,116,105,111,110,32,116,114,97,110,115,105,116,105,
+111,110,40,115,101,108,102,44,32,46,46,46,41,13,10,32,32,32,32,105,
+102,32,115,101,108,102,46,97,115,121,110,99,83,116,97,116,101,32,61,61,
+32,78,79,78,69,32,116,104,101,110,13,10,32,32,32,32,32,32,99,97,
+110,44,32,116,111,32,61,32,115,101,108,102,58,99,97,110,40,110,97,109,
+101,41,13,10,32,32,32,32,32,32,102,114,111,109,32,61,32,115,101,108,
+102,46,99,117,114,114,101,110,116,13,10,32,32,32,32,32,32,112,97,114,
+97,109,115,32,61,32,123,32,115,101,108,102,44,32,110,97,109,101,44,32,
+102,114,111,109,44,32,116,111,44,32,46,46,46,125,13,10,13,10,32,32,
32,32,32,32,105,102,32,110,111,116,32,99,97,110,32,116,104,101,110,32,
114,101,116,117,114,110,32,102,97,108,115,101,32,101,110,100,13,10,32,32,
-32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,99,117,114,114,101,
-110,116,84,114,97,110,115,105,116,105,111,110,105,110,103,69,118,101,110,116,
-32,61,32,110,97,109,101,13,10,13,10,32,32,32,32,32,32,32,32,32,
-32,32,32,108,111,99,97,108,32,98,101,102,111,114,101,82,101,116,117,114,
-110,32,61,32,99,97,108,108,95,104,97,110,100,108,101,114,40,115,101,108,
-102,91,34,111,110,98,101,102,111,114,101,34,32,46,46,32,110,97,109,101,
-93,44,32,112,97,114,97,109,115,41,13,10,32,32,32,32,32,32,32,32,
-32,32,32,32,108,111,99,97,108,32,108,101,97,118,101,82,101,116,117,114,
-110,32,61,32,99,97,108,108,95,104,97,110,100,108,101,114,40,115,101,108,
-102,91,34,111,110,108,101,97,118,101,34,32,46,46,32,102,114,111,109,93,
-44,32,112,97,114,97,109,115,41,13,10,13,10,32,32,32,32,32,32,32,
-32,32,32,32,32,105,102,32,98,101,102,111,114,101,82,101,116,117,114,110,
-32,61,61,32,102,97,108,115,101,32,111,114,32,108,101,97,118,101,82,101,
-116,117,114,110,32,61,61,32,102,97,108,115,101,32,116,104,101,110,13,10,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,
-114,110,32,102,97,108,115,101,13,10,32,32,32,32,32,32,32,32,32,32,
-32,32,101,110,100,13,10,13,10,32,32,32,32,32,32,32,32,32,32,32,
-32,115,101,108,102,46,97,115,121,110,99,83,116,97,116,101,32,61,32,110,
-97,109,101,32,46,46,32,34,87,97,105,116,105,110,103,79,110,76,101,97,
-118,101,34,13,10,13,10,32,32,32,32,32,32,32,32,32,32,32,32,105,
-102,32,108,101,97,118,101,82,101,116,117,114,110,32,126,61,32,65,83,89,
-78,67,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,32,32,32,
-32,32,32,32,32,116,114,97,110,115,105,116,105,111,110,40,115,101,108,102,
-44,32,46,46,46,41,13,10,32,32,32,32,32,32,32,32,32,32,32,32,
-101,110,100,13,10,32,32,32,32,32,32,32,32,32,32,32,32,13,10,32,
-32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,
-117,101,13,10,32,32,32,32,32,32,32,32,101,108,115,101,105,102,32,115,
+32,32,32,32,115,101,108,102,46,99,117,114,114,101,110,116,84,114,97,110,
+115,105,116,105,111,110,105,110,103,69,118,101,110,116,32,61,32,110,97,109,
+101,13,10,13,10,32,32,32,32,32,32,108,111,99,97,108,32,98,101,102,
+111,114,101,82,101,116,117,114,110,32,61,32,99,97,108,108,95,104,97,110,
+100,108,101,114,40,115,101,108,102,91,34,111,110,98,101,102,111,114,101,34,
+32,46,46,32,110,97,109,101,93,44,32,112,97,114,97,109,115,41,13,10,
+32,32,32,32,32,32,108,111,99,97,108,32,108,101,97,118,101,82,101,116,
+117,114,110,32,61,32,99,97,108,108,95,104,97,110,100,108,101,114,40,115,
+101,108,102,91,34,111,110,108,101,97,118,101,34,32,46,46,32,102,114,111,
+109,93,44,32,112,97,114,97,109,115,41,13,10,13,10,32,32,32,32,32,
+32,105,102,32,98,101,102,111,114,101,82,101,116,117,114,110,32,61,61,32,
+102,97,108,115,101,32,111,114,32,108,101,97,118,101,82,101,116,117,114,110,
+32,61,61,32,102,97,108,115,101,32,116,104,101,110,13,10,32,32,32,32,
+32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,13,10,32,32,
+32,32,32,32,101,110,100,13,10,13,10,32,32,32,32,32,32,115,101,108,
+102,46,97,115,121,110,99,83,116,97,116,101,32,61,32,110,97,109,101,32,
+46,46,32,34,87,97,105,116,105,110,103,79,110,76,101,97,118,101,34,13,
+10,13,10,32,32,32,32,32,32,105,102,32,108,101,97,118,101,82,101,116,
+117,114,110,32,126,61,32,65,83,89,78,67,32,116,104,101,110,13,10,32,
+32,32,32,32,32,32,32,116,114,97,110,115,105,116,105,111,110,40,115,101,
+108,102,44,32,46,46,46,41,13,10,32,32,32,32,32,32,101,110,100,13,
+10,32,32,32,32,32,32,13,10,32,32,32,32,32,32,114,101,116,117,114,
+110,32,116,114,117,101,13,10,32,32,32,32,101,108,115,101,105,102,32,115,
101,108,102,46,97,115,121,110,99,83,116,97,116,101,32,61,61,32,110,97,
109,101,32,46,46,32,34,87,97,105,116,105,110,103,79,110,76,101,97,118,
-101,34,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,32,32,32,
-32,115,101,108,102,46,99,117,114,114,101,110,116,32,61,32,116,111,13,10,
-13,10,32,32,32,32,32,32,32,32,32,32,32,32,108,111,99,97,108,32,
-101,110,116,101,114,82,101,116,117,114,110,32,61,32,99,97,108,108,95,104,
-97,110,100,108,101,114,40,115,101,108,102,91,34,111,110,101,110,116,101,114,
-34,32,46,46,32,116,111,93,32,111,114,32,115,101,108,102,91,34,111,110,
-34,32,46,46,32,116,111,93,44,32,112,97,114,97,109,115,41,13,10,13,
-10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,97,115,
-121,110,99,83,116,97,116,101,32,61,32,110,97,109,101,32,46,46,32,34,
-87,97,105,116,105,110,103,79,110,69,110,116,101,114,34,13,10,13,10,32,
-32,32,32,32,32,32,32,32,32,32,32,105,102,32,101,110,116,101,114,82,
-101,116,117,114,110,32,126,61,32,65,83,89,78,67,32,116,104,101,110,13,
-10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,114,97,
-110,115,105,116,105,111,110,40,115,101,108,102,44,32,46,46,46,41,13,10,
-32,32,32,32,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,
-32,32,32,32,32,32,32,32,32,13,10,32,32,32,32,32,32,32,32,32,
-32,32,32,114,101,116,117,114,110,32,116,114,117,101,13,10,32,32,32,32,
-32,32,32,32,101,108,115,101,105,102,32,115,101,108,102,46,97,115,121,110,
-99,83,116,97,116,101,32,61,61,32,110,97,109,101,32,46,46,32,34,87,
-97,105,116,105,110,103,79,110,69,110,116,101,114,34,32,116,104,101,110,13,
-10,32,32,32,32,32,32,32,32,32,32,32,32,99,97,108,108,95,104,97,
+101,34,32,116,104,101,110,13,10,32,32,32,32,32,32,115,101,108,102,46,
+99,117,114,114,101,110,116,32,61,32,116,111,13,10,13,10,32,32,32,32,
+32,32,108,111,99,97,108,32,101,110,116,101,114,82,101,116,117,114,110,32,
+61,32,99,97,108,108,95,104,97,110,100,108,101,114,40,115,101,108,102,91,
+34,111,110,101,110,116,101,114,34,32,46,46,32,116,111,93,32,111,114,32,
+115,101,108,102,91,34,111,110,34,32,46,46,32,116,111,93,44,32,112,97,
+114,97,109,115,41,13,10,13,10,32,32,32,32,32,32,115,101,108,102,46,
+97,115,121,110,99,83,116,97,116,101,32,61,32,110,97,109,101,32,46,46,
+32,34,87,97,105,116,105,110,103,79,110,69,110,116,101,114,34,13,10,13,
+10,32,32,32,32,32,32,105,102,32,101,110,116,101,114,82,101,116,117,114,
+110,32,126,61,32,65,83,89,78,67,32,116,104,101,110,13,10,32,32,32,
+32,32,32,32,32,116,114,97,110,115,105,116,105,111,110,40,115,101,108,102,
+44,32,46,46,46,41,13,10,32,32,32,32,32,32,101,110,100,13,10,32,
+32,32,32,32,32,13,10,32,32,32,32,32,32,114,101,116,117,114,110,32,
+116,114,117,101,13,10,32,32,32,32,101,108,115,101,105,102,32,115,101,108,
+102,46,97,115,121,110,99,83,116,97,116,101,32,61,61,32,110,97,109,101,
+32,46,46,32,34,87,97,105,116,105,110,103,79,110,69,110,116,101,114,34,
+32,116,104,101,110,13,10,32,32,32,32,32,32,99,97,108,108,95,104,97,
110,100,108,101,114,40,115,101,108,102,91,34,111,110,97,102,116,101,114,34,
32,46,46,32,110,97,109,101,93,32,111,114,32,115,101,108,102,91,34,111,
110,34,32,46,46,32,110,97,109,101,93,44,32,112,97,114,97,109,115,41,
-13,10,32,32,32,32,32,32,32,32,32,32,32,32,99,97,108,108,95,104,
-97,110,100,108,101,114,40,115,101,108,102,91,34,111,110,115,116,97,116,101,
-99,104,97,110,103,101,34,93,44,32,112,97,114,97,109,115,41,13,10,32,
-32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,97,115,121,110,
-99,83,116,97,116,101,32,61,32,78,79,78,69,13,10,32,32,32,32,32,
-32,32,32,32,32,32,32,115,101,108,102,46,99,117,114,114,101,110,116,84,
-114,97,110,115,105,116,105,111,110,105,110,103,69,118,101,110,116,32,61,32,
-110,105,108,13,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,
-117,114,110,32,116,114,117,101,13,10,32,32,32,32,32,32,32,32,101,108,
-115,101,13,10,32,32,32,32,32,32,32,32,9,105,102,32,115,116,114,105,
-110,103,46,102,105,110,100,40,115,101,108,102,46,97,115,121,110,99,83,116,
-97,116,101,44,32,34,87,97,105,116,105,110,103,79,110,76,101,97,118,101,
-34,41,32,111,114,32,115,116,114,105,110,103,46,102,105,110,100,40,115,101,
-108,102,46,97,115,121,110,99,83,116,97,116,101,44,32,34,87,97,105,116,
-105,110,103,79,110,69,110,116,101,114,34,41,32,116,104,101,110,13,10,32,
-32,32,32,32,32,32,32,9,9,115,101,108,102,46,97,115,121,110,99,83,
-116,97,116,101,32,61,32,78,79,78,69,13,10,32,32,32,32,32,32,32,
+13,10,32,32,32,32,32,32,99,97,108,108,95,104,97,110,100,108,101,114,
+40,115,101,108,102,91,34,111,110,115,116,97,116,101,99,104,97,110,103,101,
+34,93,44,32,112,97,114,97,109,115,41,13,10,32,32,32,32,32,32,115,
+101,108,102,46,97,115,121,110,99,83,116,97,116,101,32,61,32,78,79,78,
+69,13,10,32,32,32,32,32,32,115,101,108,102,46,99,117,114,114,101,110,
+116,84,114,97,110,115,105,116,105,111,110,105,110,103,69,118,101,110,116,32,
+61,32,110,105,108,13,10,32,32,32,32,32,32,114,101,116,117,114,110,32,
+116,114,117,101,13,10,32,32,32,32,101,108,115,101,13,10,32,32,32,32,
+9,105,102,32,115,116,114,105,110,103,46,102,105,110,100,40,115,101,108,102,
+46,97,115,121,110,99,83,116,97,116,101,44,32,34,87,97,105,116,105,110,
+103,79,110,76,101,97,118,101,34,41,32,111,114,32,115,116,114,105,110,103,
+46,102,105,110,100,40,115,101,108,102,46,97,115,121,110,99,83,116,97,116,
+101,44,32,34,87,97,105,116,105,110,103,79,110,69,110,116,101,114,34,41,
+32,116,104,101,110,13,10,32,32,32,32,9,9,115,101,108,102,46,97,115,
+121,110,99,83,116,97,116,101,32,61,32,78,79,78,69,13,10,32,32,32,
32,9,9,116,114,97,110,115,105,116,105,111,110,40,115,101,108,102,44,32,
-46,46,46,41,13,10,32,32,32,32,32,32,32,32,9,9,114,101,116,117,
-114,110,32,116,114,117,101,13,10,32,32,32,32,32,32,32,32,9,101,110,
-100,13,10,32,32,32,32,32,32,32,32,101,110,100,13,10,13,10,32,32,
-32,32,32,32,32,32,115,101,108,102,46,99,117,114,114,101,110,116,84,114,
-97,110,115,105,116,105,111,110,105,110,103,69,118,101,110,116,32,61,32,110,
-105,108,13,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,
-97,108,115,101,13,10,32,32,32,32,101,110,100,13,10,13,10,32,32,32,
-32,114,101,116,117,114,110,32,116,114,97,110,115,105,116,105,111,110,13,10,
-101,110,100,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,
-110,32,97,100,100,95,116,111,95,109,97,112,40,109,97,112,44,32,101,118,
-101,110,116,41,13,10,32,32,32,32,105,102,32,116,121,112,101,40,101,118,
-101,110,116,46,102,114,111,109,41,32,61,61,32,39,115,116,114,105,110,103,
-39,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,109,97,112,91,
-101,118,101,110,116,46,102,114,111,109,93,32,61,32,101,118,101,110,116,46,
-116,111,13,10,32,32,32,32,101,108,115,101,13,10,32,32,32,32,32,32,
-32,32,102,111,114,32,95,44,32,102,114,111,109,32,105,110,32,105,112,97,
-105,114,115,40,101,118,101,110,116,46,102,114,111,109,41,32,100,111,13,10,
-32,32,32,32,32,32,32,32,32,32,32,32,109,97,112,91,102,114,111,109,
-93,32,61,32,101,118,101,110,116,46,116,111,13,10,32,32,32,32,32,32,
-32,32,101,110,100,13,10,32,32,32,32,101,110,100,13,10,101,110,100,13,
-10,13,10,102,117,110,99,116,105,111,110,32,109,97,99,104,105,110,101,46,
-99,114,101,97,116,101,40,111,112,116,105,111,110,115,41,13,10,32,32,32,
-32,97,115,115,101,114,116,40,111,112,116,105,111,110,115,46,101,118,101,110,
-116,115,41,13,10,13,10,32,32,32,32,108,111,99,97,108,32,102,115,109,
-32,61,32,123,125,13,10,32,32,32,32,115,101,116,109,101,116,97,116,97,
-98,108,101,40,102,115,109,44,32,109,97,99,104,105,110,101,41,13,10,13,
-10,32,32,32,32,102,115,109,46,111,112,116,105,111,110,115,32,61,32,111,
-112,116,105,111,110,115,13,10,32,32,32,32,102,115,109,46,99,117,114,114,
-101,110,116,32,61,32,111,112,116,105,111,110,115,46,105,110,105,116,105,97,
-108,32,111,114,32,39,110,111,110,101,39,13,10,32,32,32,32,102,115,109,
+46,46,46,41,13,10,32,32,32,32,9,9,114,101,116,117,114,110,32,116,
+114,117,101,13,10,32,32,32,32,9,101,110,100,13,10,32,32,32,32,101,
+110,100,13,10,13,10,32,32,32,32,115,101,108,102,46,99,117,114,114,101,
+110,116,84,114,97,110,115,105,116,105,111,110,105,110,103,69,118,101,110,116,
+32,61,32,110,105,108,13,10,32,32,32,32,114,101,116,117,114,110,32,102,
+97,108,115,101,13,10,32,32,101,110,100,13,10,13,10,32,32,114,101,116,
+117,114,110,32,116,114,97,110,115,105,116,105,111,110,13,10,101,110,100,13,
+10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,97,100,
+100,95,116,111,95,109,97,112,40,109,97,112,44,32,101,118,101,110,116,41,
+13,10,32,32,105,102,32,116,121,112,101,40,101,118,101,110,116,46,102,114,
+111,109,41,32,61,61,32,39,115,116,114,105,110,103,39,32,116,104,101,110,
+13,10,32,32,32,32,109,97,112,91,101,118,101,110,116,46,102,114,111,109,
+93,32,61,32,101,118,101,110,116,46,116,111,13,10,32,32,101,108,115,101,
+13,10,32,32,32,32,102,111,114,32,95,44,32,102,114,111,109,32,105,110,
+32,105,112,97,105,114,115,40,101,118,101,110,116,46,102,114,111,109,41,32,
+100,111,13,10,32,32,32,32,32,32,109,97,112,91,102,114,111,109,93,32,
+61,32,101,118,101,110,116,46,116,111,13,10,32,32,32,32,101,110,100,13,
+10,32,32,101,110,100,13,10,101,110,100,13,10,13,10,102,117,110,99,116,
+105,111,110,32,109,97,99,104,105,110,101,46,99,114,101,97,116,101,40,111,
+112,116,105,111,110,115,41,13,10,32,32,97,115,115,101,114,116,40,111,112,
+116,105,111,110,115,46,101,118,101,110,116,115,41,13,10,13,10,32,32,108,
+111,99,97,108,32,102,115,109,32,61,32,123,125,13,10,32,32,115,101,116,
+109,101,116,97,116,97,98,108,101,40,102,115,109,44,32,109,97,99,104,105,
+110,101,41,13,10,13,10,32,32,102,115,109,46,111,112,116,105,111,110,115,
+32,61,32,111,112,116,105,111,110,115,13,10,32,32,102,115,109,46,99,117,
+114,114,101,110,116,32,61,32,111,112,116,105,111,110,115,46,105,110,105,116,
+105,97,108,32,111,114,32,39,110,111,110,101,39,13,10,32,32,102,115,109,
46,97,115,121,110,99,83,116,97,116,101,32,61,32,78,79,78,69,13,10,
-32,32,32,32,102,115,109,46,101,118,101,110,116,115,32,61,32,123,125,13,
-10,13,10,32,32,32,32,102,111,114,32,95,44,32,101,118,101,110,116,32,
-105,110,32,105,112,97,105,114,115,40,111,112,116,105,111,110,115,46,101,118,
-101,110,116,115,32,111,114,32,123,125,41,32,100,111,13,10,32,32,32,32,
-32,32,32,32,108,111,99,97,108,32,110,97,109,101,32,61,32,101,118,101,
-110,116,46,110,97,109,101,13,10,32,32,32,32,32,32,32,32,102,115,109,
-91,110,97,109,101,93,32,61,32,102,115,109,91,110,97,109,101,93,32,111,
-114,32,99,114,101,97,116,101,95,116,114,97,110,115,105,116,105,111,110,40,
-110,97,109,101,41,13,10,32,32,32,32,32,32,32,32,102,115,109,46,101,
-118,101,110,116,115,91,110,97,109,101,93,32,61,32,102,115,109,46,101,118,
-101,110,116,115,91,110,97,109,101,93,32,111,114,32,123,32,109,97,112,32,
-61,32,123,125,32,125,13,10,32,32,32,32,32,32,32,32,97,100,100,95,
+32,32,102,115,109,46,101,118,101,110,116,115,32,61,32,123,125,13,10,13,
+10,32,32,102,111,114,32,95,44,32,101,118,101,110,116,32,105,110,32,105,
+112,97,105,114,115,40,111,112,116,105,111,110,115,46,101,118,101,110,116,115,
+32,111,114,32,123,125,41,32,100,111,13,10,32,32,32,32,108,111,99,97,
+108,32,110,97,109,101,32,61,32,101,118,101,110,116,46,110,97,109,101,13,
+10,32,32,32,32,102,115,109,91,110,97,109,101,93,32,61,32,102,115,109,
+91,110,97,109,101,93,32,111,114,32,99,114,101,97,116,101,95,116,114,97,
+110,115,105,116,105,111,110,40,110,97,109,101,41,13,10,32,32,32,32,102,
+115,109,46,101,118,101,110,116,115,91,110,97,109,101,93,32,61,32,102,115,
+109,46,101,118,101,110,116,115,91,110,97,109,101,93,32,111,114,32,123,32,
+109,97,112,32,61,32,123,125,32,125,13,10,32,32,32,32,97,100,100,95,
116,111,95,109,97,112,40,102,115,109,46,101,118,101,110,116,115,91,110,97,
-109,101,93,46,109,97,112,44,32,101,118,101,110,116,41,13,10,32,32,32,
-32,101,110,100,13,10,32,32,32,32,13,10,32,32,32,32,102,111,114,32,
-110,97,109,101,44,32,99,97,108,108,98,97,99,107,32,105,110,32,112,97,
-105,114,115,40,111,112,116,105,111,110,115,46,99,97,108,108,98,97,99,107,
-115,32,111,114,32,123,125,41,32,100,111,13,10,32,32,32,32,32,32,32,
-32,102,115,109,91,110,97,109,101,93,32,61,32,99,97,108,108,98,97,99,
-107,13,10,32,32,32,32,101,110,100,13,10,13,10,32,32,32,32,114,101,
-116,117,114,110,32,102,115,109,13,10,101,110,100,13,10,13,10,102,117,110,
-99,116,105,111,110,32,109,97,99,104,105,110,101,58,105,115,40,115,116,97,
-116,101,41,13,10,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,
-46,99,117,114,114,101,110,116,32,61,61,32,115,116,97,116,101,13,10,101,
-110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,109,97,99,104,105,
-110,101,58,99,97,110,40,101,41,13,10,32,32,32,32,108,111,99,97,108,
-32,101,118,101,110,116,32,61,32,115,101,108,102,46,101,118,101,110,116,115,
-91,101,93,13,10,32,32,32,32,108,111,99,97,108,32,116,111,32,61,32,
+109,101,93,46,109,97,112,44,32,101,118,101,110,116,41,13,10,32,32,101,
+110,100,13,10,32,32,13,10,32,32,102,111,114,32,110,97,109,101,44,32,
+99,97,108,108,98,97,99,107,32,105,110,32,112,97,105,114,115,40,111,112,
+116,105,111,110,115,46,99,97,108,108,98,97,99,107,115,32,111,114,32,123,
+125,41,32,100,111,13,10,32,32,32,32,102,115,109,91,110,97,109,101,93,
+32,61,32,99,97,108,108,98,97,99,107,13,10,32,32,101,110,100,13,10,
+13,10,32,32,114,101,116,117,114,110,32,102,115,109,13,10,101,110,100,13,
+10,13,10,102,117,110,99,116,105,111,110,32,109,97,99,104,105,110,101,58,
+105,115,40,115,116,97,116,101,41,13,10,32,32,114,101,116,117,114,110,32,
+115,101,108,102,46,99,117,114,114,101,110,116,32,61,61,32,115,116,97,116,
+101,13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,109,
+97,99,104,105,110,101,58,99,97,110,40,101,41,13,10,32,32,108,111,99,
+97,108,32,101,118,101,110,116,32,61,32,115,101,108,102,46,101,118,101,110,
+116,115,91,101,93,13,10,32,32,108,111,99,97,108,32,116,111,32,61,32,
101,118,101,110,116,32,97,110,100,32,101,118,101,110,116,46,109,97,112,91,
115,101,108,102,46,99,117,114,114,101,110,116,93,32,111,114,32,101,118,101,
-110,116,46,109,97,112,91,39,42,39,93,13,10,32,32,32,32,114,101,116,
-117,114,110,32,116,111,32,126,61,32,110,105,108,44,32,116,111,13,10,101,
-110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,109,97,99,104,105,
-110,101,58,99,97,110,110,111,116,40,101,41,13,10,32,32,32,32,114,101,
-116,117,114,110,32,110,111,116,32,115,101,108,102,58,99,97,110,40,101,41,
-13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,109,97,
-99,104,105,110,101,58,116,111,100,111,116,40,102,105,108,101,110,97,109,101,
-41,13,10,32,32,32,32,108,111,99,97,108,32,100,111,116,102,105,108,101,
-32,61,32,105,111,46,111,112,101,110,40,102,105,108,101,110,97,109,101,44,
-39,119,39,41,13,10,32,32,32,32,100,111,116,102,105,108,101,58,119,114,
-105,116,101,40,39,100,105,103,114,97,112,104,32,123,92,110,39,41,13,10,
-32,32,32,32,108,111,99,97,108,32,116,114,97,110,115,105,116,105,111,110,
-32,61,32,102,117,110,99,116,105,111,110,40,101,118,101,110,116,44,102,114,
-111,109,44,116,111,41,13,10,32,32,32,32,32,32,32,32,100,111,116,102,
-105,108,101,58,119,114,105,116,101,40,115,116,114,105,110,103,46,102,111,114,
-109,97,116,40,39,37,115,32,45,62,32,37,115,32,91,108,97,98,101,108,
-61,37,115,93,59,92,110,39,44,102,114,111,109,44,116,111,44,101,118,101,
-110,116,41,41,13,10,32,32,32,32,101,110,100,13,10,32,32,32,32,102,
-111,114,32,95,44,32,101,118,101,110,116,32,105,110,32,112,97,105,114,115,
-40,115,101,108,102,46,111,112,116,105,111,110,115,46,101,118,101,110,116,115,
-41,32,100,111,13,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,
-101,40,101,118,101,110,116,46,102,114,111,109,41,32,61,61,32,39,116,97,
-98,108,101,39,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,32,
-32,32,32,102,111,114,32,95,44,32,102,114,111,109,32,105,110,32,105,112,
-97,105,114,115,40,101,118,101,110,116,46,102,114,111,109,41,32,100,111,13,
-10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,114,97,
-110,115,105,116,105,111,110,40,101,118,101,110,116,46,110,97,109,101,44,102,
-114,111,109,44,101,118,101,110,116,46,116,111,41,13,10,32,32,32,32,32,
-32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,32,32,
-101,108,115,101,13,10,32,32,32,32,32,32,32,32,32,32,32,32,116,114,
-97,110,115,105,116,105,111,110,40,101,118,101,110,116,46,110,97,109,101,44,
-101,118,101,110,116,46,102,114,111,109,44,101,118,101,110,116,46,116,111,41,
-13,10,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,101,
-110,100,13,10,32,32,32,32,100,111,116,102,105,108,101,58,119,114,105,116,
-101,40,39,125,92,110,39,41,13,10,32,32,32,32,100,111,116,102,105,108,
-101,58,99,108,111,115,101,40,41,13,10,101,110,100,13,10,13,10,102,117,
-110,99,116,105,111,110,32,109,97,99,104,105,110,101,58,116,114,97,110,115,
-105,116,105,111,110,40,101,118,101,110,116,41,13,10,32,32,32,32,105,102,
-32,115,101,108,102,46,99,117,114,114,101,110,116,84,114,97,110,115,105,116,
-105,111,110,105,110,103,69,118,101,110,116,32,61,61,32,101,118,101,110,116,
-32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,114,101,116,117,114,
-110,32,115,101,108,102,91,115,101,108,102,46,99,117,114,114,101,110,116,84,
-114,97,110,115,105,116,105,111,110,105,110,103,69,118,101,110,116,93,40,115,
-101,108,102,41,13,10,32,32,32,32,101,110,100,13,10,101,110,100,13,10,
-13,10,102,117,110,99,116,105,111,110,32,109,97,99,104,105,110,101,58,99,
-97,110,99,101,108,84,114,97,110,115,105,116,105,111,110,40,101,118,101,110,
-116,41,13,10,32,32,32,32,105,102,32,115,101,108,102,46,99,117,114,114,
-101,110,116,84,114,97,110,115,105,116,105,111,110,105,110,103,69,118,101,110,
-116,32,61,61,32,101,118,101,110,116,32,116,104,101,110,13,10,32,32,32,
-32,32,32,32,32,115,101,108,102,46,97,115,121,110,99,83,116,97,116,101,
-32,61,32,78,79,78,69,13,10,32,32,32,32,32,32,32,32,115,101,108,
+110,116,46,109,97,112,91,39,42,39,93,13,10,32,32,114,101,116,117,114,
+110,32,116,111,32,126,61,32,110,105,108,44,32,116,111,13,10,101,110,100,
+13,10,13,10,102,117,110,99,116,105,111,110,32,109,97,99,104,105,110,101,
+58,99,97,110,110,111,116,40,101,41,13,10,32,32,114,101,116,117,114,110,
+32,110,111,116,32,115,101,108,102,58,99,97,110,40,101,41,13,10,101,110,
+100,13,10,13,10,102,117,110,99,116,105,111,110,32,109,97,99,104,105,110,
+101,58,116,111,100,111,116,40,102,105,108,101,110,97,109,101,41,13,10,32,
+32,108,111,99,97,108,32,100,111,116,102,105,108,101,32,61,32,105,111,46,
+111,112,101,110,40,102,105,108,101,110,97,109,101,44,39,119,39,41,13,10,
+32,32,100,111,116,102,105,108,101,58,119,114,105,116,101,40,39,100,105,103,
+114,97,112,104,32,123,92,110,39,41,13,10,32,32,108,111,99,97,108,32,
+116,114,97,110,115,105,116,105,111,110,32,61,32,102,117,110,99,116,105,111,
+110,40,101,118,101,110,116,44,102,114,111,109,44,116,111,41,13,10,32,32,
+32,32,100,111,116,102,105,108,101,58,119,114,105,116,101,40,115,116,114,105,
+110,103,46,102,111,114,109,97,116,40,39,37,115,32,45,62,32,37,115,32,
+91,108,97,98,101,108,61,37,115,93,59,92,110,39,44,102,114,111,109,44,
+116,111,44,101,118,101,110,116,41,41,13,10,32,32,101,110,100,13,10,32,
+32,102,111,114,32,95,44,32,101,118,101,110,116,32,105,110,32,112,97,105,
+114,115,40,115,101,108,102,46,111,112,116,105,111,110,115,46,101,118,101,110,
+116,115,41,32,100,111,13,10,32,32,32,32,105,102,32,116,121,112,101,40,
+101,118,101,110,116,46,102,114,111,109,41,32,61,61,32,39,116,97,98,108,
+101,39,32,116,104,101,110,13,10,32,32,32,32,32,32,102,111,114,32,95,
+44,32,102,114,111,109,32,105,110,32,105,112,97,105,114,115,40,101,118,101,
+110,116,46,102,114,111,109,41,32,100,111,13,10,32,32,32,32,32,32,32,
+32,116,114,97,110,115,105,116,105,111,110,40,101,118,101,110,116,46,110,97,
+109,101,44,102,114,111,109,44,101,118,101,110,116,46,116,111,41,13,10,32,
+32,32,32,32,32,101,110,100,13,10,32,32,32,32,101,108,115,101,13,10,
+32,32,32,32,32,32,116,114,97,110,115,105,116,105,111,110,40,101,118,101,
+110,116,46,110,97,109,101,44,101,118,101,110,116,46,102,114,111,109,44,101,
+118,101,110,116,46,116,111,41,13,10,32,32,32,32,101,110,100,13,10,32,
+32,101,110,100,13,10,32,32,100,111,116,102,105,108,101,58,119,114,105,116,
+101,40,39,125,92,110,39,41,13,10,32,32,100,111,116,102,105,108,101,58,
+99,108,111,115,101,40,41,13,10,101,110,100,13,10,13,10,102,117,110,99,
+116,105,111,110,32,109,97,99,104,105,110,101,58,116,114,97,110,115,105,116,
+105,111,110,40,101,118,101,110,116,41,13,10,32,32,105,102,32,115,101,108,
+102,46,99,117,114,114,101,110,116,84,114,97,110,115,105,116,105,111,110,105,
+110,103,69,118,101,110,116,32,61,61,32,101,118,101,110,116,32,116,104,101,
+110,13,10,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,91,115,
+101,108,102,46,99,117,114,114,101,110,116,84,114,97,110,115,105,116,105,111,
+110,105,110,103,69,118,101,110,116,93,40,115,101,108,102,41,13,10,32,32,
+101,110,100,13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,110,
+32,109,97,99,104,105,110,101,58,99,97,110,99,101,108,84,114,97,110,115,
+105,116,105,111,110,40,101,118,101,110,116,41,13,10,32,32,105,102,32,115,
+101,108,102,46,99,117,114,114,101,110,116,84,114,97,110,115,105,116,105,111,
+110,105,110,103,69,118,101,110,116,32,61,61,32,101,118,101,110,116,32,116,
+104,101,110,13,10,32,32,32,32,115,101,108,102,46,97,115,121,110,99,83,
+116,97,116,101,32,61,32,78,79,78,69,13,10,32,32,32,32,115,101,108,
102,46,99,117,114,114,101,110,116,84,114,97,110,115,105,116,105,111,110,105,
-110,103,69,118,101,110,116,32,61,32,110,105,108,13,10,32,32,32,32,101,
-110,100,13,10,101,110,100,13,10,13,10,109,97,99,104,105,110,101,46,78,
-79,78,69,32,61,32,78,79,78,69,13,10,109,97,99,104,105,110,101,46,
-65,83,89,78,67,32,61,32,65,83,89,78,67,13,10,13,10,45,45,45,
+110,103,69,118,101,110,116,32,61,32,110,105,108,13,10,32,32,101,110,100,
+13,10,101,110,100,13,10,13,10,109,97,99,104,105,110,101,46,78,79,78,
+69,32,61,32,78,79,78,69,13,10,109,97,99,104,105,110,101,46,65,83,
+89,78,67,32,61,32,65,83,89,78,67,13,10,13,10,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,13,10,45,45,32,69,120,112,111,
-114,116,32,116,111,32,74,105,110,46,32,13,10,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,13,10,45,45,32,69,120,112,111,114,116,
+32,116,111,32,74,105,110,46,32,13,10,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,13,10,13,10,106,105,110,46,97,105,46,110,101,
-119,83,116,97,116,101,77,97,99,104,105,110,101,32,61,32,109,97,99,104,
-105,110,101,46,99,114,101,97,116,101,13,10,0
+45,45,45,45,45,13,10,13,10,106,105,110,46,97,105,46,110,101,119,83,
+116,97,116,101,77,97,99,104,105,110,101,32,61,32,109,97,99,104,105,110,
+101,46,99,114,101,97,116,101,13,10,0
};
diff --git a/src/libjin-lua/scripts/app.lua b/src/libjin-lua/scripts/app.lua
index 6ea9ee1..bd82d72 100644
--- a/src/libjin-lua/scripts/app.lua
+++ b/src/libjin-lua/scripts/app.lua
@@ -8,51 +8,51 @@ jin.filesystem.mount(jin.cwd)
jin.config = {}
if jin.filesystem.exist("config.lua") then
- xpcall(function()jin.config = require "config" end, function()end)
+ xpcall(function()jin.config = require "config" end, function()end)
end
-jin.config.width = jin.config.width or 580
-jin.config.height = jin.config.height or 450
-jin.config.vsync = jin.config.vsync or true
-jin.config.title = jin.config.title or ("jin v" .. jin.version)
+jin.config.width = jin.config.width or 580
+jin.config.height = jin.config.height or 450
+jin.config.vsync = jin.config.vsync or true
+jin.config.title = jin.config.title or ("jin v" .. jin.version)
jin.config.resizable = jin.config.resizable or false
jin.config.fullscreen = jin.config.fullscreen or false
-jin.config.fps = jin.config.fps or 60
-jin.config.icon = jin.config.icon or ""
+jin.config.fps = jin.config.fps or 60
+jin.config.icon = jin.config.icon or ""
-------------------------------------------------------------------------
-- Default game loop
-------------------------------------------------------------------------
local function call(func, ...)
- if func then
- return func(...)
- end
+ if func then
+ return func(...)
+ end
end
function jin.core.run()
- jin.graphics.reset()
- call(jin.core.onLoad)
- local dt = 0
- while jin.core.running() do
- for _, e in pairs(jin.event.poll()) do
- if e.type == "KeyDown" then
- jin.keyboard.set(e.key, true)
- elseif e.type == "KeyUp" then
- jin.keyboard.set(e.key, false)
- end
- call(jin.core.onEvent, e)
- end
- jin.time.step()
- dt = jin.time.getDelta()
- call(jin.core.onUpdate, dt)
- -- Screen is always cleared with full black
- jin.graphics.setClearColor(0, 0, 0, 0xff)
- jin.graphics.clear()
- call(jin.core.onDraw)
- jin.graphics.present()
- jin.time.sleep(0.001)
+ jin.graphics.reset()
+ call(jin.core.onLoad)
+ local dt = 0
+ while jin.core.running() do
+ for _, e in pairs(jin.event.poll()) do
+ if e.type == "KeyDown" then
+ jin.keyboard.set(e.key, true)
+ elseif e.type == "KeyUp" then
+ jin.keyboard.set(e.key, false)
+ end
+ call(jin.core.onEvent, e)
end
- call(jin.core.onQuit)
+ jin.time.step()
+ dt = jin.time.getDelta()
+ call(jin.core.onUpdate, dt)
+ -- Screen is always cleared with full black
+ jin.graphics.setClearColor(0, 0, 0, 0xff)
+ jin.graphics.clear()
+ call(jin.core.onDraw)
+ jin.graphics.present()
+ jin.time.sleep(0.001)
+ end
+ call(jin.core.onQuit)
end
-------------------------------------------------------------------------
@@ -61,51 +61,51 @@ end
-- Display error message.
local function onError(msg)
- local err = "Error occurred:\n" .. msg .. "\n" .. debug.traceback()
- jin.log.error(err)
- jin.graphics.showWindow()
- jin.graphics.reset()
- jin.graphics.setClearColor(100, 100, 100, 255)
- jin.graphics.clear()
- jin.graphics.print(err, 5, 5)
- jin.graphics.present()
- while jin.core.running() do
- for _, e in pairs(jin.event.poll()) do
- if e.type == "Quit" then
- jin.core.stop()
- end
- end
- jin.time.sleep(0.001)
+ local err = "Error occurred:\n" .. msg .. "\n" .. debug.traceback()
+ jin.log.error(err)
+ jin.graphics.showWindow()
+ jin.graphics.reset()
+ jin.graphics.setClearColor(100, 100, 100, 255)
+ jin.graphics.clear()
+ jin.graphics.print(err, 5, 5)
+ jin.graphics.present()
+ while jin.core.running() do
+ for _, e in pairs(jin.event.poll()) do
+ if e.type == "Quit" then
+ jin.core.stop()
+ end
end
+ jin.time.sleep(0.001)
+ end
end
-- No game screen.
local function noGame()
- jin.graphics.showWindow()
- jin.graphics.reset()
- jin.graphics.setClearColor(100, 100, 100, 255)
- jin.graphics.clear()
- jin.graphics.print("No Game", 5, 5)
- jin.graphics.present()
- while jin.core.running() do
- for _, e in pairs(jin.event.poll()) do
- if e.type == "Quit" then
- jin.core.stop()
- end
- end
- jin.time.sleep(0.001)
+ jin.graphics.showWindow()
+ jin.graphics.reset()
+ jin.graphics.setClearColor(100, 100, 100, 255)
+ jin.graphics.clear()
+ jin.graphics.print("No Game", 5, 5)
+ jin.graphics.present()
+ while jin.core.running() do
+ for _, e in pairs(jin.event.poll()) do
+ if e.type == "Quit" then
+ jin.core.stop()
+ end
end
+ jin.time.sleep(0.001)
+ end
end
local function boot()
- if jin.filesystem.exist("main.lua") then
- call(function()
- require"main"
- jin.core.run()
- end)
- else
- noGame()
- end
+ if jin.filesystem.exist("main.lua") then
+ call(function()
+ require"main"
+ jin.core.run()
+ end)
+ else
+ noGame()
+ end
end
-------------------------------------------------------------------------
diff --git a/src/libjin-lua/scripts/app.lua.h b/src/libjin-lua/scripts/app.lua.h
index e8aca28..8401416 100644
--- a/src/libjin-lua/scripts/app.lua.h
+++ b/src/libjin-lua/scripts/app.lua.h
@@ -14,21 +14,20 @@ static char app_lua[] = {
45,45,13,10,13,10,106,105,110,46,99,111,110,102,105,103,32,32,61,32,
123,125,32,13,10,105,102,32,106,105,110,46,102,105,108,101,115,121,115,116,
101,109,46,101,120,105,115,116,40,34,99,111,110,102,105,103,46,108,117,97,
-34,41,32,116,104,101,110,32,13,10,32,32,32,32,120,112,99,97,108,108,
-40,102,117,110,99,116,105,111,110,40,41,106,105,110,46,99,111,110,102,105,
-103,32,61,32,114,101,113,117,105,114,101,32,34,99,111,110,102,105,103,34,
-32,101,110,100,44,32,102,117,110,99,116,105,111,110,40,41,101,110,100,41,
-32,32,32,32,13,10,101,110,100,13,10,106,105,110,46,99,111,110,102,105,
-103,46,119,105,100,116,104,32,32,32,32,32,32,61,32,106,105,110,46,99,
-111,110,102,105,103,46,119,105,100,116,104,32,32,32,32,32,32,111,114,32,
-53,56,48,32,13,10,106,105,110,46,99,111,110,102,105,103,46,104,101,105,
-103,104,116,32,32,32,32,32,61,32,106,105,110,46,99,111,110,102,105,103,
-46,104,101,105,103,104,116,32,32,32,32,32,111,114,32,52,53,48,32,13,
-10,106,105,110,46,99,111,110,102,105,103,46,118,115,121,110,99,32,32,32,
-32,32,32,61,32,106,105,110,46,99,111,110,102,105,103,46,118,115,121,110,
-99,32,32,32,32,32,32,111,114,32,116,114,117,101,13,10,106,105,110,46,
-99,111,110,102,105,103,46,116,105,116,108,101,32,32,32,32,32,32,61,32,
+34,41,32,116,104,101,110,32,13,10,32,32,120,112,99,97,108,108,40,102,
+117,110,99,116,105,111,110,40,41,106,105,110,46,99,111,110,102,105,103,32,
+61,32,114,101,113,117,105,114,101,32,34,99,111,110,102,105,103,34,32,101,
+110,100,44,32,102,117,110,99,116,105,111,110,40,41,101,110,100,41,32,32,
+13,10,101,110,100,13,10,106,105,110,46,99,111,110,102,105,103,46,119,105,
+100,116,104,32,32,32,32,61,32,106,105,110,46,99,111,110,102,105,103,46,
+119,105,100,116,104,32,32,32,32,111,114,32,53,56,48,32,13,10,106,105,
+110,46,99,111,110,102,105,103,46,104,101,105,103,104,116,32,32,32,61,32,
+106,105,110,46,99,111,110,102,105,103,46,104,101,105,103,104,116,32,32,32,
+111,114,32,52,53,48,32,13,10,106,105,110,46,99,111,110,102,105,103,46,
+118,115,121,110,99,32,32,32,32,61,32,106,105,110,46,99,111,110,102,105,
+103,46,118,115,121,110,99,32,32,32,32,111,114,32,116,114,117,101,13,10,
106,105,110,46,99,111,110,102,105,103,46,116,105,116,108,101,32,32,32,32,
+61,32,106,105,110,46,99,111,110,102,105,103,46,116,105,116,108,101,32,32,
32,32,111,114,32,40,34,106,105,110,32,118,34,32,46,46,32,106,105,110,
46,118,101,114,115,105,111,110,41,13,10,106,105,110,46,99,111,110,102,105,
103,46,114,101,115,105,122,97,98,108,101,32,32,61,32,106,105,110,46,99,
@@ -37,63 +36,57 @@ static char app_lua[] = {
117,108,108,115,99,114,101,101,110,32,61,32,106,105,110,46,99,111,110,102,
105,103,46,102,117,108,108,115,99,114,101,101,110,32,111,114,32,102,97,108,
115,101,13,10,106,105,110,46,99,111,110,102,105,103,46,102,112,115,32,32,
-32,32,32,32,32,32,61,32,106,105,110,46,99,111,110,102,105,103,46,102,
-112,115,32,32,32,32,32,32,32,32,111,114,32,54,48,13,10,106,105,110,
-46,99,111,110,102,105,103,46,105,99,111,110,32,32,32,32,32,32,32,61,
-32,106,105,110,46,99,111,110,102,105,103,46,105,99,111,110,32,32,32,32,
-32,32,32,111,114,32,34,34,13,10,13,10,45,45,45,45,45,45,45,45,
+32,32,61,32,106,105,110,46,99,111,110,102,105,103,46,102,112,115,32,32,
+32,32,111,114,32,54,48,13,10,106,105,110,46,99,111,110,102,105,103,46,
+105,99,111,110,32,32,32,32,32,61,32,106,105,110,46,99,111,110,102,105,
+103,46,105,99,111,110,32,32,32,32,32,111,114,32,34,34,13,10,13,10,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,13,10,45,45,32,68,101,102,97,117,108,116,32,103,97,
-109,101,32,108,111,111,112,13,10,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,45,45,32,68,101,
+102,97,117,108,116,32,103,97,109,101,32,108,111,111,112,13,10,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,
-32,99,97,108,108,40,102,117,110,99,44,32,46,46,46,41,13,10,32,32,
-32,32,105,102,32,102,117,110,99,32,116,104,101,110,32,13,10,32,32,32,
-32,32,32,32,32,114,101,116,117,114,110,32,102,117,110,99,40,46,46,46,
-41,13,10,32,32,32,32,101,110,100,13,10,101,110,100,13,10,13,10,102,
+45,45,45,45,45,45,45,45,45,45,13,10,13,10,108,111,99,97,108,32,
+102,117,110,99,116,105,111,110,32,99,97,108,108,40,102,117,110,99,44,32,
+46,46,46,41,13,10,32,32,105,102,32,102,117,110,99,32,116,104,101,110,
+32,13,10,32,32,32,32,114,101,116,117,114,110,32,102,117,110,99,40,46,
+46,46,41,13,10,32,32,101,110,100,13,10,101,110,100,13,10,13,10,102,
117,110,99,116,105,111,110,32,106,105,110,46,99,111,114,101,46,114,117,110,
-40,41,13,10,32,32,32,32,106,105,110,46,103,114,97,112,104,105,99,115,
-46,114,101,115,101,116,40,41,13,10,32,32,32,32,99,97,108,108,40,106,
-105,110,46,99,111,114,101,46,111,110,76,111,97,100,41,13,10,32,32,32,
-32,108,111,99,97,108,32,100,116,32,61,32,48,13,10,32,32,32,32,119,
-104,105,108,101,32,106,105,110,46,99,111,114,101,46,114,117,110,110,105,110,
-103,40,41,32,100,111,13,10,32,32,32,32,32,32,32,32,102,111,114,32,
-95,44,32,101,32,105,110,32,112,97,105,114,115,40,106,105,110,46,101,118,
-101,110,116,46,112,111,108,108,40,41,41,32,100,111,32,13,10,32,32,32,
-32,32,32,32,32,32,32,32,32,105,102,32,101,46,116,121,112,101,32,61,
-61,32,34,75,101,121,68,111,119,110,34,32,116,104,101,110,32,13,10,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,106,105,110,46,107,
-101,121,98,111,97,114,100,46,115,101,116,40,101,46,107,101,121,44,32,116,
-114,117,101,41,32,13,10,32,32,32,32,32,32,32,32,32,32,32,32,101,
-108,115,101,105,102,32,101,46,116,121,112,101,32,61,61,32,34,75,101,121,
-85,112,34,32,116,104,101,110,32,13,10,32,32,32,32,32,32,32,32,32,
+40,41,13,10,32,32,106,105,110,46,103,114,97,112,104,105,99,115,46,114,
+101,115,101,116,40,41,13,10,32,32,99,97,108,108,40,106,105,110,46,99,
+111,114,101,46,111,110,76,111,97,100,41,13,10,32,32,108,111,99,97,108,
+32,100,116,32,61,32,48,13,10,32,32,119,104,105,108,101,32,106,105,110,
+46,99,111,114,101,46,114,117,110,110,105,110,103,40,41,32,100,111,13,10,
+32,32,32,32,102,111,114,32,95,44,32,101,32,105,110,32,112,97,105,114,
+115,40,106,105,110,46,101,118,101,110,116,46,112,111,108,108,40,41,41,32,
+100,111,32,13,10,32,32,32,32,32,32,105,102,32,101,46,116,121,112,101,
+32,61,61,32,34,75,101,121,68,111,119,110,34,32,116,104,101,110,32,13,
+10,32,32,32,32,32,32,32,32,106,105,110,46,107,101,121,98,111,97,114,
+100,46,115,101,116,40,101,46,107,101,121,44,32,116,114,117,101,41,32,13,
+10,32,32,32,32,32,32,101,108,115,101,105,102,32,101,46,116,121,112,101,
+32,61,61,32,34,75,101,121,85,112,34,32,116,104,101,110,32,13,10,32,
32,32,32,32,32,32,32,106,105,110,46,107,101,121,98,111,97,114,100,46,
115,101,116,40,101,46,107,101,121,44,32,102,97,108,115,101,41,13,10,32,
-32,32,32,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,
-32,32,32,32,32,32,32,32,99,97,108,108,40,106,105,110,46,99,111,114,
-101,46,111,110,69,118,101,110,116,44,32,101,41,13,10,32,32,32,32,32,
-32,32,32,101,110,100,13,10,32,32,32,32,32,32,32,32,106,105,110,46,
-116,105,109,101,46,115,116,101,112,40,41,13,10,32,32,32,32,32,32,32,
-32,100,116,32,61,32,106,105,110,46,116,105,109,101,46,103,101,116,68,101,
-108,116,97,40,41,13,10,32,32,32,32,32,32,32,32,99,97,108,108,40,
-106,105,110,46,99,111,114,101,46,111,110,85,112,100,97,116,101,44,32,100,
-116,41,13,10,32,32,32,32,32,32,32,32,45,45,32,83,99,114,101,101,
-110,32,105,115,32,97,108,119,97,121,115,32,99,108,101,97,114,101,100,32,
-119,105,116,104,32,102,117,108,108,32,98,108,97,99,107,13,10,32,32,32,
-32,32,32,32,32,106,105,110,46,103,114,97,112,104,105,99,115,46,115,101,
-116,67,108,101,97,114,67,111,108,111,114,40,48,44,32,48,44,32,48,44,
-32,48,120,102,102,41,13,10,32,32,32,32,32,32,32,32,106,105,110,46,
+32,32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,99,97,108,108,
+40,106,105,110,46,99,111,114,101,46,111,110,69,118,101,110,116,44,32,101,
+41,13,10,32,32,32,32,101,110,100,13,10,32,32,32,32,106,105,110,46,
+116,105,109,101,46,115,116,101,112,40,41,13,10,32,32,32,32,100,116,32,
+61,32,106,105,110,46,116,105,109,101,46,103,101,116,68,101,108,116,97,40,
+41,13,10,32,32,32,32,99,97,108,108,40,106,105,110,46,99,111,114,101,
+46,111,110,85,112,100,97,116,101,44,32,100,116,41,13,10,32,32,32,32,
+45,45,32,83,99,114,101,101,110,32,105,115,32,97,108,119,97,121,115,32,
+99,108,101,97,114,101,100,32,119,105,116,104,32,102,117,108,108,32,98,108,
+97,99,107,13,10,32,32,32,32,106,105,110,46,103,114,97,112,104,105,99,
+115,46,115,101,116,67,108,101,97,114,67,111,108,111,114,40,48,44,32,48,
+44,32,48,44,32,48,120,102,102,41,13,10,32,32,32,32,106,105,110,46,
103,114,97,112,104,105,99,115,46,99,108,101,97,114,40,41,32,32,32,32,
-32,32,32,32,13,10,32,32,32,32,32,32,32,32,99,97,108,108,40,106,
-105,110,46,99,111,114,101,46,111,110,68,114,97,119,41,13,10,32,32,32,
-32,32,32,32,32,106,105,110,46,103,114,97,112,104,105,99,115,46,112,114,
-101,115,101,110,116,40,41,13,10,32,32,32,32,32,32,32,32,106,105,110,
-46,116,105,109,101,46,115,108,101,101,112,40,48,46,48,48,49,41,13,10,
-32,32,32,32,101,110,100,13,10,32,32,32,32,99,97,108,108,40,106,105,
+13,10,32,32,32,32,99,97,108,108,40,106,105,110,46,99,111,114,101,46,
+111,110,68,114,97,119,41,13,10,32,32,32,32,106,105,110,46,103,114,97,
+112,104,105,99,115,46,112,114,101,115,101,110,116,40,41,13,10,32,32,32,
+32,106,105,110,46,116,105,109,101,46,115,108,101,101,112,40,48,46,48,48,
+49,41,13,10,32,32,101,110,100,13,10,32,32,99,97,108,108,40,106,105,
110,46,99,111,114,101,46,111,110,81,117,105,116,41,13,10,101,110,100,13,
10,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
@@ -106,108 +99,102 @@ static char app_lua[] = {
45,45,45,45,45,13,10,13,10,45,45,32,68,105,115,112,108,97,121,32,
101,114,114,111,114,32,109,101,115,115,97,103,101,46,13,10,108,111,99,97,
108,32,102,117,110,99,116,105,111,110,32,111,110,69,114,114,111,114,40,109,
-115,103,41,32,13,10,32,32,32,32,108,111,99,97,108,32,101,114,114,32,
-61,32,34,69,114,114,111,114,32,111,99,99,117,114,114,101,100,58,92,110,
-34,32,46,46,32,109,115,103,32,46,46,32,34,92,110,34,32,46,46,32,
-100,101,98,117,103,46,116,114,97,99,101,98,97,99,107,40,41,13,10,32,
-32,32,32,106,105,110,46,108,111,103,46,101,114,114,111,114,40,101,114,114,
-41,13,10,32,32,32,32,106,105,110,46,103,114,97,112,104,105,99,115,46,
-115,104,111,119,87,105,110,100,111,119,40,41,13,10,32,32,32,32,106,105,
-110,46,103,114,97,112,104,105,99,115,46,114,101,115,101,116,40,41,13,10,
-32,32,32,32,106,105,110,46,103,114,97,112,104,105,99,115,46,115,101,116,
-67,108,101,97,114,67,111,108,111,114,40,49,48,48,44,32,49,48,48,44,
-32,49,48,48,44,32,50,53,53,41,13,10,32,32,32,32,106,105,110,46,
-103,114,97,112,104,105,99,115,46,99,108,101,97,114,40,41,13,10,32,32,
-32,32,106,105,110,46,103,114,97,112,104,105,99,115,46,112,114,105,110,116,
-40,101,114,114,44,32,53,44,32,53,41,13,10,32,32,32,32,106,105,110,
-46,103,114,97,112,104,105,99,115,46,112,114,101,115,101,110,116,40,41,13,
-10,32,32,32,32,119,104,105,108,101,32,106,105,110,46,99,111,114,101,46,
-114,117,110,110,105,110,103,40,41,32,100,111,32,13,10,32,32,32,32,32,
-32,32,32,102,111,114,32,95,44,32,101,32,105,110,32,112,97,105,114,115,
-40,106,105,110,46,101,118,101,110,116,46,112,111,108,108,40,41,41,32,100,
-111,32,13,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,101,
-46,116,121,112,101,32,61,61,32,34,81,117,105,116,34,32,116,104,101,110,
-32,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,106,
-105,110,46,99,111,114,101,46,115,116,111,112,40,41,13,10,32,32,32,32,
-32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,32,
-32,101,110,100,13,10,32,32,32,32,32,32,32,32,106,105,110,46,116,105,
-109,101,46,115,108,101,101,112,40,48,46,48,48,49,41,13,10,32,32,32,
-32,101,110,100,13,10,101,110,100,13,10,13,10,45,45,32,78,111,32,103,
-97,109,101,32,115,99,114,101,101,110,46,13,10,108,111,99,97,108,32,102,
-117,110,99,116,105,111,110,32,110,111,71,97,109,101,40,41,13,10,32,32,
-32,32,106,105,110,46,103,114,97,112,104,105,99,115,46,115,104,111,119,87,
-105,110,100,111,119,40,41,13,10,32,32,32,32,106,105,110,46,103,114,97,
-112,104,105,99,115,46,114,101,115,101,116,40,41,13,10,32,32,32,32,106,
-105,110,46,103,114,97,112,104,105,99,115,46,115,101,116,67,108,101,97,114,
-67,111,108,111,114,40,49,48,48,44,32,49,48,48,44,32,49,48,48,44,
-32,50,53,53,41,13,10,32,32,32,32,106,105,110,46,103,114,97,112,104,
-105,99,115,46,99,108,101,97,114,40,41,13,10,32,32,32,32,106,105,110,
-46,103,114,97,112,104,105,99,115,46,112,114,105,110,116,40,34,78,111,32,
-71,97,109,101,34,44,32,53,44,32,53,41,32,13,10,32,32,32,32,106,
-105,110,46,103,114,97,112,104,105,99,115,46,112,114,101,115,101,110,116,40,
-41,13,10,32,32,32,32,119,104,105,108,101,32,106,105,110,46,99,111,114,
+115,103,41,32,13,10,32,32,108,111,99,97,108,32,101,114,114,32,61,32,
+34,69,114,114,111,114,32,111,99,99,117,114,114,101,100,58,92,110,34,32,
+46,46,32,109,115,103,32,46,46,32,34,92,110,34,32,46,46,32,100,101,
+98,117,103,46,116,114,97,99,101,98,97,99,107,40,41,13,10,32,32,106,
+105,110,46,108,111,103,46,101,114,114,111,114,40,101,114,114,41,13,10,32,
+32,106,105,110,46,103,114,97,112,104,105,99,115,46,115,104,111,119,87,105,
+110,100,111,119,40,41,13,10,32,32,106,105,110,46,103,114,97,112,104,105,
+99,115,46,114,101,115,101,116,40,41,13,10,32,32,106,105,110,46,103,114,
+97,112,104,105,99,115,46,115,101,116,67,108,101,97,114,67,111,108,111,114,
+40,49,48,48,44,32,49,48,48,44,32,49,48,48,44,32,50,53,53,41,
+13,10,32,32,106,105,110,46,103,114,97,112,104,105,99,115,46,99,108,101,
+97,114,40,41,13,10,32,32,106,105,110,46,103,114,97,112,104,105,99,115,
+46,112,114,105,110,116,40,101,114,114,44,32,53,44,32,53,41,13,10,32,
+32,106,105,110,46,103,114,97,112,104,105,99,115,46,112,114,101,115,101,110,
+116,40,41,13,10,32,32,119,104,105,108,101,32,106,105,110,46,99,111,114,
101,46,114,117,110,110,105,110,103,40,41,32,100,111,32,13,10,32,32,32,
-32,32,32,32,32,102,111,114,32,95,44,32,101,32,105,110,32,112,97,105,
-114,115,40,106,105,110,46,101,118,101,110,116,46,112,111,108,108,40,41,41,
-32,100,111,32,13,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,
-32,101,46,116,121,112,101,32,61,61,32,34,81,117,105,116,34,32,116,104,
-101,110,32,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-32,106,105,110,46,99,111,114,101,46,115,116,111,112,40,41,13,10,32,32,
-32,32,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,32,
-32,32,32,101,110,100,13,10,32,32,32,32,32,32,32,32,106,105,110,46,
-116,105,109,101,46,115,108,101,101,112,40,48,46,48,48,49,41,13,10,32,
-32,32,32,101,110,100,13,10,101,110,100,13,10,13,10,108,111,99,97,108,
+32,102,111,114,32,95,44,32,101,32,105,110,32,112,97,105,114,115,40,106,
+105,110,46,101,118,101,110,116,46,112,111,108,108,40,41,41,32,100,111,32,
+13,10,32,32,32,32,32,32,105,102,32,101,46,116,121,112,101,32,61,61,
+32,34,81,117,105,116,34,32,116,104,101,110,32,13,10,32,32,32,32,32,
+32,32,32,106,105,110,46,99,111,114,101,46,115,116,111,112,40,41,13,10,
+32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,101,110,100,13,10,
+32,32,32,32,106,105,110,46,116,105,109,101,46,115,108,101,101,112,40,48,
+46,48,48,49,41,13,10,32,32,101,110,100,13,10,101,110,100,13,10,13,
+10,45,45,32,78,111,32,103,97,109,101,32,115,99,114,101,101,110,46,13,
+10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,110,111,71,97,
+109,101,40,41,13,10,32,32,106,105,110,46,103,114,97,112,104,105,99,115,
+46,115,104,111,119,87,105,110,100,111,119,40,41,13,10,32,32,106,105,110,
+46,103,114,97,112,104,105,99,115,46,114,101,115,101,116,40,41,13,10,32,
+32,106,105,110,46,103,114,97,112,104,105,99,115,46,115,101,116,67,108,101,
+97,114,67,111,108,111,114,40,49,48,48,44,32,49,48,48,44,32,49,48,
+48,44,32,50,53,53,41,13,10,32,32,106,105,110,46,103,114,97,112,104,
+105,99,115,46,99,108,101,97,114,40,41,13,10,32,32,106,105,110,46,103,
+114,97,112,104,105,99,115,46,112,114,105,110,116,40,34,78,111,32,71,97,
+109,101,34,44,32,53,44,32,53,41,32,13,10,32,32,106,105,110,46,103,
+114,97,112,104,105,99,115,46,112,114,101,115,101,110,116,40,41,13,10,32,
+32,119,104,105,108,101,32,106,105,110,46,99,111,114,101,46,114,117,110,110,
+105,110,103,40,41,32,100,111,32,13,10,32,32,32,32,102,111,114,32,95,
+44,32,101,32,105,110,32,112,97,105,114,115,40,106,105,110,46,101,118,101,
+110,116,46,112,111,108,108,40,41,41,32,100,111,32,13,10,32,32,32,32,
+32,32,105,102,32,101,46,116,121,112,101,32,61,61,32,34,81,117,105,116,
+34,32,116,104,101,110,32,13,10,32,32,32,32,32,32,32,32,106,105,110,
+46,99,111,114,101,46,115,116,111,112,40,41,13,10,32,32,32,32,32,32,
+101,110,100,13,10,32,32,32,32,101,110,100,13,10,32,32,32,32,106,105,
+110,46,116,105,109,101,46,115,108,101,101,112,40,48,46,48,48,49,41,13,
+10,32,32,101,110,100,13,10,101,110,100,13,10,13,10,108,111,99,97,108,
32,102,117,110,99,116,105,111,110,32,98,111,111,116,40,41,32,13,10,32,
-32,32,32,105,102,32,106,105,110,46,102,105,108,101,115,121,115,116,101,109,
-46,101,120,105,115,116,40,34,109,97,105,110,46,108,117,97,34,41,32,116,
-104,101,110,32,13,10,32,32,32,32,32,32,32,32,99,97,108,108,40,102,
-117,110,99,116,105,111,110,40,41,32,13,10,32,32,32,32,32,32,32,32,
-32,32,32,32,114,101,113,117,105,114,101,34,109,97,105,110,34,32,13,10,
-32,32,32,32,32,32,32,32,32,32,32,32,106,105,110,46,99,111,114,101,
-46,114,117,110,40,41,13,10,32,32,32,32,32,32,32,32,101,110,100,41,
-13,10,32,32,32,32,101,108,115,101,13,10,32,32,32,32,32,32,32,32,
-110,111,71,97,109,101,40,41,13,10,32,32,32,32,101,110,100,13,10,101,
-110,100,13,10,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+32,105,102,32,106,105,110,46,102,105,108,101,115,121,115,116,101,109,46,101,
+120,105,115,116,40,34,109,97,105,110,46,108,117,97,34,41,32,116,104,101,
+110,32,13,10,32,32,32,32,99,97,108,108,40,102,117,110,99,116,105,111,
+110,40,41,32,13,10,32,32,32,32,32,32,114,101,113,117,105,114,101,34,
+109,97,105,110,34,32,13,10,32,32,32,32,32,32,106,105,110,46,99,111,
+114,101,46,114,117,110,40,41,13,10,32,32,32,32,101,110,100,41,13,10,
+32,32,101,108,115,101,13,10,32,32,32,32,110,111,71,97,109,101,40,41,
+13,10,32,32,101,110,100,13,10,101,110,100,13,10,13,10,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,
-10,45,45,32,73,110,105,116,105,97,108,105,122,101,32,115,117,98,32,115,
-121,115,116,101,109,115,13,10,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,13,10,45,45,32,73,110,105,116,105,97,
+108,105,122,101,32,115,117,98,32,115,121,115,116,101,109,115,13,10,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,13,10,13,10,106,105,110,46,97,117,100,105,111,46,105,110,105,116,40,
-41,13,10,13,10,106,105,110,46,103,114,97,112,104,105,99,115,46,105,110,
-105,116,40,106,105,110,46,99,111,110,102,105,103,41,13,10,13,10,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,13,10,13,10,106,105,110,46,97,
+117,100,105,111,46,105,110,105,116,40,41,13,10,13,10,106,105,110,46,103,
+114,97,112,104,105,99,115,46,105,110,105,116,40,106,105,110,46,99,111,110,
+102,105,103,41,13,10,13,10,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,13,10,45,45,32,83,116,97,114,
-116,32,103,97,109,101,13,10,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,13,10,45,45,32,83,116,97,114,116,32,103,97,109,101,13,10,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,13,10,13,10,120,112,99,97,108,108,40,98,111,111,116,44,32,111,110,
-69,114,114,111,114,41,13,10,13,10,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,13,10,13,10,120,112,99,97,108,
+108,40,98,111,111,116,44,32,111,110,69,114,114,111,114,41,13,10,13,10,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,13,10,45,45,32,68,101,115,116,114,111,121,32,115,117,98,45,
-115,121,115,116,101,109,115,13,10,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,45,45,32,68,101,
+115,116,114,111,121,32,115,117,98,45,115,121,115,116,101,109,115,13,10,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,13,10,13,10,106,105,110,46,103,114,97,112,104,105,99,115,46,100,
-101,115,116,114,111,121,40,41,13,10,13,10,106,105,110,46,97,117,100,105,
-111,46,100,101,115,116,114,111,121,40,41,13,10,13,10,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,13,10,13,10,106,105,110,46,
+103,114,97,112,104,105,99,115,46,100,101,115,116,114,111,121,40,41,13,10,
+13,10,106,105,110,46,97,117,100,105,111,46,100,101,115,116,114,111,121,40,
+41,13,10,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,13,10,45,45,32,81,117,105,116,32,103,97,
-109,101,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,
+45,45,32,81,117,105,116,32,103,97,109,101,13,10,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,13,
-10,106,105,110,46,99,111,114,101,46,113,117,105,116,40,41,13,10,0
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,13,10,13,10,106,105,110,46,99,111,114,101,46,
+113,117,105,116,40,41,13,10,0
};
diff --git a/src/libjin-lua/scripts/graphics/graphics.lua b/src/libjin-lua/scripts/graphics/graphics.lua
index 3abb64d..9307083 100644
--- a/src/libjin-lua/scripts/graphics/graphics.lua
+++ b/src/libjin-lua/scripts/graphics/graphics.lua
@@ -4,42 +4,42 @@ jin.graphics = jin.graphics or {}
local jg = jin.graphics
jg.RenderMode = {
- FILL = 1,
- LINE = 2,
+ FILL = 1,
+ LINE = 2,
}
jg.SpriteOrigin = {
- TOPLEFT = 0,
- TOPCENTER = 1,
- TOPRIGHT = 2,
- MIDDLELEFT = 3,
- MIDDLECENTER = 4,
- MIDDLERIGHT = 5,
- BOTTOMLEFT = 6,
- BOTTOMCENTER = 7,
- BOTTOMRIGHT = 8
+ TOPLEFT = 0,
+ TOPCENTER = 1,
+ TOPRIGHT = 2,
+ MIDDLELEFT = 3,
+ MIDDLECENTER = 4,
+ MIDDLERIGHT = 5,
+ BOTTOMLEFT = 6,
+ BOTTOMCENTER = 7,
+ BOTTOMRIGHT = 8
}
jg.SpriteMode = {
- SINGLE = 1,
- RANDOM = 2,
- ANIMATED = 3
+ SINGLE = 1,
+ RANDOM = 2,
+ ANIMATED = 3
}
jg.BlendMode = {
- DEFAULT = 1,
- ALPHA = 1,
- ADDITIVE = 2,
- PREMULTIPLIEDALPHA = 3
+ DEFAULT = 1,
+ ALPHA = 1,
+ ADDITIVE = 2,
+ PREMULTIPLIEDALPHA = 3
}
-- Built in shaders.
jg.Shaders = nil
local function compileBuiltInShaders()
- if jg.Shaders ~= nil then
- return
- end
- jg.Shaders = {}
+ if jg.Shaders ~= nil then
+ return
+ end
+ jg.Shaders = {}
jg.Shaders.Font = jg.newShader[[
#VERTEX_SHADER
Vertex vert(Vertex v)
@@ -96,23 +96,23 @@ local function compileBuiltInShaders()
}
#END_FRAGMENT_SHADER
]]
- jg.Shaders.Shape = jg.newShader[[
- #VERTEX_SHADER
- Vertex vert(Vertex v)
- {
- return v;
- }
- #END_VERTEX_SHADER
- #FRAGMENT_SHADER
- Color frag(Color col, Texture tex, Vertex v)
- {
- return col;
- }
- #END_FRAGMENT_SHADER
- ]]
- jg.Shaders.Mesh = jg.newShader[[
- #VERTEX_SHADER
- in Vec4 color;
+ jg.Shaders.Shape = jg.newShader[[
+ #VERTEX_SHADER
+ Vertex vert(Vertex v)
+ {
+ return v;
+ }
+ #END_VERTEX_SHADER
+ #FRAGMENT_SHADER
+ Color frag(Color col, Texture tex, Vertex v)
+ {
+ return col;
+ }
+ #END_FRAGMENT_SHADER
+ ]]
+ jg.Shaders.Mesh = jg.newShader[[
+ #VERTEX_SHADER
+ in Vec4 color;
Vertex vert(Vertex v)
{
return v;
@@ -124,7 +124,7 @@ local function compileBuiltInShaders()
return col * texel(tex, v.uv) * v.color;
}
#END_FRAGMENT_SHADER
- ]]
+ ]]
jg.Shaders.Default = jg.newShader[[
#VERTEX_SHADER
Vertex vert(Vertex v)
@@ -139,8 +139,8 @@ local function compileBuiltInShaders()
}
#END_FRAGMENT_SHADER
]]
- jg.Shaders.Error = jg.newShader[[
- #VERTEX_SHADER
+ jg.Shaders.Error = jg.newShader[[
+ #VERTEX_SHADER
Vertex vert(Vertex v)
{
return v;
@@ -152,56 +152,56 @@ local function compileBuiltInShaders()
return Color(1, 0, 1, 1);
}
#END_FRAGMENT_SHADER
- ]]
+ ]]
end
local _init = jg.init
local initialized = false
jg.init = function(setting)
- if initialized then
- return initialized
- end
- initialized = _init(setting)
- if initialized then
- compileBuiltInShaders()
- jg.useShader(jg.Shaders.Default)
- end
- return initialized
+ if initialized then
+ return initialized
+ end
+ initialized = _init(setting)
+ if initialized then
+ compileBuiltInShaders()
+ jg.useShader(jg.Shaders.Default)
+ end
+ return initialized
end
-- Reset all attributes to default value.
jg.reset = function()
- jg.setColor(255, 255, 255, 255)
- jg.setClearColor(0, 0, 0, 0)
- jg.clear()
- jg.unsetFont()
- jg.unuseShader()
+ jg.setColor(255, 255, 255, 255)
+ jg.setClearColor(0, 0, 0, 0)
+ jg.clear()
+ jg.unsetFont()
+ jg.unuseShader()
end
jg.unuseShader = function()
- jg.useShader(jg.Shaders.Default)
+ jg.useShader(jg.Shaders.Default)
end
local _newShader = jg.newShader
jg.newShader = function(program)
- local shader = _newShader(program)
- if shader == nil then
- jin.log.error("Compile shader failed:\n" .. debug.traceback())
- return jg.Shaders.Error
- else
- return shader
- end
+ local shader = _newShader(program)
+ if shader == nil then
+ jin.log.error("Compile shader failed:\n" .. debug.traceback())
+ return jg.Shaders.Error
+ else
+ return shader
+ end
end
local _newShaderf = jg.newShaderf
jg.newShaderf = function(file)
- local shader = _newShaderf(file)
- if shader == nil then
- jin.log.error("Compile shader failed:\n" .. debug.traceback())
- return jg.Shaders.Error
- else
- return shader
- end
+ local shader = _newShaderf(file)
+ if shader == nil then
+ jin.log.error("Compile shader failed:\n" .. debug.traceback())
+ return jg.Shaders.Error
+ else
+ return shader
+ end
end
diff --git a/src/libjin-lua/scripts/graphics/graphics.lua.h b/src/libjin-lua/scripts/graphics/graphics.lua.h
index cb6cf56..c33f2a5 100644
--- a/src/libjin-lua/scripts/graphics/graphics.lua.h
+++ b/src/libjin-lua/scripts/graphics/graphics.lua.h
@@ -4,110 +4,51 @@ static char graphics_lua[] = {
46,103,114,97,112,104,105,99,115,32,111,114,32,123,125,32,13,10,13,10,
108,111,99,97,108,32,106,103,32,61,32,106,105,110,46,103,114,97,112,104,
105,99,115,13,10,13,10,106,103,46,82,101,110,100,101,114,77,111,100,101,
-32,61,32,123,13,10,32,32,32,32,70,73,76,76,32,61,32,49,44,32,
-13,10,32,32,32,32,76,73,78,69,32,61,32,50,44,13,10,125,13,10,
-13,10,106,103,46,83,112,114,105,116,101,79,114,105,103,105,110,32,61,32,
-123,13,10,32,32,32,32,84,79,80,76,69,70,84,32,61,32,48,44,13,
-10,32,32,32,32,84,79,80,67,69,78,84,69,82,32,61,32,49,44,13,
-10,32,32,32,32,84,79,80,82,73,71,72,84,32,61,32,50,44,13,10,
-32,32,32,32,77,73,68,68,76,69,76,69,70,84,32,61,32,51,44,13,
-10,32,32,32,32,77,73,68,68,76,69,67,69,78,84,69,82,32,61,32,
-52,44,13,10,32,32,32,32,77,73,68,68,76,69,82,73,71,72,84,32,
-61,32,53,44,13,10,32,32,32,32,66,79,84,84,79,77,76,69,70,84,
-32,61,32,54,44,13,10,32,32,32,32,66,79,84,84,79,77,67,69,78,
-84,69,82,32,61,32,55,44,13,10,32,32,32,32,66,79,84,84,79,77,
-82,73,71,72,84,32,61,32,56,13,10,125,13,10,13,10,106,103,46,83,
-112,114,105,116,101,77,111,100,101,32,61,32,123,13,10,32,32,32,32,83,
-73,78,71,76,69,32,61,32,49,44,13,10,32,32,32,32,82,65,78,68,
-79,77,32,61,32,50,44,13,10,32,32,32,32,65,78,73,77,65,84,69,
-68,32,61,32,51,13,10,125,13,10,13,10,106,103,46,66,108,101,110,100,
-77,111,100,101,32,61,32,123,13,10,32,32,32,32,68,69,70,65,85,76,
-84,32,61,32,49,44,13,10,32,32,32,32,65,76,80,72,65,32,61,32,
-49,44,32,13,10,32,32,32,32,65,68,68,73,84,73,86,69,32,61,32,
-50,44,13,10,32,32,32,32,80,82,69,77,85,76,84,73,80,76,73,69,
-68,65,76,80,72,65,32,61,32,51,13,10,125,13,10,13,10,45,45,32,
-66,117,105,108,116,32,105,110,32,115,104,97,100,101,114,115,46,13,10,106,
-103,46,83,104,97,100,101,114,115,32,61,32,110,105,108,13,10,108,111,99,
-97,108,32,102,117,110,99,116,105,111,110,32,99,111,109,112,105,108,101,66,
-117,105,108,116,73,110,83,104,97,100,101,114,115,40,41,32,13,10,32,32,
-32,32,105,102,32,106,103,46,83,104,97,100,101,114,115,32,126,61,32,110,
-105,108,32,116,104,101,110,32,13,10,32,32,32,32,32,32,32,32,114,101,
-116,117,114,110,13,10,32,32,32,32,101,110,100,13,10,32,32,32,32,106,
-103,46,83,104,97,100,101,114,115,32,61,32,123,125,13,10,9,106,103,46,
-83,104,97,100,101,114,115,46,70,111,110,116,32,61,32,106,103,46,110,101,
-119,83,104,97,100,101,114,91,91,13,10,9,9,35,86,69,82,84,69,88,
-95,83,72,65,68,69,82,13,10,9,9,86,101,114,116,101,120,32,118,101,
-114,116,40,86,101,114,116,101,120,32,118,41,13,10,9,9,123,13,10,9,
-9,9,114,101,116,117,114,110,32,118,59,13,10,9,9,125,13,10,9,9,
-35,69,78,68,95,86,69,82,84,69,88,95,83,72,65,68,69,82,13,10,
-9,9,35,70,82,65,71,77,69,78,84,95,83,72,65,68,69,82,13,10,
-9,9,67,111,108,111,114,32,102,114,97,103,40,67,111,108,111,114,32,99,
-111,108,44,32,84,101,120,116,117,114,101,32,116,101,120,44,32,86,101,114,
+32,61,32,123,13,10,32,32,70,73,76,76,32,61,32,49,44,32,13,10,
+32,32,76,73,78,69,32,61,32,50,44,13,10,125,13,10,13,10,106,103,
+46,83,112,114,105,116,101,79,114,105,103,105,110,32,61,32,123,13,10,32,
+32,84,79,80,76,69,70,84,32,61,32,48,44,13,10,32,32,84,79,80,
+67,69,78,84,69,82,32,61,32,49,44,13,10,32,32,84,79,80,82,73,
+71,72,84,32,61,32,50,44,13,10,32,32,77,73,68,68,76,69,76,69,
+70,84,32,61,32,51,44,13,10,32,32,77,73,68,68,76,69,67,69,78,
+84,69,82,32,61,32,52,44,13,10,32,32,77,73,68,68,76,69,82,73,
+71,72,84,32,61,32,53,44,13,10,32,32,66,79,84,84,79,77,76,69,
+70,84,32,61,32,54,44,13,10,32,32,66,79,84,84,79,77,67,69,78,
+84,69,82,32,61,32,55,44,13,10,32,32,66,79,84,84,79,77,82,73,
+71,72,84,32,61,32,56,13,10,125,13,10,13,10,106,103,46,83,112,114,
+105,116,101,77,111,100,101,32,61,32,123,13,10,32,32,83,73,78,71,76,
+69,32,61,32,49,44,13,10,32,32,82,65,78,68,79,77,32,61,32,50,
+44,13,10,32,32,65,78,73,77,65,84,69,68,32,61,32,51,13,10,125,
+13,10,13,10,106,103,46,66,108,101,110,100,77,111,100,101,32,61,32,123,
+13,10,32,32,68,69,70,65,85,76,84,32,61,32,49,44,13,10,32,32,
+65,76,80,72,65,32,61,32,49,44,32,13,10,32,32,65,68,68,73,84,
+73,86,69,32,61,32,50,44,13,10,32,32,80,82,69,77,85,76,84,73,
+80,76,73,69,68,65,76,80,72,65,32,61,32,51,13,10,125,13,10,13,
+10,45,45,32,66,117,105,108,116,32,105,110,32,115,104,97,100,101,114,115,
+46,13,10,106,103,46,83,104,97,100,101,114,115,32,61,32,110,105,108,13,
+10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,99,111,109,112,
+105,108,101,66,117,105,108,116,73,110,83,104,97,100,101,114,115,40,41,32,
+13,10,32,32,105,102,32,106,103,46,83,104,97,100,101,114,115,32,126,61,
+32,110,105,108,32,116,104,101,110,32,13,10,32,32,32,32,114,101,116,117,
+114,110,13,10,32,32,101,110,100,13,10,32,32,106,103,46,83,104,97,100,
+101,114,115,32,61,32,123,125,13,10,9,106,103,46,83,104,97,100,101,114,
+115,46,70,111,110,116,32,61,32,106,103,46,110,101,119,83,104,97,100,101,
+114,91,91,13,10,9,9,35,86,69,82,84,69,88,95,83,72,65,68,69,
+82,13,10,9,9,86,101,114,116,101,120,32,118,101,114,116,40,86,101,114,
116,101,120,32,118,41,13,10,9,9,123,13,10,9,9,9,114,101,116,117,
-114,110,32,67,111,108,111,114,40,99,111,108,46,114,103,98,44,32,116,101,
-120,101,108,40,116,101,120,44,32,118,46,117,118,41,46,97,41,59,13,10,
-9,9,125,13,10,9,9,35,69,78,68,95,70,82,65,71,77,69,78,84,
-95,83,72,65,68,69,82,13,10,9,93,93,13,10,9,106,103,46,83,104,
-97,100,101,114,115,46,84,101,120,116,117,114,101,32,61,32,106,103,46,110,
-101,119,83,104,97,100,101,114,91,91,13,10,9,9,35,86,69,82,84,69,
-88,95,83,72,65,68,69,82,13,10,9,9,86,101,114,116,101,120,32,118,
-101,114,116,40,86,101,114,116,101,120,32,118,41,13,10,9,9,123,13,10,
-9,9,9,114,101,116,117,114,110,32,118,59,13,10,9,9,125,13,10,9,
-9,35,69,78,68,95,86,69,82,84,69,88,95,83,72,65,68,69,82,13,
-10,9,9,35,70,82,65,71,77,69,78,84,95,83,72,65,68,69,82,13,
-10,9,9,67,111,108,111,114,32,102,114,97,103,40,67,111,108,111,114,32,
-99,111,108,44,32,84,101,120,116,117,114,101,32,116,101,120,44,32,86,101,
-114,116,101,120,32,118,41,13,10,9,9,123,13,10,9,9,9,114,101,116,
-117,114,110,32,99,111,108,32,42,32,116,101,120,101,108,40,116,101,120,44,
-32,118,46,117,118,41,59,13,10,9,9,125,13,10,9,9,35,69,78,68,
-95,70,82,65,71,77,69,78,84,95,83,72,65,68,69,82,13,10,9,93,
-93,13,10,9,106,103,46,83,104,97,100,101,114,115,46,83,112,114,105,116,
-101,32,61,32,106,103,46,110,101,119,83,104,97,100,101,114,91,91,13,10,
-9,9,35,86,69,82,84,69,88,95,83,72,65,68,69,82,13,10,9,9,
-86,101,114,116,101,120,32,118,101,114,116,40,86,101,114,116,101,120,32,118,
-41,13,10,9,9,123,13,10,9,9,9,114,101,116,117,114,110,32,118,59,
-13,10,9,9,125,13,10,9,9,35,69,78,68,95,86,69,82,84,69,88,
-95,83,72,65,68,69,82,13,10,9,9,35,70,82,65,71,77,69,78,84,
-95,83,72,65,68,69,82,13,10,9,9,67,111,108,111,114,32,102,114,97,
-103,40,67,111,108,111,114,32,99,111,108,44,32,84,101,120,116,117,114,101,
-32,116,101,120,44,32,86,101,114,116,101,120,32,118,41,13,10,9,9,123,
-13,10,9,9,9,114,101,116,117,114,110,32,99,111,108,32,42,32,116,101,
-120,101,108,40,116,101,120,44,32,118,46,117,118,41,59,13,10,9,9,125,
-13,10,9,9,35,69,78,68,95,70,82,65,71,77,69,78,84,95,83,72,
-65,68,69,82,13,10,9,93,93,13,10,9,106,103,46,83,104,97,100,101,
-114,115,46,83,112,114,105,116,101,66,97,116,99,104,32,61,32,106,103,46,
-110,101,119,83,104,97,100,101,114,91,91,13,10,9,9,35,86,69,82,84,
-69,88,95,83,72,65,68,69,82,13,10,9,9,86,101,114,116,101,120,32,
-118,101,114,116,40,86,101,114,116,101,120,32,118,41,13,10,9,9,123,13,
-10,9,9,9,114,101,116,117,114,110,32,118,59,13,10,9,9,125,13,10,
-9,9,35,69,78,68,95,86,69,82,84,69,88,95,83,72,65,68,69,82,
-13,10,9,9,35,70,82,65,71,77,69,78,84,95,83,72,65,68,69,82,
-13,10,9,9,67,111,108,111,114,32,102,114,97,103,40,67,111,108,111,114,
-32,99,111,108,44,32,84,101,120,116,117,114,101,32,116,101,120,44,32,86,
-101,114,116,101,120,32,118,41,13,10,9,9,123,13,10,9,9,9,114,101,
-116,117,114,110,32,99,111,108,32,42,32,116,101,120,101,108,40,116,101,120,
-44,32,118,46,117,118,41,59,13,10,9,9,125,13,10,9,9,35,69,78,
-68,95,70,82,65,71,77,69,78,84,95,83,72,65,68,69,82,13,10,9,
-93,93,13,10,32,32,32,32,106,103,46,83,104,97,100,101,114,115,46,83,
-104,97,112,101,32,61,32,106,103,46,110,101,119,83,104,97,100,101,114,91,
-91,13,10,32,32,32,32,32,32,32,32,35,86,69,82,84,69,88,95,83,
-72,65,68,69,82,13,10,9,32,32,32,32,86,101,114,116,101,120,32,118,
-101,114,116,40,86,101,114,116,101,120,32,118,41,13,10,9,32,32,32,32,
-123,13,10,9,9,32,32,32,32,114,101,116,117,114,110,32,118,59,13,10,
-9,32,32,32,32,125,13,10,9,32,32,32,32,35,69,78,68,95,86,69,
-82,84,69,88,95,83,72,65,68,69,82,13,10,9,32,32,32,32,35,70,
-82,65,71,77,69,78,84,95,83,72,65,68,69,82,13,10,9,32,32,32,
-32,67,111,108,111,114,32,102,114,97,103,40,67,111,108,111,114,32,99,111,
-108,44,32,84,101,120,116,117,114,101,32,116,101,120,44,32,86,101,114,116,
-101,120,32,118,41,13,10,9,32,32,32,32,123,13,10,9,9,32,32,32,
-32,114,101,116,117,114,110,32,99,111,108,59,13,10,9,32,32,32,32,125,
-13,10,9,32,32,32,32,35,69,78,68,95,70,82,65,71,77,69,78,84,
-95,83,72,65,68,69,82,13,10,32,32,32,32,93,93,13,10,32,32,32,
-32,106,103,46,83,104,97,100,101,114,115,46,77,101,115,104,32,61,32,106,
-103,46,110,101,119,83,104,97,100,101,114,91,91,32,13,10,32,32,32,32,
-32,32,32,9,35,86,69,82,84,69,88,95,83,72,65,68,69,82,13,10,
-32,32,32,32,32,32,32,32,105,110,32,86,101,99,52,32,99,111,108,111,
-114,59,13,10,9,9,86,101,114,116,101,120,32,118,101,114,116,40,86,101,
+114,110,32,118,59,13,10,9,9,125,13,10,9,9,35,69,78,68,95,86,
+69,82,84,69,88,95,83,72,65,68,69,82,13,10,9,9,35,70,82,65,
+71,77,69,78,84,95,83,72,65,68,69,82,13,10,9,9,67,111,108,111,
+114,32,102,114,97,103,40,67,111,108,111,114,32,99,111,108,44,32,84,101,
+120,116,117,114,101,32,116,101,120,44,32,86,101,114,116,101,120,32,118,41,
+13,10,9,9,123,13,10,9,9,9,114,101,116,117,114,110,32,67,111,108,
+111,114,40,99,111,108,46,114,103,98,44,32,116,101,120,101,108,40,116,101,
+120,44,32,118,46,117,118,41,46,97,41,59,13,10,9,9,125,13,10,9,
+9,35,69,78,68,95,70,82,65,71,77,69,78,84,95,83,72,65,68,69,
+82,13,10,9,93,93,13,10,9,106,103,46,83,104,97,100,101,114,115,46,
+84,101,120,116,117,114,101,32,61,32,106,103,46,110,101,119,83,104,97,100,
+101,114,91,91,13,10,9,9,35,86,69,82,84,69,88,95,83,72,65,68,
+69,82,13,10,9,9,86,101,114,116,101,120,32,118,101,114,116,40,86,101,
114,116,101,120,32,118,41,13,10,9,9,123,13,10,9,9,9,114,101,116,
117,114,110,32,118,59,13,10,9,9,125,13,10,9,9,35,69,78,68,95,
86,69,82,84,69,88,95,83,72,65,68,69,82,13,10,9,9,35,70,82,
@@ -116,25 +57,52 @@ static char graphics_lua[] = {
101,120,116,117,114,101,32,116,101,120,44,32,86,101,114,116,101,120,32,118,
41,13,10,9,9,123,13,10,9,9,9,114,101,116,117,114,110,32,99,111,
108,32,42,32,116,101,120,101,108,40,116,101,120,44,32,118,46,117,118,41,
-32,42,32,118,46,99,111,108,111,114,59,13,10,9,9,125,13,10,9,9,
-35,69,78,68,95,70,82,65,71,77,69,78,84,95,83,72,65,68,69,82,
-32,13,10,32,32,32,32,93,93,13,10,9,106,103,46,83,104,97,100,101,
-114,115,46,68,101,102,97,117,108,116,32,61,32,106,103,46,110,101,119,83,
-104,97,100,101,114,91,91,13,10,9,9,35,86,69,82,84,69,88,95,83,
-72,65,68,69,82,13,10,9,9,86,101,114,116,101,120,32,118,101,114,116,
-40,86,101,114,116,101,120,32,118,41,13,10,9,9,123,13,10,9,9,9,
-114,101,116,117,114,110,32,118,59,13,10,9,9,125,13,10,9,9,35,69,
-78,68,95,86,69,82,84,69,88,95,83,72,65,68,69,82,13,10,9,9,
-35,70,82,65,71,77,69,78,84,95,83,72,65,68,69,82,13,10,9,9,
-67,111,108,111,114,32,102,114,97,103,40,67,111,108,111,114,32,99,111,108,
-44,32,84,101,120,116,117,114,101,32,116,101,120,44,32,86,101,114,116,101,
-120,32,118,41,13,10,9,9,123,13,10,9,9,9,114,101,116,117,114,110,
-32,99,111,108,32,42,32,116,101,120,101,108,40,116,101,120,44,32,118,46,
-117,118,41,59,13,10,9,9,125,13,10,9,9,35,69,78,68,95,70,82,
-65,71,77,69,78,84,95,83,72,65,68,69,82,13,10,9,93,93,13,10,
-32,32,32,32,106,103,46,83,104,97,100,101,114,115,46,69,114,114,111,114,
-32,61,32,106,103,46,110,101,119,83,104,97,100,101,114,91,91,13,10,32,
+59,13,10,9,9,125,13,10,9,9,35,69,78,68,95,70,82,65,71,77,
+69,78,84,95,83,72,65,68,69,82,13,10,9,93,93,13,10,9,106,103,
+46,83,104,97,100,101,114,115,46,83,112,114,105,116,101,32,61,32,106,103,
+46,110,101,119,83,104,97,100,101,114,91,91,13,10,9,9,35,86,69,82,
+84,69,88,95,83,72,65,68,69,82,13,10,9,9,86,101,114,116,101,120,
+32,118,101,114,116,40,86,101,114,116,101,120,32,118,41,13,10,9,9,123,
+13,10,9,9,9,114,101,116,117,114,110,32,118,59,13,10,9,9,125,13,
+10,9,9,35,69,78,68,95,86,69,82,84,69,88,95,83,72,65,68,69,
+82,13,10,9,9,35,70,82,65,71,77,69,78,84,95,83,72,65,68,69,
+82,13,10,9,9,67,111,108,111,114,32,102,114,97,103,40,67,111,108,111,
+114,32,99,111,108,44,32,84,101,120,116,117,114,101,32,116,101,120,44,32,
+86,101,114,116,101,120,32,118,41,13,10,9,9,123,13,10,9,9,9,114,
+101,116,117,114,110,32,99,111,108,32,42,32,116,101,120,101,108,40,116,101,
+120,44,32,118,46,117,118,41,59,13,10,9,9,125,13,10,9,9,35,69,
+78,68,95,70,82,65,71,77,69,78,84,95,83,72,65,68,69,82,13,10,
+9,93,93,13,10,9,106,103,46,83,104,97,100,101,114,115,46,83,112,114,
+105,116,101,66,97,116,99,104,32,61,32,106,103,46,110,101,119,83,104,97,
+100,101,114,91,91,13,10,9,9,35,86,69,82,84,69,88,95,83,72,65,
+68,69,82,13,10,9,9,86,101,114,116,101,120,32,118,101,114,116,40,86,
+101,114,116,101,120,32,118,41,13,10,9,9,123,13,10,9,9,9,114,101,
+116,117,114,110,32,118,59,13,10,9,9,125,13,10,9,9,35,69,78,68,
+95,86,69,82,84,69,88,95,83,72,65,68,69,82,13,10,9,9,35,70,
+82,65,71,77,69,78,84,95,83,72,65,68,69,82,13,10,9,9,67,111,
+108,111,114,32,102,114,97,103,40,67,111,108,111,114,32,99,111,108,44,32,
+84,101,120,116,117,114,101,32,116,101,120,44,32,86,101,114,116,101,120,32,
+118,41,13,10,9,9,123,13,10,9,9,9,114,101,116,117,114,110,32,99,
+111,108,32,42,32,116,101,120,101,108,40,116,101,120,44,32,118,46,117,118,
+41,59,13,10,9,9,125,13,10,9,9,35,69,78,68,95,70,82,65,71,
+77,69,78,84,95,83,72,65,68,69,82,13,10,9,93,93,13,10,32,32,
+106,103,46,83,104,97,100,101,114,115,46,83,104,97,112,101,32,61,32,106,
+103,46,110,101,119,83,104,97,100,101,114,91,91,13,10,32,32,32,32,35,
+86,69,82,84,69,88,95,83,72,65,68,69,82,13,10,9,32,32,86,101,
+114,116,101,120,32,118,101,114,116,40,86,101,114,116,101,120,32,118,41,13,
+10,9,32,32,123,13,10,9,9,32,32,114,101,116,117,114,110,32,118,59,
+13,10,9,32,32,125,13,10,9,32,32,35,69,78,68,95,86,69,82,84,
+69,88,95,83,72,65,68,69,82,13,10,9,32,32,35,70,82,65,71,77,
+69,78,84,95,83,72,65,68,69,82,13,10,9,32,32,67,111,108,111,114,
+32,102,114,97,103,40,67,111,108,111,114,32,99,111,108,44,32,84,101,120,
+116,117,114,101,32,116,101,120,44,32,86,101,114,116,101,120,32,118,41,13,
+10,9,32,32,123,13,10,9,9,32,32,114,101,116,117,114,110,32,99,111,
+108,59,13,10,9,32,32,125,13,10,9,32,32,35,69,78,68,95,70,82,
+65,71,77,69,78,84,95,83,72,65,68,69,82,13,10,32,32,93,93,13,
+10,32,32,106,103,46,83,104,97,100,101,114,115,46,77,101,115,104,32,61,
+32,106,103,46,110,101,119,83,104,97,100,101,114,91,91,32,13,10,32,32,
32,32,32,9,35,86,69,82,84,69,88,95,83,72,65,68,69,82,13,10,
+32,32,32,32,105,110,32,86,101,99,52,32,99,111,108,111,114,59,13,10,
9,9,86,101,114,116,101,120,32,118,101,114,116,40,86,101,114,116,101,120,
32,118,41,13,10,9,9,123,13,10,9,9,9,114,101,116,117,114,110,32,
118,59,13,10,9,9,125,13,10,9,9,35,69,78,68,95,86,69,82,84,
@@ -142,68 +110,92 @@ static char graphics_lua[] = {
78,84,95,83,72,65,68,69,82,13,10,9,9,67,111,108,111,114,32,102,
114,97,103,40,67,111,108,111,114,32,99,111,108,44,32,84,101,120,116,117,
114,101,32,116,101,120,44,32,86,101,114,116,101,120,32,118,41,13,10,9,
-9,123,13,10,9,9,9,114,101,116,117,114,110,32,67,111,108,111,114,40,
-49,44,32,48,44,32,49,44,32,49,41,59,13,10,9,9,125,13,10,9,
-9,35,69,78,68,95,70,82,65,71,77,69,78,84,95,83,72,65,68,69,
-82,13,10,32,32,32,32,93,93,13,10,101,110,100,13,10,13,10,108,111,
-99,97,108,32,95,105,110,105,116,32,61,32,106,103,46,105,110,105,116,13,
-10,108,111,99,97,108,32,105,110,105,116,105,97,108,105,122,101,100,32,61,
-32,102,97,108,115,101,13,10,106,103,46,105,110,105,116,32,61,32,102,117,
-110,99,116,105,111,110,40,115,101,116,116,105,110,103,41,32,13,10,32,32,
-32,32,105,102,32,105,110,105,116,105,97,108,105,122,101,100,32,116,104,101,
-110,32,13,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,105,
-110,105,116,105,97,108,105,122,101,100,13,10,32,32,32,32,101,110,100,13,
-10,32,32,32,32,105,110,105,116,105,97,108,105,122,101,100,32,61,32,95,
-105,110,105,116,40,115,101,116,116,105,110,103,41,13,10,32,32,32,32,105,
-102,32,105,110,105,116,105,97,108,105,122,101,100,32,116,104,101,110,32,13,
-10,32,32,32,32,32,32,32,32,99,111,109,112,105,108,101,66,117,105,108,
-116,73,110,83,104,97,100,101,114,115,40,41,13,10,32,32,32,32,32,32,
-32,32,106,103,46,117,115,101,83,104,97,100,101,114,40,106,103,46,83,104,
-97,100,101,114,115,46,68,101,102,97,117,108,116,41,13,10,32,32,32,32,
-101,110,100,13,10,32,32,32,32,114,101,116,117,114,110,32,105,110,105,116,
-105,97,108,105,122,101,100,32,13,10,101,110,100,13,10,13,10,45,45,32,
-82,101,115,101,116,32,97,108,108,32,97,116,116,114,105,98,117,116,101,115,
-32,116,111,32,100,101,102,97,117,108,116,32,118,97,108,117,101,46,13,10,
-106,103,46,114,101,115,101,116,32,61,32,102,117,110,99,116,105,111,110,40,
-41,13,10,32,32,32,32,106,103,46,115,101,116,67,111,108,111,114,40,50,
-53,53,44,32,50,53,53,44,32,50,53,53,44,32,50,53,53,41,13,10,
-32,32,32,32,106,103,46,115,101,116,67,108,101,97,114,67,111,108,111,114,
-40,48,44,32,48,44,32,48,44,32,48,41,13,10,32,32,32,32,106,103,
-46,99,108,101,97,114,40,41,13,10,32,32,32,32,106,103,46,117,110,115,
-101,116,70,111,110,116,40,41,13,10,32,32,32,32,106,103,46,117,110,117,
-115,101,83,104,97,100,101,114,40,41,13,10,101,110,100,13,10,13,10,106,
-103,46,117,110,117,115,101,83,104,97,100,101,114,32,61,32,102,117,110,99,
-116,105,111,110,40,41,13,10,32,32,32,32,106,103,46,117,115,101,83,104,
-97,100,101,114,40,106,103,46,83,104,97,100,101,114,115,46,68,101,102,97,
-117,108,116,41,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,95,
-110,101,119,83,104,97,100,101,114,32,61,32,106,103,46,110,101,119,83,104,
-97,100,101,114,13,10,13,10,106,103,46,110,101,119,83,104,97,100,101,114,
-32,61,32,102,117,110,99,116,105,111,110,40,112,114,111,103,114,97,109,41,
-32,13,10,32,32,32,32,108,111,99,97,108,32,115,104,97,100,101,114,32,
-61,32,95,110,101,119,83,104,97,100,101,114,40,112,114,111,103,114,97,109,
-41,13,10,32,32,32,32,105,102,32,115,104,97,100,101,114,32,61,61,32,
-110,105,108,32,116,104,101,110,32,13,10,32,32,32,32,32,32,32,32,106,
-105,110,46,108,111,103,46,101,114,114,111,114,40,34,67,111,109,112,105,108,
-101,32,115,104,97,100,101,114,32,102,97,105,108,101,100,58,92,110,34,32,
-46,46,32,100,101,98,117,103,46,116,114,97,99,101,98,97,99,107,40,41,
-41,13,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,106,103,
-46,83,104,97,100,101,114,115,46,69,114,114,111,114,13,10,32,32,32,32,
-101,108,115,101,13,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,
-32,115,104,97,100,101,114,13,10,32,32,32,32,101,110,100,13,10,101,110,
+9,123,13,10,9,9,9,114,101,116,117,114,110,32,99,111,108,32,42,32,
+116,101,120,101,108,40,116,101,120,44,32,118,46,117,118,41,32,42,32,118,
+46,99,111,108,111,114,59,13,10,9,9,125,13,10,9,9,35,69,78,68,
+95,70,82,65,71,77,69,78,84,95,83,72,65,68,69,82,32,13,10,32,
+32,93,93,13,10,9,106,103,46,83,104,97,100,101,114,115,46,68,101,102,
+97,117,108,116,32,61,32,106,103,46,110,101,119,83,104,97,100,101,114,91,
+91,13,10,9,9,35,86,69,82,84,69,88,95,83,72,65,68,69,82,13,
+10,9,9,86,101,114,116,101,120,32,118,101,114,116,40,86,101,114,116,101,
+120,32,118,41,13,10,9,9,123,13,10,9,9,9,114,101,116,117,114,110,
+32,118,59,13,10,9,9,125,13,10,9,9,35,69,78,68,95,86,69,82,
+84,69,88,95,83,72,65,68,69,82,13,10,9,9,35,70,82,65,71,77,
+69,78,84,95,83,72,65,68,69,82,13,10,9,9,67,111,108,111,114,32,
+102,114,97,103,40,67,111,108,111,114,32,99,111,108,44,32,84,101,120,116,
+117,114,101,32,116,101,120,44,32,86,101,114,116,101,120,32,118,41,13,10,
+9,9,123,13,10,9,9,9,114,101,116,117,114,110,32,99,111,108,32,42,
+32,116,101,120,101,108,40,116,101,120,44,32,118,46,117,118,41,59,13,10,
+9,9,125,13,10,9,9,35,69,78,68,95,70,82,65,71,77,69,78,84,
+95,83,72,65,68,69,82,13,10,9,93,93,13,10,32,32,106,103,46,83,
+104,97,100,101,114,115,46,69,114,114,111,114,32,61,32,106,103,46,110,101,
+119,83,104,97,100,101,114,91,91,13,10,32,32,9,35,86,69,82,84,69,
+88,95,83,72,65,68,69,82,13,10,9,9,86,101,114,116,101,120,32,118,
+101,114,116,40,86,101,114,116,101,120,32,118,41,13,10,9,9,123,13,10,
+9,9,9,114,101,116,117,114,110,32,118,59,13,10,9,9,125,13,10,9,
+9,35,69,78,68,95,86,69,82,84,69,88,95,83,72,65,68,69,82,13,
+10,9,9,35,70,82,65,71,77,69,78,84,95,83,72,65,68,69,82,13,
+10,9,9,67,111,108,111,114,32,102,114,97,103,40,67,111,108,111,114,32,
+99,111,108,44,32,84,101,120,116,117,114,101,32,116,101,120,44,32,86,101,
+114,116,101,120,32,118,41,13,10,9,9,123,13,10,9,9,9,114,101,116,
+117,114,110,32,67,111,108,111,114,40,49,44,32,48,44,32,49,44,32,49,
+41,59,13,10,9,9,125,13,10,9,9,35,69,78,68,95,70,82,65,71,
+77,69,78,84,95,83,72,65,68,69,82,13,10,32,32,93,93,13,10,101,
+110,100,13,10,13,10,108,111,99,97,108,32,95,105,110,105,116,32,61,32,
+106,103,46,105,110,105,116,13,10,108,111,99,97,108,32,105,110,105,116,105,
+97,108,105,122,101,100,32,61,32,102,97,108,115,101,13,10,106,103,46,105,
+110,105,116,32,61,32,102,117,110,99,116,105,111,110,40,115,101,116,116,105,
+110,103,41,32,13,10,32,32,105,102,32,105,110,105,116,105,97,108,105,122,
+101,100,32,116,104,101,110,32,13,10,32,32,32,32,114,101,116,117,114,110,
+32,105,110,105,116,105,97,108,105,122,101,100,13,10,32,32,101,110,100,13,
+10,32,32,105,110,105,116,105,97,108,105,122,101,100,32,61,32,95,105,110,
+105,116,40,115,101,116,116,105,110,103,41,13,10,32,32,105,102,32,105,110,
+105,116,105,97,108,105,122,101,100,32,116,104,101,110,32,13,10,32,32,32,
+32,99,111,109,112,105,108,101,66,117,105,108,116,73,110,83,104,97,100,101,
+114,115,40,41,13,10,32,32,32,32,106,103,46,117,115,101,83,104,97,100,
+101,114,40,106,103,46,83,104,97,100,101,114,115,46,68,101,102,97,117,108,
+116,41,13,10,32,32,101,110,100,13,10,32,32,114,101,116,117,114,110,32,
+105,110,105,116,105,97,108,105,122,101,100,32,13,10,101,110,100,13,10,13,
+10,45,45,32,82,101,115,101,116,32,97,108,108,32,97,116,116,114,105,98,
+117,116,101,115,32,116,111,32,100,101,102,97,117,108,116,32,118,97,108,117,
+101,46,13,10,106,103,46,114,101,115,101,116,32,61,32,102,117,110,99,116,
+105,111,110,40,41,13,10,32,32,106,103,46,115,101,116,67,111,108,111,114,
+40,50,53,53,44,32,50,53,53,44,32,50,53,53,44,32,50,53,53,41,
+13,10,32,32,106,103,46,115,101,116,67,108,101,97,114,67,111,108,111,114,
+40,48,44,32,48,44,32,48,44,32,48,41,13,10,32,32,106,103,46,99,
+108,101,97,114,40,41,13,10,32,32,106,103,46,117,110,115,101,116,70,111,
+110,116,40,41,13,10,32,32,106,103,46,117,110,117,115,101,83,104,97,100,
+101,114,40,41,13,10,101,110,100,13,10,13,10,106,103,46,117,110,117,115,
+101,83,104,97,100,101,114,32,61,32,102,117,110,99,116,105,111,110,40,41,
+13,10,32,32,106,103,46,117,115,101,83,104,97,100,101,114,40,106,103,46,
+83,104,97,100,101,114,115,46,68,101,102,97,117,108,116,41,13,10,101,110,
100,13,10,13,10,108,111,99,97,108,32,95,110,101,119,83,104,97,100,101,
-114,102,32,61,32,106,103,46,110,101,119,83,104,97,100,101,114,102,13,10,
-13,10,106,103,46,110,101,119,83,104,97,100,101,114,102,32,61,32,102,117,
-110,99,116,105,111,110,40,102,105,108,101,41,13,10,32,32,32,32,108,111,
-99,97,108,32,115,104,97,100,101,114,32,61,32,95,110,101,119,83,104,97,
-100,101,114,102,40,102,105,108,101,41,13,10,32,32,32,32,105,102,32,115,
-104,97,100,101,114,32,61,61,32,110,105,108,32,116,104,101,110,32,13,10,
-32,32,32,32,32,32,32,32,106,105,110,46,108,111,103,46,101,114,114,111,
-114,40,34,67,111,109,112,105,108,101,32,115,104,97,100,101,114,32,102,97,
-105,108,101,100,58,92,110,34,32,46,46,32,100,101,98,117,103,46,116,114,
-97,99,101,98,97,99,107,40,41,41,13,10,32,32,32,32,32,32,32,32,
+114,32,61,32,106,103,46,110,101,119,83,104,97,100,101,114,13,10,13,10,
+106,103,46,110,101,119,83,104,97,100,101,114,32,61,32,102,117,110,99,116,
+105,111,110,40,112,114,111,103,114,97,109,41,32,13,10,32,32,108,111,99,
+97,108,32,115,104,97,100,101,114,32,61,32,95,110,101,119,83,104,97,100,
+101,114,40,112,114,111,103,114,97,109,41,13,10,32,32,105,102,32,115,104,
+97,100,101,114,32,61,61,32,110,105,108,32,116,104,101,110,32,13,10,32,
+32,32,32,106,105,110,46,108,111,103,46,101,114,114,111,114,40,34,67,111,
+109,112,105,108,101,32,115,104,97,100,101,114,32,102,97,105,108,101,100,58,
+92,110,34,32,46,46,32,100,101,98,117,103,46,116,114,97,99,101,98,97,
+99,107,40,41,41,13,10,32,32,32,32,114,101,116,117,114,110,32,106,103,
+46,83,104,97,100,101,114,115,46,69,114,114,111,114,13,10,32,32,101,108,
+115,101,13,10,32,32,32,32,114,101,116,117,114,110,32,115,104,97,100,101,
+114,13,10,32,32,101,110,100,13,10,101,110,100,13,10,13,10,108,111,99,
+97,108,32,95,110,101,119,83,104,97,100,101,114,102,32,61,32,106,103,46,
+110,101,119,83,104,97,100,101,114,102,13,10,13,10,106,103,46,110,101,119,
+83,104,97,100,101,114,102,32,61,32,102,117,110,99,116,105,111,110,40,102,
+105,108,101,41,13,10,32,32,108,111,99,97,108,32,115,104,97,100,101,114,
+32,61,32,95,110,101,119,83,104,97,100,101,114,102,40,102,105,108,101,41,
+13,10,32,32,105,102,32,115,104,97,100,101,114,32,61,61,32,110,105,108,
+32,116,104,101,110,32,13,10,32,32,32,32,106,105,110,46,108,111,103,46,
+101,114,114,111,114,40,34,67,111,109,112,105,108,101,32,115,104,97,100,101,
+114,32,102,97,105,108,101,100,58,92,110,34,32,46,46,32,100,101,98,117,
+103,46,116,114,97,99,101,98,97,99,107,40,41,41,13,10,32,32,32,32,
114,101,116,117,114,110,32,106,103,46,83,104,97,100,101,114,115,46,69,114,
-114,111,114,13,10,32,32,32,32,101,108,115,101,13,10,32,32,32,32,32,
-32,32,32,114,101,116,117,114,110,32,115,104,97,100,101,114,13,10,32,32,
-32,32,101,110,100,13,10,101,110,100,13,10,0
+114,111,114,13,10,32,32,101,108,115,101,13,10,32,32,32,32,114,101,116,
+117,114,110,32,115,104,97,100,101,114,13,10,32,32,101,110,100,13,10,101,
+110,100,13,10,0
};
diff --git a/src/libjin-lua/scripts/keyboard/keyboard.lua b/src/libjin-lua/scripts/keyboard/keyboard.lua
index fa42b3a..9b12148 100644
--- a/src/libjin-lua/scripts/keyboard/keyboard.lua
+++ b/src/libjin-lua/scripts/keyboard/keyboard.lua
@@ -4,9 +4,9 @@ jin.keyboard = jin.keyboard or {}
local keys = {}
function jin.keyboard.isPressed(k)
- return keys[k]
+ return keys[k]
end
function jin.keyboard.set(k, status)
- keys[k] = status
+ keys[k] = status
end
diff --git a/src/libjin-lua/scripts/keyboard/keyboard.lua.h b/src/libjin-lua/scripts/keyboard/keyboard.lua.h
index a202c41..24db79b 100644
--- a/src/libjin-lua/scripts/keyboard/keyboard.lua.h
+++ b/src/libjin-lua/scripts/keyboard/keyboard.lua.h
@@ -4,11 +4,11 @@ static char keyboard_lua[] = {
46,107,101,121,98,111,97,114,100,32,111,114,32,123,125,32,13,10,13,10,
108,111,99,97,108,32,107,101,121,115,32,61,32,123,125,32,13,10,13,10,
102,117,110,99,116,105,111,110,32,106,105,110,46,107,101,121,98,111,97,114,
-100,46,105,115,80,114,101,115,115,101,100,40,107,41,32,13,10,32,32,32,
-32,114,101,116,117,114,110,32,107,101,121,115,91,107,93,13,10,101,110,100,
-32,32,13,10,13,10,102,117,110,99,116,105,111,110,32,106,105,110,46,107,
-101,121,98,111,97,114,100,46,115,101,116,40,107,44,32,115,116,97,116,117,
-115,41,32,13,10,32,32,32,32,107,101,121,115,91,107,93,32,61,32,115,
-116,97,116,117,115,32,13,10,101,110,100,32,13,10,0
+100,46,105,115,80,114,101,115,115,101,100,40,107,41,32,13,10,32,32,114,
+101,116,117,114,110,32,107,101,121,115,91,107,93,13,10,101,110,100,32,32,
+13,10,13,10,102,117,110,99,116,105,111,110,32,106,105,110,46,107,101,121,
+98,111,97,114,100,46,115,101,116,40,107,44,32,115,116,97,116,117,115,41,
+32,13,10,32,32,107,101,121,115,91,107,93,32,61,32,115,116,97,116,117,
+115,32,13,10,101,110,100,32,13,10,0
};
diff --git a/src/libjin-lua/scripts/log.lua b/src/libjin-lua/scripts/log.lua
index 02ba234..a0e2310 100644
--- a/src/libjin-lua/scripts/log.lua
+++ b/src/libjin-lua/scripts/log.lua
@@ -10,75 +10,75 @@ log.level = "trace"
local modes = {
- { name = "trace", color = "\27[34m", },
- { name = "debug", color = "\27[36m", },
- { name = "info", color = "\27[32m", },
- { name = "warn", color = "\27[33m", },
- { name = "error", color = "\27[31m", },
- { name = "fatal", color = "\27[35m", },
+ { name = "trace", color = "\27[34m", },
+ { name = "debug", color = "\27[36m", },
+ { name = "info", color = "\27[32m", },
+ { name = "warn", color = "\27[33m", },
+ { name = "error", color = "\27[31m", },
+ { name = "fatal", color = "\27[35m", },
}
local levels = {}
for i, v in ipairs(modes) do
- levels[v.name] = i
+ levels[v.name] = i
end
local round = function(x, increment)
- increment = increment or 1
- x = x / increment
- return (x > 0 and math.floor(x + .5) or math.ceil(x - .5)) * increment
+ increment = increment or 1
+ x = x / increment
+ return (x > 0 and math.floor(x + .5) or math.ceil(x - .5)) * increment
end
local _tostring = tostring
local tostring = function(...)
- local t = {}
- for i = 1, select('#', ...) do
- local x = select(i, ...)
- if type(x) == "number" then
- x = round(x, .01)
- end
- t[#t + 1] = _tostring(x)
+ local t = {}
+ for i = 1, select('#', ...) do
+ local x = select(i, ...)
+ if type(x) == "number" then
+ x = round(x, .01)
end
- return table.concat(t, " ")
+ t[#t + 1] = _tostring(x)
+ end
+ return table.concat(t, " ")
end
for i, x in ipairs(modes) do
- local nameupper = x.name:upper()
- log[x.name] = function(...)
-
- -- Return early if we're below the log level
- if i < levels[log.level] then
- return
- end
-
- local msg = tostring(...)
- local info = debug.getinfo(2, "Sl")
- local lineinfo = info.short_src .. ":" .. info.currentline
-
- -- Output to console
- print(string.format("%s[%-6s%s]%s %s: %s",
- log.usecolor and x.color or "",
- nameupper,
- os.date("%H:%M:%S"),
- log.usecolor and "\27[0m" or "",
- lineinfo,
- msg))
-
- -- Output to log file
- if log.outfile then
- local fp = io.open(log.outfile, "a")
- local str = string.format("[%-6s%s] %s: %s\n",
- nameupper, os.date(), lineinfo, msg)
- fp:write(str)
- fp:close()
- end
+ local nameupper = x.name:upper()
+ log[x.name] = function(...)
+
+ -- Return early if we're below the log level
+ if i < levels[log.level] then
+ return
+ end
+ local msg = tostring(...)
+ local info = debug.getinfo(2, "Sl")
+ local lineinfo = info.short_src .. ":" .. info.currentline
+
+ -- Output to console
+ print(string.format("%s[%-6s%s]%s %s: %s",
+ log.usecolor and x.color or "",
+ nameupper,
+ os.date("%H:%M:%S"),
+ log.usecolor and "\27[0m" or "",
+ lineinfo,
+ msg))
+
+ -- Output to log file
+ if log.outfile then
+ local fp = io.open(log.outfile, "a")
+ local str = string.format("[%-6s%s] %s: %s\n",
+ nameupper, os.date(), lineinfo, msg)
+ fp:write(str)
+ fp:close()
end
+
+ end
end
------------------------------------------------------------------------------------------------------------------
diff --git a/src/libjin-lua/scripts/log.lua.h b/src/libjin-lua/scripts/log.lua.h
index cfedd95..bfa872c 100644
--- a/src/libjin-lua/scripts/log.lua.h
+++ b/src/libjin-lua/scripts/log.lua.h
@@ -19,124 +19,108 @@ static char log_lua[] = {
61,32,102,97,108,115,101,13,10,108,111,103,46,111,117,116,102,105,108,101,
32,61,32,110,105,108,13,10,108,111,103,46,108,101,118,101,108,32,61,32,
34,116,114,97,99,101,34,13,10,13,10,13,10,108,111,99,97,108,32,109,
-111,100,101,115,32,61,32,123,13,10,32,32,32,32,123,32,110,97,109,101,
-32,61,32,34,116,114,97,99,101,34,44,32,99,111,108,111,114,32,61,32,
-34,92,50,55,91,51,52,109,34,44,32,125,44,13,10,32,32,32,32,123,
-32,110,97,109,101,32,61,32,34,100,101,98,117,103,34,44,32,99,111,108,
-111,114,32,61,32,34,92,50,55,91,51,54,109,34,44,32,125,44,13,10,
-32,32,32,32,123,32,110,97,109,101,32,61,32,34,105,110,102,111,34,44,
-32,32,32,32,99,111,108,111,114,32,61,32,34,92,50,55,91,51,50,109,
-34,44,32,125,44,13,10,32,32,32,32,123,32,110,97,109,101,32,61,32,
-34,119,97,114,110,34,44,32,32,32,32,99,111,108,111,114,32,61,32,34,
-92,50,55,91,51,51,109,34,44,32,125,44,13,10,32,32,32,32,123,32,
-110,97,109,101,32,61,32,34,101,114,114,111,114,34,44,32,99,111,108,111,
-114,32,61,32,34,92,50,55,91,51,49,109,34,44,32,125,44,13,10,32,
-32,32,32,123,32,110,97,109,101,32,61,32,34,102,97,116,97,108,34,44,
-32,99,111,108,111,114,32,61,32,34,92,50,55,91,51,53,109,34,44,32,
-125,44,13,10,125,13,10,13,10,13,10,108,111,99,97,108,32,108,101,118,
-101,108,115,32,61,32,123,125,13,10,102,111,114,32,105,44,32,118,32,105,
-110,32,105,112,97,105,114,115,40,109,111,100,101,115,41,32,100,111,13,10,
-32,32,32,32,108,101,118,101,108,115,91,118,46,110,97,109,101,93,32,61,
-32,105,13,10,101,110,100,13,10,13,10,13,10,108,111,99,97,108,32,114,
-111,117,110,100,32,61,32,102,117,110,99,116,105,111,110,40,120,44,32,105,
-110,99,114,101,109,101,110,116,41,13,10,32,32,32,32,105,110,99,114,101,
+111,100,101,115,32,61,32,123,13,10,32,32,123,32,110,97,109,101,32,61,
+32,34,116,114,97,99,101,34,44,32,99,111,108,111,114,32,61,32,34,92,
+50,55,91,51,52,109,34,44,32,125,44,13,10,32,32,123,32,110,97,109,
+101,32,61,32,34,100,101,98,117,103,34,44,32,99,111,108,111,114,32,61,
+32,34,92,50,55,91,51,54,109,34,44,32,125,44,13,10,32,32,123,32,
+110,97,109,101,32,61,32,34,105,110,102,111,34,44,32,32,99,111,108,111,
+114,32,61,32,34,92,50,55,91,51,50,109,34,44,32,125,44,13,10,32,
+32,123,32,110,97,109,101,32,61,32,34,119,97,114,110,34,44,32,32,99,
+111,108,111,114,32,61,32,34,92,50,55,91,51,51,109,34,44,32,125,44,
+13,10,32,32,123,32,110,97,109,101,32,61,32,34,101,114,114,111,114,34,
+44,32,99,111,108,111,114,32,61,32,34,92,50,55,91,51,49,109,34,44,
+32,125,44,13,10,32,32,123,32,110,97,109,101,32,61,32,34,102,97,116,
+97,108,34,44,32,99,111,108,111,114,32,61,32,34,92,50,55,91,51,53,
+109,34,44,32,125,44,13,10,125,13,10,13,10,13,10,108,111,99,97,108,
+32,108,101,118,101,108,115,32,61,32,123,125,13,10,102,111,114,32,105,44,
+32,118,32,105,110,32,105,112,97,105,114,115,40,109,111,100,101,115,41,32,
+100,111,13,10,32,32,108,101,118,101,108,115,91,118,46,110,97,109,101,93,
+32,61,32,105,13,10,101,110,100,13,10,13,10,13,10,108,111,99,97,108,
+32,114,111,117,110,100,32,61,32,102,117,110,99,116,105,111,110,40,120,44,
+32,105,110,99,114,101,109,101,110,116,41,13,10,32,32,105,110,99,114,101,
109,101,110,116,32,61,32,105,110,99,114,101,109,101,110,116,32,111,114,32,
-49,13,10,32,32,32,32,120,32,61,32,120,32,47,32,105,110,99,114,101,
-109,101,110,116,13,10,32,32,32,32,114,101,116,117,114,110,32,40,120,32,
-62,32,48,32,97,110,100,32,109,97,116,104,46,102,108,111,111,114,40,120,
-32,43,32,46,53,41,32,111,114,32,109,97,116,104,46,99,101,105,108,40,
-120,32,45,32,46,53,41,41,32,42,32,105,110,99,114,101,109,101,110,116,
-13,10,101,110,100,13,10,13,10,13,10,108,111,99,97,108,32,95,116,111,
-115,116,114,105,110,103,32,61,32,116,111,115,116,114,105,110,103,13,10,13,
-10,108,111,99,97,108,32,116,111,115,116,114,105,110,103,32,61,32,102,117,
-110,99,116,105,111,110,40,46,46,46,41,13,10,32,32,32,32,108,111,99,
-97,108,32,116,32,61,32,123,125,13,10,32,32,32,32,102,111,114,32,105,
-32,61,32,49,44,32,115,101,108,101,99,116,40,39,35,39,44,32,46,46,
-46,41,32,100,111,13,10,32,32,32,32,32,32,32,32,108,111,99,97,108,
-32,120,32,61,32,115,101,108,101,99,116,40,105,44,32,46,46,46,41,13,
-10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,120,41,32,
-61,61,32,34,110,117,109,98,101,114,34,32,116,104,101,110,13,10,32,32,
-32,32,32,32,32,32,32,32,32,32,120,32,61,32,114,111,117,110,100,40,
-120,44,32,46,48,49,41,13,10,32,32,32,32,32,32,32,32,101,110,100,
-13,10,32,32,32,32,32,32,32,32,116,91,35,116,32,43,32,49,93,32,
-61,32,95,116,111,115,116,114,105,110,103,40,120,41,13,10,32,32,32,32,
-101,110,100,13,10,32,32,32,32,114,101,116,117,114,110,32,116,97,98,108,
-101,46,99,111,110,99,97,116,40,116,44,32,34,32,34,41,13,10,101,110,
-100,13,10,13,10,13,10,102,111,114,32,105,44,32,120,32,105,110,32,105,
-112,97,105,114,115,40,109,111,100,101,115,41,32,100,111,13,10,32,32,32,
-32,108,111,99,97,108,32,110,97,109,101,117,112,112,101,114,32,61,32,120,
-46,110,97,109,101,58,117,112,112,101,114,40,41,13,10,32,32,32,32,108,
-111,103,91,120,46,110,97,109,101,93,32,61,32,102,117,110,99,116,105,111,
-110,40,46,46,46,41,13,10,32,32,32,32,32,32,32,32,13,10,32,32,
-32,32,32,32,32,32,45,45,32,82,101,116,117,114,110,32,101,97,114,108,
-121,32,105,102,32,119,101,39,114,101,32,98,101,108,111,119,32,116,104,101,
-32,108,111,103,32,108,101,118,101,108,13,10,32,32,32,32,32,32,32,32,
-105,102,32,105,32,60,32,108,101,118,101,108,115,91,108,111,103,46,108,101,
-118,101,108,93,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,32,
-32,32,32,114,101,116,117,114,110,13,10,32,32,32,32,32,32,32,32,101,
-110,100,13,10,13,10,32,32,32,32,32,32,32,32,108,111,99,97,108,32,
-109,115,103,32,61,32,116,111,115,116,114,105,110,103,40,46,46,46,41,13,
-10,32,32,32,32,32,32,32,32,108,111,99,97,108,32,105,110,102,111,32,
-61,32,100,101,98,117,103,46,103,101,116,105,110,102,111,40,50,44,32,34,
-83,108,34,41,13,10,32,32,32,32,32,32,32,32,108,111,99,97,108,32,
-108,105,110,101,105,110,102,111,32,61,32,105,110,102,111,46,115,104,111,114,
-116,95,115,114,99,32,46,46,32,34,58,34,32,46,46,32,105,110,102,111,
-46,99,117,114,114,101,110,116,108,105,110,101,13,10,13,10,32,32,32,32,
-32,32,32,32,45,45,32,79,117,116,112,117,116,32,116,111,32,99,111,110,
-115,111,108,101,13,10,32,32,32,32,32,32,32,32,112,114,105,110,116,40,
+49,13,10,32,32,120,32,61,32,120,32,47,32,105,110,99,114,101,109,101,
+110,116,13,10,32,32,114,101,116,117,114,110,32,40,120,32,62,32,48,32,
+97,110,100,32,109,97,116,104,46,102,108,111,111,114,40,120,32,43,32,46,
+53,41,32,111,114,32,109,97,116,104,46,99,101,105,108,40,120,32,45,32,
+46,53,41,41,32,42,32,105,110,99,114,101,109,101,110,116,13,10,101,110,
+100,13,10,13,10,13,10,108,111,99,97,108,32,95,116,111,115,116,114,105,
+110,103,32,61,32,116,111,115,116,114,105,110,103,13,10,13,10,108,111,99,
+97,108,32,116,111,115,116,114,105,110,103,32,61,32,102,117,110,99,116,105,
+111,110,40,46,46,46,41,13,10,32,32,108,111,99,97,108,32,116,32,61,
+32,123,125,13,10,32,32,102,111,114,32,105,32,61,32,49,44,32,115,101,
+108,101,99,116,40,39,35,39,44,32,46,46,46,41,32,100,111,13,10,32,
+32,32,32,108,111,99,97,108,32,120,32,61,32,115,101,108,101,99,116,40,
+105,44,32,46,46,46,41,13,10,32,32,32,32,105,102,32,116,121,112,101,
+40,120,41,32,61,61,32,34,110,117,109,98,101,114,34,32,116,104,101,110,
+13,10,32,32,32,32,32,32,120,32,61,32,114,111,117,110,100,40,120,44,
+32,46,48,49,41,13,10,32,32,32,32,101,110,100,13,10,32,32,32,32,
+116,91,35,116,32,43,32,49,93,32,61,32,95,116,111,115,116,114,105,110,
+103,40,120,41,13,10,32,32,101,110,100,13,10,32,32,114,101,116,117,114,
+110,32,116,97,98,108,101,46,99,111,110,99,97,116,40,116,44,32,34,32,
+34,41,13,10,101,110,100,13,10,13,10,13,10,102,111,114,32,105,44,32,
+120,32,105,110,32,105,112,97,105,114,115,40,109,111,100,101,115,41,32,100,
+111,13,10,32,32,108,111,99,97,108,32,110,97,109,101,117,112,112,101,114,
+32,61,32,120,46,110,97,109,101,58,117,112,112,101,114,40,41,13,10,32,
+32,108,111,103,91,120,46,110,97,109,101,93,32,61,32,102,117,110,99,116,
+105,111,110,40,46,46,46,41,13,10,32,32,32,32,13,10,32,32,32,32,
+45,45,32,82,101,116,117,114,110,32,101,97,114,108,121,32,105,102,32,119,
+101,39,114,101,32,98,101,108,111,119,32,116,104,101,32,108,111,103,32,108,
+101,118,101,108,13,10,32,32,32,32,105,102,32,105,32,60,32,108,101,118,
+101,108,115,91,108,111,103,46,108,101,118,101,108,93,32,116,104,101,110,13,
+10,32,32,32,32,32,32,114,101,116,117,114,110,13,10,32,32,32,32,101,
+110,100,13,10,13,10,32,32,32,32,108,111,99,97,108,32,109,115,103,32,
+61,32,116,111,115,116,114,105,110,103,40,46,46,46,41,13,10,32,32,32,
+32,108,111,99,97,108,32,105,110,102,111,32,61,32,100,101,98,117,103,46,
+103,101,116,105,110,102,111,40,50,44,32,34,83,108,34,41,13,10,32,32,
+32,32,108,111,99,97,108,32,108,105,110,101,105,110,102,111,32,61,32,105,
+110,102,111,46,115,104,111,114,116,95,115,114,99,32,46,46,32,34,58,34,
+32,46,46,32,105,110,102,111,46,99,117,114,114,101,110,116,108,105,110,101,
+13,10,13,10,32,32,32,32,45,45,32,79,117,116,112,117,116,32,116,111,
+32,99,111,110,115,111,108,101,13,10,32,32,32,32,112,114,105,110,116,40,
115,116,114,105,110,103,46,102,111,114,109,97,116,40,34,37,115,91,37,45,
54,115,37,115,93,37,115,32,37,115,58,32,37,115,34,44,13,10,32,32,
32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
+32,32,108,111,103,46,117,115,101,99,111,108,111,114,32,97,110,100,32,120,
+46,99,111,108,111,114,32,111,114,32,34,34,44,13,10,32,32,32,32,32,
+32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,110,
+97,109,101,117,112,112,101,114,44,13,10,32,32,32,32,32,32,32,32,32,
+32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,111,115,46,100,97,
+116,101,40,34,37,72,58,37,77,58,37,83,34,41,44,13,10,32,32,32,
32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,108,111,103,46,117,115,101,99,111,108,111,114,32,97,
-110,100,32,120,46,99,111,108,111,114,32,111,114,32,34,34,44,13,10,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,32,110,97,109,101,117,112,112,101,114,44,13,10,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,32,111,115,46,100,97,116,101,40,34,37,72,58,37,
-77,58,37,83,34,41,44,13,10,32,32,32,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,108,111,103,
-46,117,115,101,99,111,108,111,114,32,97,110,100,32,34,92,50,55,91,48,
-109,34,32,111,114,32,34,34,44,13,10,32,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
+32,108,111,103,46,117,115,101,99,111,108,111,114,32,97,110,100,32,34,92,
+50,55,91,48,109,34,32,111,114,32,34,34,44,13,10,32,32,32,32,32,
32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,108,
105,110,101,105,110,102,111,44,13,10,32,32,32,32,32,32,32,32,32,32,
+32,32,32,32,32,32,32,32,32,32,32,32,32,32,109,115,103,41,41,13,
+10,13,10,32,32,32,32,45,45,32,79,117,116,112,117,116,32,116,111,32,
+108,111,103,32,102,105,108,101,13,10,32,32,32,32,105,102,32,108,111,103,
+46,111,117,116,102,105,108,101,32,116,104,101,110,13,10,32,32,32,32,32,
+32,108,111,99,97,108,32,102,112,32,61,32,105,111,46,111,112,101,110,40,
+108,111,103,46,111,117,116,102,105,108,101,44,32,34,97,34,41,13,10,32,
+32,32,32,32,32,108,111,99,97,108,32,115,116,114,32,61,32,115,116,114,
+105,110,103,46,102,111,114,109,97,116,40,34,91,37,45,54,115,37,115,93,
+32,37,115,58,32,37,115,92,110,34,44,13,10,32,32,32,32,32,32,32,
32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,109,115,
-103,41,41,13,10,13,10,32,32,32,32,32,32,32,32,45,45,32,79,117,
-116,112,117,116,32,116,111,32,108,111,103,32,102,105,108,101,13,10,32,32,
-32,32,32,32,32,32,105,102,32,108,111,103,46,111,117,116,102,105,108,101,
-32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,32,32,32,32,108,
-111,99,97,108,32,102,112,32,61,32,105,111,46,111,112,101,110,40,108,111,
-103,46,111,117,116,102,105,108,101,44,32,34,97,34,41,13,10,32,32,32,
-32,32,32,32,32,32,32,32,32,108,111,99,97,108,32,115,116,114,32,61,
-32,115,116,114,105,110,103,46,102,111,114,109,97,116,40,34,91,37,45,54,
-115,37,115,93,32,37,115,58,32,37,115,92,110,34,44,13,10,32,32,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-32,110,97,109,101,117,112,112,101,114,44,32,111,115,46,100,97,116,101,40,
-41,44,32,108,105,110,101,105,110,102,111,44,32,109,115,103,41,13,10,32,
-32,32,32,32,32,32,32,32,32,32,32,102,112,58,119,114,105,116,101,40,
-115,116,114,41,13,10,32,32,32,32,32,32,32,32,32,32,32,32,102,112,
-58,99,108,111,115,101,40,41,13,10,32,32,32,32,32,32,32,32,101,110,
-100,13,10,13,10,32,32,32,32,101,110,100,13,10,101,110,100,13,10,13,
-10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+32,32,32,32,32,110,97,109,101,117,112,112,101,114,44,32,111,115,46,100,
+97,116,101,40,41,44,32,108,105,110,101,105,110,102,111,44,32,109,115,103,
+41,13,10,32,32,32,32,32,32,102,112,58,119,114,105,116,101,40,115,116,
+114,41,13,10,32,32,32,32,32,32,102,112,58,99,108,111,115,101,40,41,
+13,10,32,32,32,32,101,110,100,13,10,13,10,32,32,101,110,100,13,10,
+101,110,100,13,10,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,45,45,32,
-69,120,112,111,114,116,32,116,111,32,74,105,110,46,32,13,10,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,13,10,45,45,32,69,120,112,111,114,116,32,116,111,32,74,105,110,46,
+32,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,13,10,13,10,106,105,110,46,108,
-111,103,32,61,32,108,111,103,13,10,0
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,13,
+10,106,105,110,46,108,111,103,32,61,32,108,111,103,13,10,0
};
diff --git a/src/libjin-lua/scripts/mouse/mouse.lua b/src/libjin-lua/scripts/mouse/mouse.lua
index 1d3d8df..d8e5423 100644
--- a/src/libjin-lua/scripts/mouse/mouse.lua
+++ b/src/libjin-lua/scripts/mouse/mouse.lua
@@ -4,9 +4,9 @@ jin.mouse = jin.mouse or {}
local button = {}
function jin.mouse.isDown(btn)
- return button[btn]
+ return button[btn]
end
function jin.mouse.set(btn, status)
- button[btn] = status
+ button[btn] = status
end
diff --git a/src/libjin-lua/scripts/mouse/mouse.lua.h b/src/libjin-lua/scripts/mouse/mouse.lua.h
index 455813f..b5f15ee 100644
--- a/src/libjin-lua/scripts/mouse/mouse.lua.h
+++ b/src/libjin-lua/scripts/mouse/mouse.lua.h
@@ -4,11 +4,11 @@ static char mouse_lua[] = {
117,115,101,32,111,114,32,123,125,32,13,10,13,10,108,111,99,97,108,32,
98,117,116,116,111,110,32,61,32,123,125,32,13,10,13,10,102,117,110,99,
116,105,111,110,32,106,105,110,46,109,111,117,115,101,46,105,115,68,111,119,
-110,40,98,116,110,41,32,13,10,32,32,32,32,114,101,116,117,114,110,32,
-98,117,116,116,111,110,91,98,116,110,93,13,10,101,110,100,32,13,10,13,
-10,102,117,110,99,116,105,111,110,32,106,105,110,46,109,111,117,115,101,46,
-115,101,116,40,98,116,110,44,32,115,116,97,116,117,115,41,32,13,10,32,
-32,32,32,98,117,116,116,111,110,91,98,116,110,93,32,61,32,115,116,97,
-116,117,115,13,10,101,110,100,32,13,10,0
+110,40,98,116,110,41,32,13,10,32,32,114,101,116,117,114,110,32,98,117,
+116,116,111,110,91,98,116,110,93,13,10,101,110,100,32,13,10,13,10,102,
+117,110,99,116,105,111,110,32,106,105,110,46,109,111,117,115,101,46,115,101,
+116,40,98,116,110,44,32,115,116,97,116,117,115,41,32,13,10,32,32,98,
+117,116,116,111,110,91,98,116,110,93,32,61,32,115,116,97,116,117,115,13,
+10,101,110,100,32,13,10,0
};
diff --git a/src/libjin-lua/scripts/path/path.lua b/src/libjin-lua/scripts/path/path.lua
index c6bcf41..e979114 100644
--- a/src/libjin-lua/scripts/path/path.lua
+++ b/src/libjin-lua/scripts/path/path.lua
@@ -6,5 +6,5 @@ jin.cwd = jin.args['cwd'] or '.'
-- Get full path of a given path.
function jin.path.full(path)
- return jin.cwd .. '/' .. path
+ return jin.cwd .. '/' .. path
end
diff --git a/src/libjin-lua/scripts/path/path.lua.h b/src/libjin-lua/scripts/path/path.lua.h
index f203ce6..f54f8a9 100644
--- a/src/libjin-lua/scripts/path/path.lua.h
+++ b/src/libjin-lua/scripts/path/path.lua.h
@@ -8,7 +8,7 @@ static char path_lua[] = {
32,102,117,108,108,32,112,97,116,104,32,111,102,32,97,32,103,105,118,101,
110,32,112,97,116,104,46,13,10,102,117,110,99,116,105,111,110,32,106,105,
110,46,112,97,116,104,46,102,117,108,108,40,112,97,116,104,41,13,10,32,
-32,32,32,114,101,116,117,114,110,32,106,105,110,46,99,119,100,32,46,46,
-32,39,47,39,32,46,46,32,112,97,116,104,13,10,101,110,100,13,10,0
+32,114,101,116,117,114,110,32,106,105,110,46,99,119,100,32,46,46,32,39,
+47,39,32,46,46,32,112,97,116,104,13,10,101,110,100,13,10,0
};
diff --git a/src/libjin-lua/scripts/physics/physics.lua b/src/libjin-lua/scripts/physics/physics.lua
index 05848aa..9b24a55 100644
--- a/src/libjin-lua/scripts/physics/physics.lua
+++ b/src/libjin-lua/scripts/physics/physics.lua
@@ -25,13 +25,13 @@ end
local function assertType(desiredType, value, name)
if type(value) ~= desiredType then
- error(name .. ' must be a ' .. desiredType .. ', but was ' .. tostring(value) .. '(a ' .. type(value) .. ')')
+ error(name .. ' must be a ' .. desiredType .. ', but was ' .. tostring(value) .. '(a ' .. type(value) .. ')')
end
end
local function assertIsPositiveNumber(value, name)
if type(value) ~= 'number' or value <= 0 then
- error(name .. ' must be a positive integer, but was ' .. tostring(value) .. '(' .. type(value) .. ')')
+ error(name .. ' must be a positive integer, but was ' .. tostring(value) .. '(' .. type(value) .. ')')
end
end
@@ -66,27 +66,27 @@ local function rect_getSegmentIntersectionIndices(x,y,w,h, x1,y1,x2,y2, ti1,ti2)
local p, q, r
for side = 1,4 do
- if side == 1 then nx,ny,p,q = -1, 0, -dx, x1 - x -- left
- elseif side == 2 then nx,ny,p,q = 1, 0, dx, x + w - x1 -- right
- elseif side == 3 then nx,ny,p,q = 0, -1, -dy, y1 - y -- top
- else nx,ny,p,q = 0, 1, dy, y + h - y1 -- bottom
- end
+ if side == 1 then nx,ny,p,q = -1, 0, -dx, x1 - x -- left
+ elseif side == 2 then nx,ny,p,q = 1, 0, dx, x + w - x1 -- right
+ elseif side == 3 then nx,ny,p,q = 0, -1, -dy, y1 - y -- top
+ else nx,ny,p,q = 0, 1, dy, y + h - y1 -- bottom
+ end
- if p == 0 then
- if q <= 0 then return nil end
- else
- r = q / p
- if p < 0 then
- if r > ti2 then return nil
- elseif r > ti1 then ti1,nx1,ny1 = r,nx,ny
- end
- else -- p > 0
- if r < ti1 then return nil
- elseif r < ti2 then ti2,nx2,ny2 = r,nx,ny
- end
- end
+ if p == 0 then
+ if q <= 0 then return nil end
+ else
+ r = q / p
+ if p < 0 then
+ if r > ti2 then return nil
+ elseif r > ti1 then ti1,nx1,ny1 = r,nx,ny
+ end
+ else -- p > 0
+ if r < ti1 then return nil
+ elseif r < ti2 then ti2,nx2,ny2 = r,nx,ny
+ end
end
end
+ end
return ti1,ti2, nx1,ny1, nx2,ny2
end
@@ -94,19 +94,19 @@ end
-- Calculates the minkowsky difference between 2 rects, which is another rect
local function rect_getDiff(x1,y1,w1,h1, x2,y2,w2,h2)
return x2 - x1 - w1,
- y2 - y1 - h1,
- w1 + w2,
- h1 + h2
+ y2 - y1 - h1,
+ w1 + w2,
+ h1 + h2
end
local function rect_containsPoint(x,y,w,h, px,py)
- return px - x > DELTA and py - y > DELTA and
- x + w - px > DELTA and y + h - py > DELTA
+ return px - x > DELTA and py - y > DELTA and
+ x + w - px > DELTA and y + h - py > DELTA
end
local function rect_isIntersecting(x1,y1,w1,h1, x2,y2,w2,h2)
return x1 < x2+w2 and x2 < x1+w1 and
- y1 < y2+h2 and y2 < y1+h1
+ y1 < y2+h2 and y2 < y1+h1
end
local function rect_getSquareDistance(x1,y1,w1,h1, x2,y2,w2,h2)
@@ -119,29 +119,29 @@ local function rect_detectCollision(x1,y1,w1,h1, x2,y2,w2,h2, goalX, goalY)
goalX = goalX or x1
goalY = goalY or y1
- local dx, dy = goalX - x1, goalY - y1
- local x,y,w,h = rect_getDiff(x1,y1,w1,h1, x2,y2,w2,h2)
+ local dx, dy = goalX - x1, goalY - y1
+ local x,y,w,h = rect_getDiff(x1,y1,w1,h1, x2,y2,w2,h2)
local overlaps, ti, nx, ny
if rect_containsPoint(x,y,w,h, 0,0) then -- item was intersecting other
- local px, py = rect_getNearestCorner(x,y,w,h, 0, 0)
- local wi, hi = min(w1, abs(px)), min(h1, abs(py)) -- area of intersection
- ti = -wi * hi -- ti is the negative area of intersection
- overlaps = true
+ local px, py = rect_getNearestCorner(x,y,w,h, 0, 0)
+ local wi, hi = min(w1, abs(px)), min(h1, abs(py)) -- area of intersection
+ ti = -wi * hi -- ti is the negative area of intersection
+ overlaps = true
else
- local ti1,ti2,nx1,ny1 = rect_getSegmentIntersectionIndices(x,y,w,h, 0,0,dx,dy, -math.huge, math.huge)
-
- -- item tunnels into other
- if ti1
- and ti1 < 1
- and (abs(ti1 - ti2) >= DELTA) -- special case for rect going through another rect's corner
- and (0 < ti1 + DELTA
- or 0 == ti1 and ti2 > 0)
- then
- ti, nx, ny = ti1, nx1, ny1
- overlaps = false
- end
+ local ti1,ti2,nx1,ny1 = rect_getSegmentIntersectionIndices(x,y,w,h, 0,0,dx,dy, -math.huge, math.huge)
+
+ -- item tunnels into other
+ if ti1
+ and ti1 < 1
+ and (abs(ti1 - ti2) >= DELTA) -- special case for rect going through another rect's corner
+ and (0 < ti1 + DELTA
+ or 0 == ti1 and ti2 > 0)
+ then
+ ti, nx, ny = ti1, nx1, ny1
+ overlaps = false
+ end
end
if not ti then return end
@@ -149,31 +149,31 @@ local function rect_detectCollision(x1,y1,w1,h1, x2,y2,w2,h2, goalX, goalY)
local tx, ty
if overlaps then
- if dx == 0 and dy == 0 then
- -- intersecting and not moving - use minimum displacement vector
- local px, py = rect_getNearestCorner(x,y,w,h, 0,0)
- if abs(px) < abs(py) then py = 0 else px = 0 end
- nx, ny = sign(px), sign(py)
- tx, ty = x1 + px, y1 + py
- else
- -- intersecting and moving - move in the opposite direction
- local ti1, _
- ti1,_,nx,ny = rect_getSegmentIntersectionIndices(x,y,w,h, 0,0,dx,dy, -math.huge, 1)
- if not ti1 then return end
- tx, ty = x1 + dx * ti1, y1 + dy * ti1
- end
+ if dx == 0 and dy == 0 then
+ -- intersecting and not moving - use minimum displacement vector
+ local px, py = rect_getNearestCorner(x,y,w,h, 0,0)
+ if abs(px) < abs(py) then py = 0 else px = 0 end
+ nx, ny = sign(px), sign(py)
+ tx, ty = x1 + px, y1 + py
+ else
+ -- intersecting and moving - move in the opposite direction
+ local ti1, _
+ ti1,_,nx,ny = rect_getSegmentIntersectionIndices(x,y,w,h, 0,0,dx,dy, -math.huge, 1)
+ if not ti1 then return end
+ tx, ty = x1 + dx * ti1, y1 + dy * ti1
+ end
else -- tunnel
- tx, ty = x1 + dx * ti, y1 + dy * ti
+ tx, ty = x1 + dx * ti, y1 + dy * ti
end
return {
- overlaps = overlaps,
- ti = ti,
- move = {x = dx, y = dy},
- normal = {x = nx, y = ny},
- touch = {x = tx, y = ty},
- itemRect = {x = x1, y = y1, w = w1, h = h1},
- otherRect = {x = x2, y = y2, w = w2, h = h2}
+ overlaps = overlaps,
+ ti = ti,
+ move = {x = dx, y = dy},
+ normal = {x = nx, y = ny},
+ touch = {x = tx, y = ty},
+ itemRect = {x = x1, y = y1, w = w1, h = h1},
+ otherRect = {x = x2, y = y2, w = w2, h = h2}
}
end
@@ -196,21 +196,21 @@ end
local function grid_traverse_initStep(cellSize, ct, t1, t2)
local v = t2 - t1
- if v > 0 then
- return 1, cellSize / v, ((ct + v) * cellSize - t1) / v
+ if v > 0 then
+ return 1, cellSize / v, ((ct + v) * cellSize - t1) / v
elseif v < 0 then
- return -1, -cellSize / v, ((ct + v - 1) * cellSize - t1) / v
+ return -1, -cellSize / v, ((ct + v - 1) * cellSize - t1) / v
else
- return 0, math.huge, math.huge
+ return 0, math.huge, math.huge
end
end
local function grid_traverse(cellSize, x1,y1,x2,y2, f)
- local cx1,cy1 = grid_toCell(cellSize, x1,y1)
- local cx2,cy2 = grid_toCell(cellSize, x2,y2)
+ local cx1,cy1 = grid_toCell(cellSize, x1,y1)
+ local cx2,cy2 = grid_toCell(cellSize, x2,y2)
local stepX, dx, tx = grid_traverse_initStep(cellSize, cx1, x1, x2)
local stepY, dy, ty = grid_traverse_initStep(cellSize, cy1, y1, y2)
- local cx,cy = cx1,cy1
+ local cx,cy = cx1,cy1
f(cx, cy)
@@ -218,15 +218,15 @@ local function grid_traverse(cellSize, x1,y1,x2,y2, f)
-- approaching the last cell in some occassions. We finish iterating
-- when we are *next* to the last cell
while abs(cx - cx2) + abs(cy - cy2) > 1 do
- if tx < ty then
- tx, cx = tx + dx, cx + stepX
- f(cx, cy)
- else
- -- Addition: include both cells when going through corners
- if tx == ty then f(cx + stepX, cy) end
- ty, cy = ty + dy, cy + stepY
- f(cx, cy)
- end
+ if tx < ty then
+ tx, cx = tx + dx, cx + stepX
+ f(cx, cy)
+ else
+ -- Addition: include both cells when going through corners
+ if tx == ty then f(cx + stepX, cy) end
+ ty, cy = ty + dy, cy + stepY
+ f(cx, cy)
+ end
end
-- If we have not arrived to the last cell, use it
@@ -259,11 +259,11 @@ local slide = function(world, col, x,y,w,h, goalX, goalY, filter)
local tch, move = col.touch, col.move
if move.x ~= 0 or move.y ~= 0 then
- if col.normal.x ~= 0 then
- goalX = tch.x
- else
- goalY = tch.y
- end
+ if col.normal.x ~= 0 then
+ goalX = tch.x
+ else
+ goalY = tch.y
+ end
end
col.slide = {x = goalX, y = goalY}
@@ -283,16 +283,16 @@ local bounce = function(world, col, x,y,w,h, goalX, goalY, filter)
local bx, by = tx, ty
if move.x ~= 0 or move.y ~= 0 then
- local bnx, bny = goalX - tx, goalY - ty
- if col.normal.x == 0 then bny = -bny else bnx = -bnx end
- bx, by = tx + bnx, ty + bny
+ local bnx, bny = goalX - tx, goalY - ty
+ if col.normal.x == 0 then bny = -bny else bnx = -bnx end
+ bx, by = tx + bnx, ty + bny
end
col.bounce = {x = bx, y = by}
- x,y = tch.x, tch.y
+ x,y = tch.x, tch.y
goalX, goalY = bx, by
- local cols, len = world:project(col.item, x,y,w,h, goalX, goalY, filter)
+ local cols, len = world:project(col.item, x,y,w,h, goalX, goalY, filter)
return goalX, goalY, cols, len
end
@@ -309,10 +309,10 @@ local function sortByWeight(a,b) return a.weight < b.weight end
local function sortByTiAndDistance(a,b)
if a.ti == b.ti then
- local ir, ar, br = a.itemRect, a.otherRect, b.otherRect
- local ad = rect_getSquareDistance(ir.x,ir.y,ir.w,ir.h, ar.x,ar.y,ar.w,ar.h)
- local bd = rect_getSquareDistance(ir.x,ir.y,ir.w,ir.h, br.x,br.y,br.w,br.h)
- return ad < bd
+ local ir, ar, br = a.itemRect, a.otherRect, b.otherRect
+ local ad = rect_getSquareDistance(ir.x,ir.y,ir.w,ir.h, ar.x,ar.y,ar.w,ar.h)
+ local bd = rect_getSquareDistance(ir.x,ir.y,ir.w,ir.h, br.x,br.y,br.w,br.h)
+ return ad < bd
end
return a.ti < b.ti
end
@@ -324,8 +324,8 @@ local function addItemToCell(self, item, cx, cy)
local cell = row[cx]
self.nonEmptyCells[cell] = true
if not cell.items[item] then
- cell.items[item] = true
- cell.itemCount = cell.itemCount + 1
+ cell.items[item] = true
+ cell.itemCount = cell.itemCount + 1
end
end
@@ -337,7 +337,7 @@ local function removeItemFromCell(self, item, cx, cy)
cell.items[item] = nil
cell.itemCount = cell.itemCount - 1
if cell.itemCount == 0 then
- self.nonEmptyCells[cell] = nil
+ self.nonEmptyCells[cell] = nil
end
return true
end
@@ -345,17 +345,17 @@ end
local function getDictItemsInCellRect(self, cl,ct,cw,ch)
local items_dict = {}
for cy=ct,ct+ch-1 do
- local row = self.rows[cy]
- if row then
- for cx=cl,cl+cw-1 do
- local cell = row[cx]
- if cell and cell.itemCount > 0 then -- no cell.itemCount > 1 because tunneling
- for item,_ in pairs(cell.items) do
- items_dict[item] = true
- end
- end
+ local row = self.rows[cy]
+ if row then
+ for cx=cl,cl+cw-1 do
+ local cell = row[cx]
+ if cell and cell.itemCount > 0 then -- no cell.itemCount > 1 because tunneling
+ for item,_ in pairs(cell.items) do
+ items_dict[item] = true
end
end
+ end
+ end
end
return items_dict
@@ -366,14 +366,14 @@ local function getCellsTouchedBySegment(self, x1,y1,x2,y2)
local cells, cellsLen, visited = {}, 0, {}
grid_traverse(self.cellSize, x1,y1,x2,y2, function(cx, cy)
- local row = self.rows[cy]
- if not row then return end
- local cell = row[cx]
- if not cell or visited[cell] then return end
+ local row = self.rows[cy]
+ if not row then return end
+ local cell = row[cx]
+ if not cell or visited[cell] then return end
- visited[cell] = true
- cellsLen = cellsLen + 1
- cells[cellsLen] = cell
+ visited[cell] = true
+ cellsLen = cellsLen + 1
+ cells[cellsLen] = cell
end)
return cells, cellsLen
@@ -384,24 +384,24 @@ local function getInfoAboutItemsTouchedBySegment(self, x1,y1, x2,y2, filter)
local cell, rect, l,t,w,h, ti1,ti2, tii0,tii1
local visited, itemInfo, itemInfoLen = {},{},0
for i=1,len do
- cell = cells[i]
- for item in pairs(cell.items) do
- if not visited[item] then
- visited[item] = true
- if (not filter or filter(item)) then
- rect = self.rects[item]
- l,t,w,h = rect.x,rect.y,rect.w,rect.h
-
- ti1,ti2 = rect_getSegmentIntersectionIndices(l,t,w,h, x1,y1, x2,y2, 0, 1)
- if ti1 and ((0 < ti1 and ti1 < 1) or (0 < ti2 and ti2 < 1)) then
- -- the sorting is according to the t of an infinite line, not the segment
- tii0,tii1 = rect_getSegmentIntersectionIndices(l,t,w,h, x1,y1, x2,y2, -math.huge, math.huge)
- itemInfoLen = itemInfoLen + 1
- itemInfo[itemInfoLen] = {item = item, ti1 = ti1, ti2 = ti2, weight = min(tii0,tii1)}
- end
- end
+ cell = cells[i]
+ for item in pairs(cell.items) do
+ if not visited[item] then
+ visited[item] = true
+ if (not filter or filter(item)) then
+ rect = self.rects[item]
+ l,t,w,h = rect.x,rect.y,rect.w,rect.h
+
+ ti1,ti2 = rect_getSegmentIntersectionIndices(l,t,w,h, x1,y1, x2,y2, 0, 1)
+ if ti1 and ((0 < ti1 and ti1 < 1) or (0 < ti2 and ti2 < 1)) then
+ -- the sorting is according to the t of an infinite line, not the segment
+ tii0,tii1 = rect_getSegmentIntersectionIndices(l,t,w,h, x1,y1, x2,y2, -math.huge, math.huge)
+ itemInfoLen = itemInfoLen + 1
+ itemInfo[itemInfoLen] = {item = item, ti1 = ti1, ti2 = ti2, weight = min(tii0,tii1)}
end
end
+ end
+ end
end
table.sort(itemInfo, sortByWeight)
return itemInfo, itemInfoLen
@@ -410,7 +410,7 @@ end
local function getResponseByName(self, name)
local response = self.responses[name]
if not response then
- error(('Unknown collision type: %s (%s)'):format(name, type(name)))
+ error(('Unknown collision type: %s (%s)'):format(name, type(name)))
end
return response
end
@@ -436,7 +436,7 @@ function World:project(item, x,y,w,h, goalX, goalY, filter)
-- This could probably be done with less cells using a polygon raster over the cells instead of a
-- bounding rect of the whole movement. Conditional to building a queryPolygon method
- local tl, tt = min(goalX, x), min(goalY, y)
+ local tl, tt = min(goalX, x), min(goalY, y)
local tr, tb = max(goalX + w, x+w), max(goalY + h, y+h)
local tw, th = tr-tl, tb-tt
@@ -445,24 +445,24 @@ function World:project(item, x,y,w,h, goalX, goalY, filter)
local dictItemsInCellRect = getDictItemsInCellRect(self, cl,ct,cw,ch)
for other,_ in pairs(dictItemsInCellRect) do
- if not visited[other] then
- visited[other] = true
-
- local responseName = filter(item, other)
- if responseName then
- local ox,oy,ow,oh = self:getRect(other)
- local col = rect_detectCollision(x,y,w,h, ox,oy,ow,oh, goalX, goalY)
-
- if col then
- col.other = other
- col.item = item
- col.type = responseName
-
- len = len + 1
- collisions[len] = col
- end
- end
+ if not visited[other] then
+ visited[other] = true
+
+ local responseName = filter(item, other)
+ if responseName then
+ local ox,oy,ow,oh = self:getRect(other)
+ local col = rect_detectCollision(x,y,w,h, ox,oy,ow,oh, goalX, goalY)
+
+ if col then
+ col.other = other
+ col.item = item
+ col.type = responseName
+
+ len = len + 1
+ collisions[len] = col
end
+ end
+ end
end
table.sort(collisions, sortByTiAndDistance)
@@ -473,9 +473,9 @@ end
function World:countCells()
local count = 0
for _,row in pairs(self.rows) do
- for _,_ in pairs(row) do
- count = count + 1
- end
+ for _,_ in pairs(row) do
+ count = count + 1
+ end
end
return count
end
@@ -487,8 +487,8 @@ end
function World:getItems()
local items, len = {}, 0
for item,_ in pairs(self.rects) do
- len = len + 1
- items[len] = item
+ len = len + 1
+ items[len] = item
end
return items, len
end
@@ -502,7 +502,7 @@ end
function World:getRect(item)
local rect = self.rects[item]
if not rect then
- error('Item ' .. tostring(item) .. ' must be added to the world before getting its rect. Use world:add(item, x,y,w,h) to add it first.')
+ error('Item ' .. tostring(item) .. ' must be added to the world before getting its rect. Use world:add(item, x,y,w,h) to add it first.')
end
return rect.x, rect.y, rect.w, rect.h
end
@@ -529,13 +529,13 @@ function World:queryRect(x,y,w,h, filter)
local rect
for item,_ in pairs(dictItemsInCellRect) do
- rect = self.rects[item]
- if (not filter or filter(item))
- and rect_isIntersecting(x,y,w,h, rect.x, rect.y, rect.w, rect.h)
- then
- len = len + 1
- items[len] = item
- end
+ rect = self.rects[item]
+ if (not filter or filter(item))
+ and rect_isIntersecting(x,y,w,h, rect.x, rect.y, rect.w, rect.h)
+ then
+ len = len + 1
+ items[len] = item
+ end
end
return items, len
@@ -549,13 +549,13 @@ function World:queryPoint(x,y, filter)
local rect
for item,_ in pairs(dictItemsInCellRect) do
- rect = self.rects[item]
- if (not filter or filter(item))
- and rect_containsPoint(rect.x, rect.y, rect.w, rect.h, x, y)
- then
- len = len + 1
- items[len] = item
- end
+ rect = self.rects[item]
+ if (not filter or filter(item))
+ and rect_containsPoint(rect.x, rect.y, rect.w, rect.h, x, y)
+ then
+ len = len + 1
+ items[len] = item
+ end
end
return items, len
@@ -565,25 +565,25 @@ function World:querySegment(x1, y1, x2, y2, filter)
local itemInfo, len = getInfoAboutItemsTouchedBySegment(self, x1, y1, x2, y2, filter)
local items = {}
for i=1, len do
- items[i] = itemInfo[i].item
+ items[i] = itemInfo[i].item
end
return items, len
end
function World:querySegmentWithCoords(x1, y1, x2, y2, filter)
local itemInfo, len = getInfoAboutItemsTouchedBySegment(self, x1, y1, x2, y2, filter)
- local dx, dy = x2-x1, y2-y1
+ local dx, dy = x2-x1, y2-y1
local info, ti1, ti2
for i=1, len do
- info = itemInfo[i]
- ti1 = info.ti1
- ti2 = info.ti2
-
- info.weight = nil
- info.x1 = x1 + dx * ti1
- info.y1 = y1 + dy * ti1
- info.x2 = x1 + dx * ti2
- info.y2 = y1 + dy * ti2
+ info = itemInfo[i]
+ ti1 = info.ti1
+ ti2 = info.ti2
+
+ info.weight = nil
+ info.x1 = x1 + dx * ti1
+ info.y1 = y1 + dy * ti1
+ info.x2 = x1 + dx * ti2
+ info.y2 = y1 + dy * ti2
end
return itemInfo, len
end
@@ -594,7 +594,7 @@ end
function World:add(item, x,y,w,h)
local rect = self.rects[item]
if rect then
- error('Item ' .. tostring(item) .. ' added to the world twice.')
+ error('Item ' .. tostring(item) .. ' added to the world twice.')
end
assertIsRect(x,y,w,h)
@@ -602,9 +602,9 @@ function World:add(item, x,y,w,h)
local cl,ct,cw,ch = grid_toCellRect(self.cellSize, x,y,w,h)
for cy = ct, ct+ch-1 do
- for cx = cl, cl+cw-1 do
- addItemToCell(self, item, cx, cy)
- end
+ for cx = cl, cl+cw-1 do
+ addItemToCell(self, item, cx, cy)
+ end
end
return item
@@ -616,9 +616,9 @@ function World:remove(item)
self.rects[item] = nil
local cl,ct,cw,ch = grid_toCellRect(self.cellSize, x,y,w,h)
for cy = ct, ct+ch-1 do
- for cx = cl, cl+cw-1 do
- removeItemFromCell(self, item, cx, cy)
- end
+ for cx = cl, cl+cw-1 do
+ removeItemFromCell(self, item, cx, cy)
+ end
end
end
@@ -629,38 +629,38 @@ function World:update(item, x2,y2,w2,h2)
if x1 ~= x2 or y1 ~= y2 or w1 ~= w2 or h1 ~= h2 then
- local cellSize = self.cellSize
- local cl1,ct1,cw1,ch1 = grid_toCellRect(cellSize, x1,y1,w1,h1)
- local cl2,ct2,cw2,ch2 = grid_toCellRect(cellSize, x2,y2,w2,h2)
+ local cellSize = self.cellSize
+ local cl1,ct1,cw1,ch1 = grid_toCellRect(cellSize, x1,y1,w1,h1)
+ local cl2,ct2,cw2,ch2 = grid_toCellRect(cellSize, x2,y2,w2,h2)
- if cl1 ~= cl2 or ct1 ~= ct2 or cw1 ~= cw2 or ch1 ~= ch2 then
+ if cl1 ~= cl2 or ct1 ~= ct2 or cw1 ~= cw2 or ch1 ~= ch2 then
- local cr1, cb1 = cl1+cw1-1, ct1+ch1-1
- local cr2, cb2 = cl2+cw2-1, ct2+ch2-1
- local cyOut
+ local cr1, cb1 = cl1+cw1-1, ct1+ch1-1
+ local cr2, cb2 = cl2+cw2-1, ct2+ch2-1
+ local cyOut
- for cy = ct1, cb1 do
- cyOut = cy < ct2 or cy > cb2
- for cx = cl1, cr1 do
- if cyOut or cx < cl2 or cx > cr2 then
- removeItemFromCell(self, item, cx, cy)
- end
- end
+ for cy = ct1, cb1 do
+ cyOut = cy < ct2 or cy > cb2
+ for cx = cl1, cr1 do
+ if cyOut or cx < cl2 or cx > cr2 then
+ removeItemFromCell(self, item, cx, cy)
end
+ end
+ end
- for cy = ct2, cb2 do
- cyOut = cy < ct1 or cy > cb1
- for cx = cl2, cr2 do
- if cyOut or cx < cl1 or cx > cr1 then
- addItemToCell(self, item, cx, cy)
- end
- end
+ for cy = ct2, cb2 do
+ cyOut = cy < ct1 or cy > cb1
+ for cx = cl2, cr2 do
+ if cyOut or cx < cl1 or cx > cr1 then
+ addItemToCell(self, item, cx, cy)
end
-
end
+ end
+
+ end
- local rect = self.rects[item]
- rect.x, rect.y, rect.w, rect.h = x2,y2,w2,h2
+ local rect = self.rects[item]
+ rect.x, rect.y, rect.w, rect.h = x2,y2,w2,h2
end
end
@@ -678,8 +678,8 @@ function World:check(item, goalX, goalY, filter)
local visited = {[item] = true}
local visitedFilter = function(itm, other)
- if visited[other] then return false end
- return filter(itm, other)
+ if visited[other] then return false end
+ return filter(itm, other)
end
local cols, len = {}, 0
@@ -689,21 +689,21 @@ function World:check(item, goalX, goalY, filter)
local projected_cols, projected_len = self:project(item, x,y,w,h, goalX,goalY, visitedFilter)
while projected_len > 0 do
- local col = projected_cols[1]
- len = len + 1
- cols[len] = col
+ local col = projected_cols[1]
+ len = len + 1
+ cols[len] = col
- visited[col.other] = true
+ visited[col.other] = true
- local response = getResponseByName(self, col.type)
+ local response = getResponseByName(self, col.type)
- goalX, goalY, projected_cols, projected_len = response(
- self,
- col,
- x, y, w, h,
- goalX, goalY,
- visitedFilter
- )
+ goalX, goalY, projected_cols, projected_len = response(
+ self,
+ col,
+ x, y, w, h,
+ goalX, goalY,
+ visitedFilter
+ )
end
return goalX, goalY, cols, len
@@ -716,11 +716,11 @@ bump.newWorld = function(cellSize)
cellSize = cellSize or 64
assertIsPositiveNumber(cellSize, 'cellSize')
local world = setmetatable({
- cellSize = cellSize,
- rects = {},
- rows = {},
- nonEmptyCells = {},
- responses = {}
+ cellSize = cellSize,
+ rects = {},
+ rows = {},
+ nonEmptyCells = {},
+ responses = {}
}, World_mt)
world:addResponse('touch', touch)
@@ -732,13 +732,13 @@ bump.newWorld = function(cellSize)
end
bump.rect = {
- getNearestCorner = rect_getNearestCorner,
+ getNearestCorner = rect_getNearestCorner,
getSegmentIntersectionIndices = rect_getSegmentIntersectionIndices,
- getDiff = rect_getDiff,
- containsPoint = rect_containsPoint,
- isIntersecting = rect_isIntersecting,
- getSquareDistance = rect_getSquareDistance,
- detectCollision = rect_detectCollision
+ getDiff = rect_getDiff,
+ containsPoint = rect_containsPoint,
+ isIntersecting = rect_isIntersecting,
+ getSquareDistance = rect_getSquareDistance,
+ detectCollision = rect_detectCollision
}
bump.responses = {
diff --git a/src/libjin-lua/scripts/physics/physics.lua.h b/src/libjin-lua/scripts/physics/physics.lua.h
index 08e21ce..01a0cff 100644
--- a/src/libjin-lua/scripts/physics/physics.lua.h
+++ b/src/libjin-lua/scripts/physics/physics.lua.h
@@ -44,515 +44,500 @@ static char physics_lua[] = {
101,115,105,114,101,100,84,121,112,101,44,32,118,97,108,117,101,44,32,110,
97,109,101,41,13,10,32,32,105,102,32,116,121,112,101,40,118,97,108,117,
101,41,32,126,61,32,100,101,115,105,114,101,100,84,121,112,101,32,116,104,
-101,110,13,10,32,32,32,32,101,114,114,111,114,40,110,97,109,101,32,46,
-46,32,39,32,109,117,115,116,32,98,101,32,97,32,39,32,46,46,32,100,
-101,115,105,114,101,100,84,121,112,101,32,46,46,32,39,44,32,98,117,116,
-32,119,97,115,32,39,32,46,46,32,116,111,115,116,114,105,110,103,40,118,
-97,108,117,101,41,32,46,46,32,39,40,97,32,39,32,46,46,32,116,121,
-112,101,40,118,97,108,117,101,41,32,46,46,32,39,41,39,41,13,10,32,
-32,101,110,100,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,102,
-117,110,99,116,105,111,110,32,97,115,115,101,114,116,73,115,80,111,115,105,
-116,105,118,101,78,117,109,98,101,114,40,118,97,108,117,101,44,32,110,97,
-109,101,41,13,10,32,32,105,102,32,116,121,112,101,40,118,97,108,117,101,
-41,32,126,61,32,39,110,117,109,98,101,114,39,32,111,114,32,118,97,108,
-117,101,32,60,61,32,48,32,116,104,101,110,13,10,32,32,32,32,101,114,
-114,111,114,40,110,97,109,101,32,46,46,32,39,32,109,117,115,116,32,98,
-101,32,97,32,112,111,115,105,116,105,118,101,32,105,110,116,101,103,101,114,
-44,32,98,117,116,32,119,97,115,32,39,32,46,46,32,116,111,115,116,114,
-105,110,103,40,118,97,108,117,101,41,32,46,46,32,39,40,39,32,46,46,
-32,116,121,112,101,40,118,97,108,117,101,41,32,46,46,32,39,41,39,41,
-13,10,32,32,101,110,100,13,10,101,110,100,13,10,13,10,108,111,99,97,
-108,32,102,117,110,99,116,105,111,110,32,97,115,115,101,114,116,73,115,82,
-101,99,116,40,120,44,121,44,119,44,104,41,13,10,32,32,97,115,115,101,
-114,116,84,121,112,101,40,39,110,117,109,98,101,114,39,44,32,120,44,32,
-39,120,39,41,13,10,32,32,97,115,115,101,114,116,84,121,112,101,40,39,
-110,117,109,98,101,114,39,44,32,121,44,32,39,121,39,41,13,10,32,32,
-97,115,115,101,114,116,73,115,80,111,115,105,116,105,118,101,78,117,109,98,
-101,114,40,119,44,32,39,119,39,41,13,10,32,32,97,115,115,101,114,116,
-73,115,80,111,115,105,116,105,118,101,78,117,109,98,101,114,40,104,44,32,
-39,104,39,41,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,100,
-101,102,97,117,108,116,70,105,108,116,101,114,32,61,32,102,117,110,99,116,
-105,111,110,40,41,13,10,32,32,114,101,116,117,114,110,32,39,115,108,105,
-100,101,39,13,10,101,110,100,13,10,13,10,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,45,45,32,82,
-101,99,116,97,110,103,108,101,32,102,117,110,99,116,105,111,110,115,13,10,
+101,110,13,10,32,32,101,114,114,111,114,40,110,97,109,101,32,46,46,32,
+39,32,109,117,115,116,32,98,101,32,97,32,39,32,46,46,32,100,101,115,
+105,114,101,100,84,121,112,101,32,46,46,32,39,44,32,98,117,116,32,119,
+97,115,32,39,32,46,46,32,116,111,115,116,114,105,110,103,40,118,97,108,
+117,101,41,32,46,46,32,39,40,97,32,39,32,46,46,32,116,121,112,101,
+40,118,97,108,117,101,41,32,46,46,32,39,41,39,41,13,10,32,32,101,
+110,100,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,102,117,110,
+99,116,105,111,110,32,97,115,115,101,114,116,73,115,80,111,115,105,116,105,
+118,101,78,117,109,98,101,114,40,118,97,108,117,101,44,32,110,97,109,101,
+41,13,10,32,32,105,102,32,116,121,112,101,40,118,97,108,117,101,41,32,
+126,61,32,39,110,117,109,98,101,114,39,32,111,114,32,118,97,108,117,101,
+32,60,61,32,48,32,116,104,101,110,13,10,32,32,101,114,114,111,114,40,
+110,97,109,101,32,46,46,32,39,32,109,117,115,116,32,98,101,32,97,32,
+112,111,115,105,116,105,118,101,32,105,110,116,101,103,101,114,44,32,98,117,
+116,32,119,97,115,32,39,32,46,46,32,116,111,115,116,114,105,110,103,40,
+118,97,108,117,101,41,32,46,46,32,39,40,39,32,46,46,32,116,121,112,
+101,40,118,97,108,117,101,41,32,46,46,32,39,41,39,41,13,10,32,32,
+101,110,100,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,102,117,
+110,99,116,105,111,110,32,97,115,115,101,114,116,73,115,82,101,99,116,40,
+120,44,121,44,119,44,104,41,13,10,32,32,97,115,115,101,114,116,84,121,
+112,101,40,39,110,117,109,98,101,114,39,44,32,120,44,32,39,120,39,41,
+13,10,32,32,97,115,115,101,114,116,84,121,112,101,40,39,110,117,109,98,
+101,114,39,44,32,121,44,32,39,121,39,41,13,10,32,32,97,115,115,101,
+114,116,73,115,80,111,115,105,116,105,118,101,78,117,109,98,101,114,40,119,
+44,32,39,119,39,41,13,10,32,32,97,115,115,101,114,116,73,115,80,111,
+115,105,116,105,118,101,78,117,109,98,101,114,40,104,44,32,39,104,39,41,
+13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,100,101,102,97,117,
+108,116,70,105,108,116,101,114,32,61,32,102,117,110,99,116,105,111,110,40,
+41,13,10,32,32,114,101,116,117,114,110,32,39,115,108,105,100,101,39,13,
+10,101,110,100,13,10,13,10,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,13,10,45,45,32,82,101,99,116,97,
+110,103,108,101,32,102,117,110,99,116,105,111,110,115,13,10,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,
-32,114,101,99,116,95,103,101,116,78,101,97,114,101,115,116,67,111,114,110,
-101,114,40,120,44,121,44,119,44,104,44,32,112,120,44,32,112,121,41,13,
-10,32,32,114,101,116,117,114,110,32,110,101,97,114,101,115,116,40,112,120,
-44,32,120,44,32,120,43,119,41,44,32,110,101,97,114,101,115,116,40,112,
-121,44,32,121,44,32,121,43,104,41,13,10,101,110,100,13,10,13,10,45,
-45,32,84,104,105,115,32,105,115,32,97,32,103,101,110,101,114,97,108,105,
-122,101,100,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,111,
-102,32,116,104,101,32,108,105,97,110,103,45,98,97,114,115,107,121,32,97,
-108,103,111,114,105,116,104,109,44,32,119,104,105,99,104,32,97,108,115,111,
-32,114,101,116,117,114,110,115,13,10,45,45,32,116,104,101,32,110,111,114,
-109,97,108,115,32,111,102,32,116,104,101,32,115,105,100,101,115,32,119,104,
-101,114,101,32,116,104,101,32,115,101,103,109,101,110,116,32,105,110,116,101,
-114,115,101,99,116,115,46,13,10,45,45,32,82,101,116,117,114,110,115,32,
-110,105,108,32,105,102,32,116,104,101,32,115,101,103,109,101,110,116,32,110,
-101,118,101,114,32,116,111,117,99,104,101,115,32,116,104,101,32,114,101,99,
-116,13,10,45,45,32,78,111,116,105,99,101,32,116,104,97,116,32,110,111,
-114,109,97,108,115,32,97,114,101,32,111,110,108,121,32,103,117,97,114,97,
-110,116,101,101,100,32,116,111,32,98,101,32,97,99,99,117,114,97,116,101,
-32,119,104,101,110,32,105,110,105,116,105,97,108,108,121,32,116,105,49,44,
-32,116,105,50,32,61,61,32,45,109,97,116,104,46,104,117,103,101,44,32,
-109,97,116,104,46,104,117,103,101,13,10,108,111,99,97,108,32,102,117,110,
-99,116,105,111,110,32,114,101,99,116,95,103,101,116,83,101,103,109,101,110,
-116,73,110,116,101,114,115,101,99,116,105,111,110,73,110,100,105,99,101,115,
-40,120,44,121,44,119,44,104,44,32,120,49,44,121,49,44,120,50,44,121,
-50,44,32,116,105,49,44,116,105,50,41,13,10,32,32,116,105,49,44,32,
-116,105,50,32,61,32,116,105,49,32,111,114,32,48,44,32,116,105,50,32,
-111,114,32,49,13,10,32,32,108,111,99,97,108,32,100,120,44,32,100,121,
-32,61,32,120,50,45,120,49,44,32,121,50,45,121,49,13,10,32,32,108,
-111,99,97,108,32,110,120,44,32,110,121,13,10,32,32,108,111,99,97,108,
-32,110,120,49,44,32,110,121,49,44,32,110,120,50,44,32,110,121,50,32,
-61,32,48,44,48,44,48,44,48,13,10,32,32,108,111,99,97,108,32,112,
-44,32,113,44,32,114,13,10,13,10,32,32,102,111,114,32,115,105,100,101,
-32,61,32,49,44,52,32,100,111,13,10,32,32,32,32,105,102,32,32,32,
-32,32,115,105,100,101,32,61,61,32,49,32,116,104,101,110,32,110,120,44,
-110,121,44,112,44,113,32,61,32,45,49,44,32,32,48,44,32,45,100,120,
-44,32,120,49,32,45,32,120,32,32,32,32,32,45,45,32,108,101,102,116,
-13,10,32,32,32,32,101,108,115,101,105,102,32,115,105,100,101,32,61,61,
-32,50,32,116,104,101,110,32,110,120,44,110,121,44,112,44,113,32,61,32,
-32,49,44,32,32,48,44,32,32,100,120,44,32,120,32,43,32,119,32,45,
-32,120,49,32,45,45,32,114,105,103,104,116,13,10,32,32,32,32,101,108,
-115,101,105,102,32,115,105,100,101,32,61,61,32,51,32,116,104,101,110,32,
-110,120,44,110,121,44,112,44,113,32,61,32,32,48,44,32,45,49,44,32,
-45,100,121,44,32,121,49,32,45,32,121,32,32,32,32,32,45,45,32,116,
-111,112,13,10,32,32,32,32,101,108,115,101,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,32,110,120,44,110,121,44,112,44,113,32,
-61,32,32,48,44,32,32,49,44,32,32,100,121,44,32,121,32,43,32,104,
-32,45,32,121,49,32,45,45,32,98,111,116,116,111,109,13,10,32,32,32,
-32,101,110,100,13,10,13,10,32,32,32,32,105,102,32,112,32,61,61,32,
-48,32,116,104,101,110,13,10,32,32,32,32,32,32,105,102,32,113,32,60,
-61,32,48,32,116,104,101,110,32,114,101,116,117,114,110,32,110,105,108,32,
-101,110,100,13,10,32,32,32,32,101,108,115,101,13,10,32,32,32,32,32,
-32,114,32,61,32,113,32,47,32,112,13,10,32,32,32,32,32,32,105,102,
-32,112,32,60,32,48,32,116,104,101,110,13,10,32,32,32,32,32,32,32,
-32,105,102,32,32,32,32,32,114,32,62,32,116,105,50,32,116,104,101,110,
-32,114,101,116,117,114,110,32,110,105,108,13,10,32,32,32,32,32,32,32,
-32,101,108,115,101,105,102,32,114,32,62,32,116,105,49,32,116,104,101,110,
-32,116,105,49,44,110,120,49,44,110,121,49,32,61,32,114,44,110,120,44,
-110,121,13,10,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,
-32,32,32,101,108,115,101,32,45,45,32,112,32,62,32,48,13,10,32,32,
-32,32,32,32,32,32,105,102,32,32,32,32,32,114,32,60,32,116,105,49,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,
+13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,114,101,99,
+116,95,103,101,116,78,101,97,114,101,115,116,67,111,114,110,101,114,40,120,
+44,121,44,119,44,104,44,32,112,120,44,32,112,121,41,13,10,32,32,114,
+101,116,117,114,110,32,110,101,97,114,101,115,116,40,112,120,44,32,120,44,
+32,120,43,119,41,44,32,110,101,97,114,101,115,116,40,112,121,44,32,121,
+44,32,121,43,104,41,13,10,101,110,100,13,10,13,10,45,45,32,84,104,
+105,115,32,105,115,32,97,32,103,101,110,101,114,97,108,105,122,101,100,32,
+105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,111,102,32,116,104,
+101,32,108,105,97,110,103,45,98,97,114,115,107,121,32,97,108,103,111,114,
+105,116,104,109,44,32,119,104,105,99,104,32,97,108,115,111,32,114,101,116,
+117,114,110,115,13,10,45,45,32,116,104,101,32,110,111,114,109,97,108,115,
+32,111,102,32,116,104,101,32,115,105,100,101,115,32,119,104,101,114,101,32,
+116,104,101,32,115,101,103,109,101,110,116,32,105,110,116,101,114,115,101,99,
+116,115,46,13,10,45,45,32,82,101,116,117,114,110,115,32,110,105,108,32,
+105,102,32,116,104,101,32,115,101,103,109,101,110,116,32,110,101,118,101,114,
+32,116,111,117,99,104,101,115,32,116,104,101,32,114,101,99,116,13,10,45,
+45,32,78,111,116,105,99,101,32,116,104,97,116,32,110,111,114,109,97,108,
+115,32,97,114,101,32,111,110,108,121,32,103,117,97,114,97,110,116,101,101,
+100,32,116,111,32,98,101,32,97,99,99,117,114,97,116,101,32,119,104,101,
+110,32,105,110,105,116,105,97,108,108,121,32,116,105,49,44,32,116,105,50,
+32,61,61,32,45,109,97,116,104,46,104,117,103,101,44,32,109,97,116,104,
+46,104,117,103,101,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,
+110,32,114,101,99,116,95,103,101,116,83,101,103,109,101,110,116,73,110,116,
+101,114,115,101,99,116,105,111,110,73,110,100,105,99,101,115,40,120,44,121,
+44,119,44,104,44,32,120,49,44,121,49,44,120,50,44,121,50,44,32,116,
+105,49,44,116,105,50,41,13,10,32,32,116,105,49,44,32,116,105,50,32,
+61,32,116,105,49,32,111,114,32,48,44,32,116,105,50,32,111,114,32,49,
+13,10,32,32,108,111,99,97,108,32,100,120,44,32,100,121,32,61,32,120,
+50,45,120,49,44,32,121,50,45,121,49,13,10,32,32,108,111,99,97,108,
+32,110,120,44,32,110,121,13,10,32,32,108,111,99,97,108,32,110,120,49,
+44,32,110,121,49,44,32,110,120,50,44,32,110,121,50,32,61,32,48,44,
+48,44,48,44,48,13,10,32,32,108,111,99,97,108,32,112,44,32,113,44,
+32,114,13,10,13,10,32,32,102,111,114,32,115,105,100,101,32,61,32,49,
+44,52,32,100,111,13,10,32,32,105,102,32,32,32,115,105,100,101,32,61,
+61,32,49,32,116,104,101,110,32,110,120,44,110,121,44,112,44,113,32,61,
+32,45,49,44,32,32,48,44,32,45,100,120,44,32,120,49,32,45,32,120,
+32,32,32,45,45,32,108,101,102,116,13,10,32,32,101,108,115,101,105,102,
+32,115,105,100,101,32,61,61,32,50,32,116,104,101,110,32,110,120,44,110,
+121,44,112,44,113,32,61,32,32,49,44,32,32,48,44,32,32,100,120,44,
+32,120,32,43,32,119,32,45,32,120,49,32,45,45,32,114,105,103,104,116,
+13,10,32,32,101,108,115,101,105,102,32,115,105,100,101,32,61,61,32,51,
+32,116,104,101,110,32,110,120,44,110,121,44,112,44,113,32,61,32,32,48,
+44,32,45,49,44,32,45,100,121,44,32,121,49,32,45,32,121,32,32,32,
+45,45,32,116,111,112,13,10,32,32,101,108,115,101,32,32,32,32,32,32,
+32,32,32,32,110,120,44,110,121,44,112,44,113,32,61,32,32,48,44,32,
+32,49,44,32,32,100,121,44,32,121,32,43,32,104,32,45,32,121,49,32,
+45,45,32,98,111,116,116,111,109,13,10,32,32,101,110,100,13,10,13,10,
+32,32,105,102,32,112,32,61,61,32,48,32,116,104,101,110,13,10,32,32,
+32,32,105,102,32,113,32,60,61,32,48,32,116,104,101,110,32,114,101,116,
+117,114,110,32,110,105,108,32,101,110,100,13,10,32,32,101,108,115,101,13,
+10,32,32,32,32,114,32,61,32,113,32,47,32,112,13,10,32,32,32,32,
+105,102,32,112,32,60,32,48,32,116,104,101,110,13,10,32,32,32,32,105,
+102,32,32,32,114,32,62,32,116,105,50,32,116,104,101,110,32,114,101,116,
+117,114,110,32,110,105,108,13,10,32,32,32,32,101,108,115,101,105,102,32,
+114,32,62,32,116,105,49,32,116,104,101,110,32,116,105,49,44,110,120,49,
+44,110,121,49,32,61,32,114,44,110,120,44,110,121,13,10,32,32,32,32,
+101,110,100,13,10,32,32,32,32,101,108,115,101,32,45,45,32,112,32,62,
+32,48,13,10,32,32,32,32,105,102,32,32,32,114,32,60,32,116,105,49,
32,116,104,101,110,32,114,101,116,117,114,110,32,110,105,108,13,10,32,32,
-32,32,32,32,32,32,101,108,115,101,105,102,32,114,32,60,32,116,105,50,
-32,116,104,101,110,32,116,105,50,44,110,120,50,44,110,121,50,32,61,32,
-114,44,110,120,44,110,121,13,10,32,32,32,32,32,32,32,32,101,110,100,
-13,10,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,101,110,100,
-13,10,32,32,101,110,100,13,10,13,10,32,32,114,101,116,117,114,110,32,
-116,105,49,44,116,105,50,44,32,110,120,49,44,110,121,49,44,32,110,120,
-50,44,110,121,50,13,10,101,110,100,13,10,13,10,45,45,32,67,97,108,
-99,117,108,97,116,101,115,32,116,104,101,32,109,105,110,107,111,119,115,107,
-121,32,100,105,102,102,101,114,101,110,99,101,32,98,101,116,119,101,101,110,
-32,50,32,114,101,99,116,115,44,32,119,104,105,99,104,32,105,115,32,97,
-110,111,116,104,101,114,32,114,101,99,116,13,10,108,111,99,97,108,32,102,
-117,110,99,116,105,111,110,32,114,101,99,116,95,103,101,116,68,105,102,102,
-40,120,49,44,121,49,44,119,49,44,104,49,44,32,120,50,44,121,50,44,
-119,50,44,104,50,41,13,10,32,32,114,101,116,117,114,110,32,120,50,32,
-45,32,120,49,32,45,32,119,49,44,13,10,32,32,32,32,32,32,32,32,
-32,121,50,32,45,32,121,49,32,45,32,104,49,44,13,10,32,32,32,32,
+32,32,101,108,115,101,105,102,32,114,32,60,32,116,105,50,32,116,104,101,
+110,32,116,105,50,44,110,120,50,44,110,121,50,32,61,32,114,44,110,120,
+44,110,121,13,10,32,32,32,32,101,110,100,13,10,32,32,32,32,101,110,
+100,13,10,32,32,101,110,100,13,10,32,32,101,110,100,13,10,13,10,32,
+32,114,101,116,117,114,110,32,116,105,49,44,116,105,50,44,32,110,120,49,
+44,110,121,49,44,32,110,120,50,44,110,121,50,13,10,101,110,100,13,10,
+13,10,45,45,32,67,97,108,99,117,108,97,116,101,115,32,116,104,101,32,
+109,105,110,107,111,119,115,107,121,32,100,105,102,102,101,114,101,110,99,101,
+32,98,101,116,119,101,101,110,32,50,32,114,101,99,116,115,44,32,119,104,
+105,99,104,32,105,115,32,97,110,111,116,104,101,114,32,114,101,99,116,13,
+10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,114,101,99,116,
+95,103,101,116,68,105,102,102,40,120,49,44,121,49,44,119,49,44,104,49,
+44,32,120,50,44,121,50,44,119,50,44,104,50,41,13,10,32,32,114,101,
+116,117,114,110,32,120,50,32,45,32,120,49,32,45,32,119,49,44,13,10,
+32,32,32,32,32,121,50,32,45,32,121,49,32,45,32,104,49,44,13,10,
32,32,32,32,32,119,49,32,43,32,119,50,44,13,10,32,32,32,32,32,
-32,32,32,32,104,49,32,43,32,104,50,13,10,101,110,100,13,10,13,10,
-108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,114,101,99,116,95,
-99,111,110,116,97,105,110,115,80,111,105,110,116,40,120,44,121,44,119,44,
-104,44,32,112,120,44,112,121,41,13,10,32,32,114,101,116,117,114,110,32,
-112,120,32,45,32,120,32,62,32,68,69,76,84,65,32,32,32,32,32,32,
-97,110,100,32,112,121,32,45,32,121,32,62,32,68,69,76,84,65,32,97,
-110,100,13,10,32,32,32,32,32,32,32,32,32,120,32,43,32,119,32,45,
-32,112,120,32,62,32,68,69,76,84,65,32,32,97,110,100,32,121,32,43,
-32,104,32,45,32,112,121,32,62,32,68,69,76,84,65,13,10,101,110,100,
-13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,114,
-101,99,116,95,105,115,73,110,116,101,114,115,101,99,116,105,110,103,40,120,
+104,49,32,43,32,104,50,13,10,101,110,100,13,10,13,10,108,111,99,97,
+108,32,102,117,110,99,116,105,111,110,32,114,101,99,116,95,99,111,110,116,
+97,105,110,115,80,111,105,110,116,40,120,44,121,44,119,44,104,44,32,112,
+120,44,112,121,41,13,10,32,32,114,101,116,117,114,110,32,112,120,32,45,
+32,120,32,62,32,68,69,76,84,65,32,32,32,32,97,110,100,32,112,121,
+32,45,32,121,32,62,32,68,69,76,84,65,32,97,110,100,13,10,32,32,
+32,32,32,120,32,43,32,119,32,45,32,112,120,32,62,32,68,69,76,84,
+65,32,32,97,110,100,32,121,32,43,32,104,32,45,32,112,121,32,62,32,
+68,69,76,84,65,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,
+102,117,110,99,116,105,111,110,32,114,101,99,116,95,105,115,73,110,116,101,
+114,115,101,99,116,105,110,103,40,120,49,44,121,49,44,119,49,44,104,49,
+44,32,120,50,44,121,50,44,119,50,44,104,50,41,13,10,32,32,114,101,
+116,117,114,110,32,120,49,32,60,32,120,50,43,119,50,32,97,110,100,32,
+120,50,32,60,32,120,49,43,119,49,32,97,110,100,13,10,32,32,32,32,
+32,121,49,32,60,32,121,50,43,104,50,32,97,110,100,32,121,50,32,60,
+32,121,49,43,104,49,13,10,101,110,100,13,10,13,10,108,111,99,97,108,
+32,102,117,110,99,116,105,111,110,32,114,101,99,116,95,103,101,116,83,113,
+117,97,114,101,68,105,115,116,97,110,99,101,40,120,49,44,121,49,44,119,
+49,44,104,49,44,32,120,50,44,121,50,44,119,50,44,104,50,41,13,10,
+32,32,108,111,99,97,108,32,100,120,32,61,32,120,49,32,45,32,120,50,
+32,43,32,40,119,49,32,45,32,119,50,41,47,50,13,10,32,32,108,111,
+99,97,108,32,100,121,32,61,32,121,49,32,45,32,121,50,32,43,32,40,
+104,49,32,45,32,104,50,41,47,50,13,10,32,32,114,101,116,117,114,110,
+32,100,120,42,100,120,32,43,32,100,121,42,100,121,13,10,101,110,100,13,
+10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,114,101,
+99,116,95,100,101,116,101,99,116,67,111,108,108,105,115,105,111,110,40,120,
49,44,121,49,44,119,49,44,104,49,44,32,120,50,44,121,50,44,119,50,
-44,104,50,41,13,10,32,32,114,101,116,117,114,110,32,120,49,32,60,32,
-120,50,43,119,50,32,97,110,100,32,120,50,32,60,32,120,49,43,119,49,
-32,97,110,100,13,10,32,32,32,32,32,32,32,32,32,121,49,32,60,32,
-121,50,43,104,50,32,97,110,100,32,121,50,32,60,32,121,49,43,104,49,
-13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,
-105,111,110,32,114,101,99,116,95,103,101,116,83,113,117,97,114,101,68,105,
-115,116,97,110,99,101,40,120,49,44,121,49,44,119,49,44,104,49,44,32,
-120,50,44,121,50,44,119,50,44,104,50,41,13,10,32,32,108,111,99,97,
-108,32,100,120,32,61,32,120,49,32,45,32,120,50,32,43,32,40,119,49,
-32,45,32,119,50,41,47,50,13,10,32,32,108,111,99,97,108,32,100,121,
-32,61,32,121,49,32,45,32,121,50,32,43,32,40,104,49,32,45,32,104,
-50,41,47,50,13,10,32,32,114,101,116,117,114,110,32,100,120,42,100,120,
-32,43,32,100,121,42,100,121,13,10,101,110,100,13,10,13,10,108,111,99,
-97,108,32,102,117,110,99,116,105,111,110,32,114,101,99,116,95,100,101,116,
-101,99,116,67,111,108,108,105,115,105,111,110,40,120,49,44,121,49,44,119,
-49,44,104,49,44,32,120,50,44,121,50,44,119,50,44,104,50,44,32,103,
-111,97,108,88,44,32,103,111,97,108,89,41,13,10,32,32,103,111,97,108,
-88,32,61,32,103,111,97,108,88,32,111,114,32,120,49,13,10,32,32,103,
-111,97,108,89,32,61,32,103,111,97,108,89,32,111,114,32,121,49,13,10,
-13,10,32,32,108,111,99,97,108,32,100,120,44,32,100,121,32,32,32,32,
-32,32,61,32,103,111,97,108,88,32,45,32,120,49,44,32,103,111,97,108,
-89,32,45,32,121,49,13,10,32,32,108,111,99,97,108,32,120,44,121,44,
-119,44,104,32,32,32,32,32,61,32,114,101,99,116,95,103,101,116,68,105,
-102,102,40,120,49,44,121,49,44,119,49,44,104,49,44,32,120,50,44,121,
-50,44,119,50,44,104,50,41,13,10,13,10,32,32,108,111,99,97,108,32,
-111,118,101,114,108,97,112,115,44,32,116,105,44,32,110,120,44,32,110,121,
-13,10,13,10,32,32,105,102,32,114,101,99,116,95,99,111,110,116,97,105,
-110,115,80,111,105,110,116,40,120,44,121,44,119,44,104,44,32,48,44,48,
-41,32,116,104,101,110,32,45,45,32,105,116,101,109,32,119,97,115,32,105,
-110,116,101,114,115,101,99,116,105,110,103,32,111,116,104,101,114,13,10,32,
-32,32,32,108,111,99,97,108,32,112,120,44,32,112,121,32,32,32,32,61,
-32,114,101,99,116,95,103,101,116,78,101,97,114,101,115,116,67,111,114,110,
-101,114,40,120,44,121,44,119,44,104,44,32,48,44,32,48,41,13,10,32,
-32,32,32,108,111,99,97,108,32,119,105,44,32,104,105,32,32,32,32,61,
-32,109,105,110,40,119,49,44,32,97,98,115,40,112,120,41,41,44,32,109,
-105,110,40,104,49,44,32,97,98,115,40,112,121,41,41,32,45,45,32,97,
-114,101,97,32,111,102,32,105,110,116,101,114,115,101,99,116,105,111,110,13,
-10,32,32,32,32,116,105,32,32,32,32,32,32,32,32,32,32,32,32,32,
-32,61,32,45,119,105,32,42,32,104,105,32,45,45,32,116,105,32,105,115,
-32,116,104,101,32,110,101,103,97,116,105,118,101,32,97,114,101,97,32,111,
-102,32,105,110,116,101,114,115,101,99,116,105,111,110,13,10,32,32,32,32,
-111,118,101,114,108,97,112,115,32,61,32,116,114,117,101,13,10,32,32,101,
-108,115,101,13,10,32,32,32,32,108,111,99,97,108,32,116,105,49,44,116,
-105,50,44,110,120,49,44,110,121,49,32,61,32,114,101,99,116,95,103,101,
-116,83,101,103,109,101,110,116,73,110,116,101,114,115,101,99,116,105,111,110,
-73,110,100,105,99,101,115,40,120,44,121,44,119,44,104,44,32,48,44,48,
-44,100,120,44,100,121,44,32,45,109,97,116,104,46,104,117,103,101,44,32,
-109,97,116,104,46,104,117,103,101,41,13,10,13,10,32,32,32,32,45,45,
+44,104,50,44,32,103,111,97,108,88,44,32,103,111,97,108,89,41,13,10,
+32,32,103,111,97,108,88,32,61,32,103,111,97,108,88,32,111,114,32,120,
+49,13,10,32,32,103,111,97,108,89,32,61,32,103,111,97,108,89,32,111,
+114,32,121,49,13,10,13,10,32,32,108,111,99,97,108,32,100,120,44,32,
+100,121,32,32,32,32,61,32,103,111,97,108,88,32,45,32,120,49,44,32,
+103,111,97,108,89,32,45,32,121,49,13,10,32,32,108,111,99,97,108,32,
+120,44,121,44,119,44,104,32,32,32,61,32,114,101,99,116,95,103,101,116,
+68,105,102,102,40,120,49,44,121,49,44,119,49,44,104,49,44,32,120,50,
+44,121,50,44,119,50,44,104,50,41,13,10,13,10,32,32,108,111,99,97,
+108,32,111,118,101,114,108,97,112,115,44,32,116,105,44,32,110,120,44,32,
+110,121,13,10,13,10,32,32,105,102,32,114,101,99,116,95,99,111,110,116,
+97,105,110,115,80,111,105,110,116,40,120,44,121,44,119,44,104,44,32,48,
+44,48,41,32,116,104,101,110,32,45,45,32,105,116,101,109,32,119,97,115,
+32,105,110,116,101,114,115,101,99,116,105,110,103,32,111,116,104,101,114,13,
+10,32,32,108,111,99,97,108,32,112,120,44,32,112,121,32,32,61,32,114,
+101,99,116,95,103,101,116,78,101,97,114,101,115,116,67,111,114,110,101,114,
+40,120,44,121,44,119,44,104,44,32,48,44,32,48,41,13,10,32,32,108,
+111,99,97,108,32,119,105,44,32,104,105,32,32,61,32,109,105,110,40,119,
+49,44,32,97,98,115,40,112,120,41,41,44,32,109,105,110,40,104,49,44,
+32,97,98,115,40,112,121,41,41,32,45,45,32,97,114,101,97,32,111,102,
+32,105,110,116,101,114,115,101,99,116,105,111,110,13,10,32,32,116,105,32,
+32,32,32,32,32,32,32,61,32,45,119,105,32,42,32,104,105,32,45,45,
+32,116,105,32,105,115,32,116,104,101,32,110,101,103,97,116,105,118,101,32,
+97,114,101,97,32,111,102,32,105,110,116,101,114,115,101,99,116,105,111,110,
+13,10,32,32,111,118,101,114,108,97,112,115,32,61,32,116,114,117,101,13,
+10,32,32,101,108,115,101,13,10,32,32,108,111,99,97,108,32,116,105,49,
+44,116,105,50,44,110,120,49,44,110,121,49,32,61,32,114,101,99,116,95,
+103,101,116,83,101,103,109,101,110,116,73,110,116,101,114,115,101,99,116,105,
+111,110,73,110,100,105,99,101,115,40,120,44,121,44,119,44,104,44,32,48,
+44,48,44,100,120,44,100,121,44,32,45,109,97,116,104,46,104,117,103,101,
+44,32,109,97,116,104,46,104,117,103,101,41,13,10,13,10,32,32,45,45,
32,105,116,101,109,32,116,117,110,110,101,108,115,32,105,110,116,111,32,111,
-116,104,101,114,13,10,32,32,32,32,105,102,32,116,105,49,13,10,32,32,
-32,32,97,110,100,32,116,105,49,32,60,32,49,13,10,32,32,32,32,97,
-110,100,32,40,97,98,115,40,116,105,49,32,45,32,116,105,50,41,32,62,
-61,32,68,69,76,84,65,41,32,45,45,32,115,112,101,99,105,97,108,32,
-99,97,115,101,32,102,111,114,32,114,101,99,116,32,103,111,105,110,103,32,
-116,104,114,111,117,103,104,32,97,110,111,116,104,101,114,32,114,101,99,116,
-39,115,32,99,111,114,110,101,114,13,10,32,32,32,32,97,110,100,32,40,
-48,32,60,32,116,105,49,32,43,32,68,69,76,84,65,13,10,32,32,32,
-32,32,32,111,114,32,48,32,61,61,32,116,105,49,32,97,110,100,32,116,
-105,50,32,62,32,48,41,13,10,32,32,32,32,116,104,101,110,13,10,32,
-32,32,32,32,32,116,105,44,32,110,120,44,32,110,121,32,61,32,116,105,
-49,44,32,110,120,49,44,32,110,121,49,13,10,32,32,32,32,32,32,111,
-118,101,114,108,97,112,115,32,32,32,61,32,102,97,108,115,101,13,10,32,
-32,32,32,101,110,100,13,10,32,32,101,110,100,13,10,13,10,32,32,105,
-102,32,110,111,116,32,116,105,32,116,104,101,110,32,114,101,116,117,114,110,
-32,101,110,100,13,10,13,10,32,32,108,111,99,97,108,32,116,120,44,32,
-116,121,13,10,13,10,32,32,105,102,32,111,118,101,114,108,97,112,115,32,
-116,104,101,110,13,10,32,32,32,32,105,102,32,100,120,32,61,61,32,48,
+116,104,101,114,13,10,32,32,105,102,32,116,105,49,13,10,32,32,97,110,
+100,32,116,105,49,32,60,32,49,13,10,32,32,97,110,100,32,40,97,98,
+115,40,116,105,49,32,45,32,116,105,50,41,32,62,61,32,68,69,76,84,
+65,41,32,45,45,32,115,112,101,99,105,97,108,32,99,97,115,101,32,102,
+111,114,32,114,101,99,116,32,103,111,105,110,103,32,116,104,114,111,117,103,
+104,32,97,110,111,116,104,101,114,32,114,101,99,116,39,115,32,99,111,114,
+110,101,114,13,10,32,32,97,110,100,32,40,48,32,60,32,116,105,49,32,
+43,32,68,69,76,84,65,13,10,32,32,32,32,111,114,32,48,32,61,61,
+32,116,105,49,32,97,110,100,32,116,105,50,32,62,32,48,41,13,10,32,
+32,116,104,101,110,13,10,32,32,32,32,116,105,44,32,110,120,44,32,110,
+121,32,61,32,116,105,49,44,32,110,120,49,44,32,110,121,49,13,10,32,
+32,32,32,111,118,101,114,108,97,112,115,32,32,32,61,32,102,97,108,115,
+101,13,10,32,32,101,110,100,13,10,32,32,101,110,100,13,10,13,10,32,
+32,105,102,32,110,111,116,32,116,105,32,116,104,101,110,32,114,101,116,117,
+114,110,32,101,110,100,13,10,13,10,32,32,108,111,99,97,108,32,116,120,
+44,32,116,121,13,10,13,10,32,32,105,102,32,111,118,101,114,108,97,112,
+115,32,116,104,101,110,13,10,32,32,105,102,32,100,120,32,61,61,32,48,
32,97,110,100,32,100,121,32,61,61,32,48,32,116,104,101,110,13,10,32,
-32,32,32,32,32,45,45,32,105,110,116,101,114,115,101,99,116,105,110,103,
-32,97,110,100,32,110,111,116,32,109,111,118,105,110,103,32,45,32,117,115,
-101,32,109,105,110,105,109,117,109,32,100,105,115,112,108,97,99,101,109,101,
-110,116,32,118,101,99,116,111,114,13,10,32,32,32,32,32,32,108,111,99,
-97,108,32,112,120,44,32,112,121,32,61,32,114,101,99,116,95,103,101,116,
-78,101,97,114,101,115,116,67,111,114,110,101,114,40,120,44,121,44,119,44,
-104,44,32,48,44,48,41,13,10,32,32,32,32,32,32,105,102,32,97,98,
-115,40,112,120,41,32,60,32,97,98,115,40,112,121,41,32,116,104,101,110,
-32,112,121,32,61,32,48,32,101,108,115,101,32,112,120,32,61,32,48,32,
-101,110,100,13,10,32,32,32,32,32,32,110,120,44,32,110,121,32,61,32,
-115,105,103,110,40,112,120,41,44,32,115,105,103,110,40,112,121,41,13,10,
-32,32,32,32,32,32,116,120,44,32,116,121,32,61,32,120,49,32,43,32,
-112,120,44,32,121,49,32,43,32,112,121,13,10,32,32,32,32,101,108,115,
-101,13,10,32,32,32,32,32,32,45,45,32,105,110,116,101,114,115,101,99,
-116,105,110,103,32,97,110,100,32,109,111,118,105,110,103,32,45,32,109,111,
-118,101,32,105,110,32,116,104,101,32,111,112,112,111,115,105,116,101,32,100,
-105,114,101,99,116,105,111,110,13,10,32,32,32,32,32,32,108,111,99,97,
-108,32,116,105,49,44,32,95,13,10,32,32,32,32,32,32,116,105,49,44,
-95,44,110,120,44,110,121,32,61,32,114,101,99,116,95,103,101,116,83,101,
-103,109,101,110,116,73,110,116,101,114,115,101,99,116,105,111,110,73,110,100,
-105,99,101,115,40,120,44,121,44,119,44,104,44,32,48,44,48,44,100,120,
-44,100,121,44,32,45,109,97,116,104,46,104,117,103,101,44,32,49,41,13,
-10,32,32,32,32,32,32,105,102,32,110,111,116,32,116,105,49,32,116,104,
-101,110,32,114,101,116,117,114,110,32,101,110,100,13,10,32,32,32,32,32,
-32,116,120,44,32,116,121,32,61,32,120,49,32,43,32,100,120,32,42,32,
-116,105,49,44,32,121,49,32,43,32,100,121,32,42,32,116,105,49,13,10,
-32,32,32,32,101,110,100,13,10,32,32,101,108,115,101,32,45,45,32,116,
-117,110,110,101,108,13,10,32,32,32,32,116,120,44,32,116,121,32,61,32,
-120,49,32,43,32,100,120,32,42,32,116,105,44,32,121,49,32,43,32,100,
-121,32,42,32,116,105,13,10,32,32,101,110,100,13,10,13,10,32,32,114,
-101,116,117,114,110,32,123,13,10,32,32,32,32,111,118,101,114,108,97,112,
-115,32,32,61,32,111,118,101,114,108,97,112,115,44,13,10,32,32,32,32,
-116,105,32,32,32,32,32,32,32,32,61,32,116,105,44,13,10,32,32,32,
-32,109,111,118,101,32,32,32,32,32,32,61,32,123,120,32,61,32,100,120,
-44,32,121,32,61,32,100,121,125,44,13,10,32,32,32,32,110,111,114,109,
-97,108,32,32,32,32,61,32,123,120,32,61,32,110,120,44,32,121,32,61,
-32,110,121,125,44,13,10,32,32,32,32,116,111,117,99,104,32,32,32,32,
-32,61,32,123,120,32,61,32,116,120,44,32,121,32,61,32,116,121,125,44,
-13,10,32,32,32,32,105,116,101,109,82,101,99,116,32,32,61,32,123,120,
-32,61,32,120,49,44,32,121,32,61,32,121,49,44,32,119,32,61,32,119,
-49,44,32,104,32,61,32,104,49,125,44,13,10,32,32,32,32,111,116,104,
-101,114,82,101,99,116,32,61,32,123,120,32,61,32,120,50,44,32,121,32,
-61,32,121,50,44,32,119,32,61,32,119,50,44,32,104,32,61,32,104,50,
-125,13,10,32,32,125,13,10,101,110,100,13,10,13,10,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,45,
-45,32,71,114,105,100,32,102,117,110,99,116,105,111,110,115,13,10,45,45,
+32,32,32,45,45,32,105,110,116,101,114,115,101,99,116,105,110,103,32,97,
+110,100,32,110,111,116,32,109,111,118,105,110,103,32,45,32,117,115,101,32,
+109,105,110,105,109,117,109,32,100,105,115,112,108,97,99,101,109,101,110,116,
+32,118,101,99,116,111,114,13,10,32,32,32,32,108,111,99,97,108,32,112,
+120,44,32,112,121,32,61,32,114,101,99,116,95,103,101,116,78,101,97,114,
+101,115,116,67,111,114,110,101,114,40,120,44,121,44,119,44,104,44,32,48,
+44,48,41,13,10,32,32,32,32,105,102,32,97,98,115,40,112,120,41,32,
+60,32,97,98,115,40,112,121,41,32,116,104,101,110,32,112,121,32,61,32,
+48,32,101,108,115,101,32,112,120,32,61,32,48,32,101,110,100,13,10,32,
+32,32,32,110,120,44,32,110,121,32,61,32,115,105,103,110,40,112,120,41,
+44,32,115,105,103,110,40,112,121,41,13,10,32,32,32,32,116,120,44,32,
+116,121,32,61,32,120,49,32,43,32,112,120,44,32,121,49,32,43,32,112,
+121,13,10,32,32,101,108,115,101,13,10,32,32,32,32,45,45,32,105,110,
+116,101,114,115,101,99,116,105,110,103,32,97,110,100,32,109,111,118,105,110,
+103,32,45,32,109,111,118,101,32,105,110,32,116,104,101,32,111,112,112,111,
+115,105,116,101,32,100,105,114,101,99,116,105,111,110,13,10,32,32,32,32,
+108,111,99,97,108,32,116,105,49,44,32,95,13,10,32,32,32,32,116,105,
+49,44,95,44,110,120,44,110,121,32,61,32,114,101,99,116,95,103,101,116,
+83,101,103,109,101,110,116,73,110,116,101,114,115,101,99,116,105,111,110,73,
+110,100,105,99,101,115,40,120,44,121,44,119,44,104,44,32,48,44,48,44,
+100,120,44,100,121,44,32,45,109,97,116,104,46,104,117,103,101,44,32,49,
+41,13,10,32,32,32,32,105,102,32,110,111,116,32,116,105,49,32,116,104,
+101,110,32,114,101,116,117,114,110,32,101,110,100,13,10,32,32,32,32,116,
+120,44,32,116,121,32,61,32,120,49,32,43,32,100,120,32,42,32,116,105,
+49,44,32,121,49,32,43,32,100,121,32,42,32,116,105,49,13,10,32,32,
+101,110,100,13,10,32,32,101,108,115,101,32,45,45,32,116,117,110,110,101,
+108,13,10,32,32,116,120,44,32,116,121,32,61,32,120,49,32,43,32,100,
+120,32,42,32,116,105,44,32,121,49,32,43,32,100,121,32,42,32,116,105,
+13,10,32,32,101,110,100,13,10,13,10,32,32,114,101,116,117,114,110,32,
+123,13,10,32,32,111,118,101,114,108,97,112,115,32,32,61,32,111,118,101,
+114,108,97,112,115,44,13,10,32,32,116,105,32,32,32,32,61,32,116,105,
+44,13,10,32,32,109,111,118,101,32,32,32,32,61,32,123,120,32,61,32,
+100,120,44,32,121,32,61,32,100,121,125,44,13,10,32,32,110,111,114,109,
+97,108,32,32,61,32,123,120,32,61,32,110,120,44,32,121,32,61,32,110,
+121,125,44,13,10,32,32,116,111,117,99,104,32,32,32,61,32,123,120,32,
+61,32,116,120,44,32,121,32,61,32,116,121,125,44,13,10,32,32,105,116,
+101,109,82,101,99,116,32,32,61,32,123,120,32,61,32,120,49,44,32,121,
+32,61,32,121,49,44,32,119,32,61,32,119,49,44,32,104,32,61,32,104,
+49,125,44,13,10,32,32,111,116,104,101,114,82,101,99,116,32,61,32,123,
+120,32,61,32,120,50,44,32,121,32,61,32,121,50,44,32,119,32,61,32,
+119,50,44,32,104,32,61,32,104,50,125,13,10,32,32,125,13,10,101,110,
+100,13,10,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,13,10,45,45,32,71,114,105,100,32,102,117,110,
+99,116,105,111,110,115,13,10,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,103,
-114,105,100,95,116,111,87,111,114,108,100,40,99,101,108,108,83,105,122,101,
-44,32,99,120,44,32,99,121,41,13,10,32,32,114,101,116,117,114,110,32,
-40,99,120,32,45,32,49,41,42,99,101,108,108,83,105,122,101,44,32,40,
-99,121,45,49,41,42,99,101,108,108,83,105,122,101,13,10,101,110,100,13,
-10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,103,114,
-105,100,95,116,111,67,101,108,108,40,99,101,108,108,83,105,122,101,44,32,
-120,44,32,121,41,13,10,32,32,114,101,116,117,114,110,32,102,108,111,111,
-114,40,120,32,47,32,99,101,108,108,83,105,122,101,41,32,43,32,49,44,
-32,102,108,111,111,114,40,121,32,47,32,99,101,108,108,83,105,122,101,41,
-32,43,32,49,13,10,101,110,100,13,10,13,10,45,45,32,103,114,105,100,
-95,116,114,97,118,101,114,115,101,42,32,102,117,110,99,116,105,111,110,115,
-32,97,114,101,32,98,97,115,101,100,32,111,110,32,34,65,32,70,97,115,
-116,32,86,111,120,101,108,32,84,114,97,118,101,114,115,97,108,32,65,108,
-103,111,114,105,116,104,109,32,102,111,114,32,82,97,121,32,84,114,97,99,
-105,110,103,34,44,13,10,45,45,32,98,121,32,74,111,104,110,32,65,109,
-97,110,105,100,101,115,32,97,110,100,32,65,110,100,114,101,119,32,87,111,
-111,32,45,32,104,116,116,112,58,47,47,119,119,119,46,99,115,101,46,121,
-111,114,107,117,46,99,97,47,126,97,109,97,110,97,47,114,101,115,101,97,
-114,99,104,47,103,114,105,100,46,112,100,102,13,10,45,45,32,73,116,32,
-104,97,115,32,98,101,101,110,32,109,111,100,105,102,105,101,100,32,116,111,
-32,105,110,99,108,117,100,101,32,98,111,116,104,32,99,101,108,108,115,32,
-119,104,101,110,32,116,104,101,32,114,97,121,32,34,116,111,117,99,104,101,
-115,32,97,32,103,114,105,100,32,99,111,114,110,101,114,34,44,13,10,45,
-45,32,97,110,100,32,119,105,116,104,32,97,32,100,105,102,102,101,114,101,
-110,116,32,101,120,105,116,32,99,111,110,100,105,116,105,111,110,13,10,13,
-10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,103,114,105,100,
+45,45,45,45,45,45,45,45,45,45,13,10,13,10,108,111,99,97,108,32,
+102,117,110,99,116,105,111,110,32,103,114,105,100,95,116,111,87,111,114,108,
+100,40,99,101,108,108,83,105,122,101,44,32,99,120,44,32,99,121,41,13,
+10,32,32,114,101,116,117,114,110,32,40,99,120,32,45,32,49,41,42,99,
+101,108,108,83,105,122,101,44,32,40,99,121,45,49,41,42,99,101,108,108,
+83,105,122,101,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,102,
+117,110,99,116,105,111,110,32,103,114,105,100,95,116,111,67,101,108,108,40,
+99,101,108,108,83,105,122,101,44,32,120,44,32,121,41,13,10,32,32,114,
+101,116,117,114,110,32,102,108,111,111,114,40,120,32,47,32,99,101,108,108,
+83,105,122,101,41,32,43,32,49,44,32,102,108,111,111,114,40,121,32,47,
+32,99,101,108,108,83,105,122,101,41,32,43,32,49,13,10,101,110,100,13,
+10,13,10,45,45,32,103,114,105,100,95,116,114,97,118,101,114,115,101,42,
+32,102,117,110,99,116,105,111,110,115,32,97,114,101,32,98,97,115,101,100,
+32,111,110,32,34,65,32,70,97,115,116,32,86,111,120,101,108,32,84,114,
+97,118,101,114,115,97,108,32,65,108,103,111,114,105,116,104,109,32,102,111,
+114,32,82,97,121,32,84,114,97,99,105,110,103,34,44,13,10,45,45,32,
+98,121,32,74,111,104,110,32,65,109,97,110,105,100,101,115,32,97,110,100,
+32,65,110,100,114,101,119,32,87,111,111,32,45,32,104,116,116,112,58,47,
+47,119,119,119,46,99,115,101,46,121,111,114,107,117,46,99,97,47,126,97,
+109,97,110,97,47,114,101,115,101,97,114,99,104,47,103,114,105,100,46,112,
+100,102,13,10,45,45,32,73,116,32,104,97,115,32,98,101,101,110,32,109,
+111,100,105,102,105,101,100,32,116,111,32,105,110,99,108,117,100,101,32,98,
+111,116,104,32,99,101,108,108,115,32,119,104,101,110,32,116,104,101,32,114,
+97,121,32,34,116,111,117,99,104,101,115,32,97,32,103,114,105,100,32,99,
+111,114,110,101,114,34,44,13,10,45,45,32,97,110,100,32,119,105,116,104,
+32,97,32,100,105,102,102,101,114,101,110,116,32,101,120,105,116,32,99,111,
+110,100,105,116,105,111,110,13,10,13,10,108,111,99,97,108,32,102,117,110,
+99,116,105,111,110,32,103,114,105,100,95,116,114,97,118,101,114,115,101,95,
+105,110,105,116,83,116,101,112,40,99,101,108,108,83,105,122,101,44,32,99,
+116,44,32,116,49,44,32,116,50,41,13,10,32,32,108,111,99,97,108,32,
+118,32,61,32,116,50,32,45,32,116,49,13,10,32,32,105,102,32,32,32,
+118,32,62,32,48,32,116,104,101,110,13,10,32,32,114,101,116,117,114,110,
+32,32,49,44,32,32,99,101,108,108,83,105,122,101,32,47,32,118,44,32,
+40,40,99,116,32,43,32,118,41,32,42,32,99,101,108,108,83,105,122,101,
+32,45,32,116,49,41,32,47,32,118,13,10,32,32,101,108,115,101,105,102,
+32,118,32,60,32,48,32,116,104,101,110,13,10,32,32,114,101,116,117,114,
+110,32,45,49,44,32,45,99,101,108,108,83,105,122,101,32,47,32,118,44,
+32,40,40,99,116,32,43,32,118,32,45,32,49,41,32,42,32,99,101,108,
+108,83,105,122,101,32,45,32,116,49,41,32,47,32,118,13,10,32,32,101,
+108,115,101,13,10,32,32,114,101,116,117,114,110,32,48,44,32,109,97,116,
+104,46,104,117,103,101,44,32,109,97,116,104,46,104,117,103,101,13,10,32,
+32,101,110,100,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,102,
+117,110,99,116,105,111,110,32,103,114,105,100,95,116,114,97,118,101,114,115,
+101,40,99,101,108,108,83,105,122,101,44,32,120,49,44,121,49,44,120,50,
+44,121,50,44,32,102,41,13,10,32,32,108,111,99,97,108,32,99,120,49,
+44,99,121,49,32,32,32,32,61,32,103,114,105,100,95,116,111,67,101,108,
+108,40,99,101,108,108,83,105,122,101,44,32,120,49,44,121,49,41,13,10,
+32,32,108,111,99,97,108,32,99,120,50,44,99,121,50,32,32,32,32,61,
+32,103,114,105,100,95,116,111,67,101,108,108,40,99,101,108,108,83,105,122,
+101,44,32,120,50,44,121,50,41,13,10,32,32,108,111,99,97,108,32,115,
+116,101,112,88,44,32,100,120,44,32,116,120,32,32,61,32,103,114,105,100,
95,116,114,97,118,101,114,115,101,95,105,110,105,116,83,116,101,112,40,99,
-101,108,108,83,105,122,101,44,32,99,116,44,32,116,49,44,32,116,50,41,
-13,10,32,32,108,111,99,97,108,32,118,32,61,32,116,50,32,45,32,116,
-49,13,10,32,32,105,102,32,32,32,32,32,118,32,62,32,48,32,116,104,
-101,110,13,10,32,32,32,32,114,101,116,117,114,110,32,32,49,44,32,32,
-99,101,108,108,83,105,122,101,32,47,32,118,44,32,40,40,99,116,32,43,
-32,118,41,32,42,32,99,101,108,108,83,105,122,101,32,45,32,116,49,41,
-32,47,32,118,13,10,32,32,101,108,115,101,105,102,32,118,32,60,32,48,
-32,116,104,101,110,13,10,32,32,32,32,114,101,116,117,114,110,32,45,49,
-44,32,45,99,101,108,108,83,105,122,101,32,47,32,118,44,32,40,40,99,
-116,32,43,32,118,32,45,32,49,41,32,42,32,99,101,108,108,83,105,122,
-101,32,45,32,116,49,41,32,47,32,118,13,10,32,32,101,108,115,101,13,
-10,32,32,32,32,114,101,116,117,114,110,32,48,44,32,109,97,116,104,46,
-104,117,103,101,44,32,109,97,116,104,46,104,117,103,101,13,10,32,32,101,
-110,100,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,102,117,110,
-99,116,105,111,110,32,103,114,105,100,95,116,114,97,118,101,114,115,101,40,
-99,101,108,108,83,105,122,101,44,32,120,49,44,121,49,44,120,50,44,121,
-50,44,32,102,41,13,10,32,32,108,111,99,97,108,32,99,120,49,44,99,
-121,49,32,32,32,32,32,32,32,32,61,32,103,114,105,100,95,116,111,67,
-101,108,108,40,99,101,108,108,83,105,122,101,44,32,120,49,44,121,49,41,
-13,10,32,32,108,111,99,97,108,32,99,120,50,44,99,121,50,32,32,32,
-32,32,32,32,32,61,32,103,114,105,100,95,116,111,67,101,108,108,40,99,
-101,108,108,83,105,122,101,44,32,120,50,44,121,50,41,13,10,32,32,108,
-111,99,97,108,32,115,116,101,112,88,44,32,100,120,44,32,116,120,32,32,
-61,32,103,114,105,100,95,116,114,97,118,101,114,115,101,95,105,110,105,116,
-83,116,101,112,40,99,101,108,108,83,105,122,101,44,32,99,120,49,44,32,
-120,49,44,32,120,50,41,13,10,32,32,108,111,99,97,108,32,115,116,101,
-112,89,44,32,100,121,44,32,116,121,32,32,61,32,103,114,105,100,95,116,
-114,97,118,101,114,115,101,95,105,110,105,116,83,116,101,112,40,99,101,108,
-108,83,105,122,101,44,32,99,121,49,44,32,121,49,44,32,121,50,41,13,
-10,32,32,108,111,99,97,108,32,99,120,44,99,121,32,32,32,32,32,32,
-32,32,32,32,61,32,99,120,49,44,99,121,49,13,10,13,10,32,32,102,
-40,99,120,44,32,99,121,41,13,10,13,10,32,32,45,45,32,84,104,101,
-32,100,101,102,97,117,108,116,32,105,109,112,108,101,109,101,110,116,97,116,
-105,111,110,32,104,97,100,32,97,110,32,105,110,102,105,110,105,116,101,32,
-108,111,111,112,32,112,114,111,98,108,101,109,32,119,104,101,110,13,10,32,
-32,45,45,32,97,112,112,114,111,97,99,104,105,110,103,32,116,104,101,32,
-108,97,115,116,32,99,101,108,108,32,105,110,32,115,111,109,101,32,111,99,
-99,97,115,115,105,111,110,115,46,32,87,101,32,102,105,110,105,115,104,32,
-105,116,101,114,97,116,105,110,103,13,10,32,32,45,45,32,119,104,101,110,
-32,119,101,32,97,114,101,32,42,110,101,120,116,42,32,116,111,32,116,104,
-101,32,108,97,115,116,32,99,101,108,108,13,10,32,32,119,104,105,108,101,
-32,97,98,115,40,99,120,32,45,32,99,120,50,41,32,43,32,97,98,115,
-40,99,121,32,45,32,99,121,50,41,32,62,32,49,32,100,111,13,10,32,
-32,32,32,105,102,32,116,120,32,60,32,116,121,32,116,104,101,110,13,10,
-32,32,32,32,32,32,116,120,44,32,99,120,32,61,32,116,120,32,43,32,
-100,120,44,32,99,120,32,43,32,115,116,101,112,88,13,10,32,32,32,32,
-32,32,102,40,99,120,44,32,99,121,41,13,10,32,32,32,32,101,108,115,
-101,13,10,32,32,32,32,32,32,45,45,32,65,100,100,105,116,105,111,110,
+101,108,108,83,105,122,101,44,32,99,120,49,44,32,120,49,44,32,120,50,
+41,13,10,32,32,108,111,99,97,108,32,115,116,101,112,89,44,32,100,121,
+44,32,116,121,32,32,61,32,103,114,105,100,95,116,114,97,118,101,114,115,
+101,95,105,110,105,116,83,116,101,112,40,99,101,108,108,83,105,122,101,44,
+32,99,121,49,44,32,121,49,44,32,121,50,41,13,10,32,32,108,111,99,
+97,108,32,99,120,44,99,121,32,32,32,32,32,32,61,32,99,120,49,44,
+99,121,49,13,10,13,10,32,32,102,40,99,120,44,32,99,121,41,13,10,
+13,10,32,32,45,45,32,84,104,101,32,100,101,102,97,117,108,116,32,105,
+109,112,108,101,109,101,110,116,97,116,105,111,110,32,104,97,100,32,97,110,
+32,105,110,102,105,110,105,116,101,32,108,111,111,112,32,112,114,111,98,108,
+101,109,32,119,104,101,110,13,10,32,32,45,45,32,97,112,112,114,111,97,
+99,104,105,110,103,32,116,104,101,32,108,97,115,116,32,99,101,108,108,32,
+105,110,32,115,111,109,101,32,111,99,99,97,115,115,105,111,110,115,46,32,
+87,101,32,102,105,110,105,115,104,32,105,116,101,114,97,116,105,110,103,13,
+10,32,32,45,45,32,119,104,101,110,32,119,101,32,97,114,101,32,42,110,
+101,120,116,42,32,116,111,32,116,104,101,32,108,97,115,116,32,99,101,108,
+108,13,10,32,32,119,104,105,108,101,32,97,98,115,40,99,120,32,45,32,
+99,120,50,41,32,43,32,97,98,115,40,99,121,32,45,32,99,121,50,41,
+32,62,32,49,32,100,111,13,10,32,32,105,102,32,116,120,32,60,32,116,
+121,32,116,104,101,110,13,10,32,32,32,32,116,120,44,32,99,120,32,61,
+32,116,120,32,43,32,100,120,44,32,99,120,32,43,32,115,116,101,112,88,
+13,10,32,32,32,32,102,40,99,120,44,32,99,121,41,13,10,32,32,101,
+108,115,101,13,10,32,32,32,32,45,45,32,65,100,100,105,116,105,111,110,
58,32,105,110,99,108,117,100,101,32,98,111,116,104,32,99,101,108,108,115,
32,119,104,101,110,32,103,111,105,110,103,32,116,104,114,111,117,103,104,32,
-99,111,114,110,101,114,115,13,10,32,32,32,32,32,32,105,102,32,116,120,
-32,61,61,32,116,121,32,116,104,101,110,32,102,40,99,120,32,43,32,115,
-116,101,112,88,44,32,99,121,41,32,101,110,100,13,10,32,32,32,32,32,
-32,116,121,44,32,99,121,32,61,32,116,121,32,43,32,100,121,44,32,99,
-121,32,43,32,115,116,101,112,89,13,10,32,32,32,32,32,32,102,40,99,
-120,44,32,99,121,41,13,10,32,32,32,32,101,110,100,13,10,32,32,101,
-110,100,13,10,13,10,32,32,45,45,32,73,102,32,119,101,32,104,97,118,
-101,32,110,111,116,32,97,114,114,105,118,101,100,32,116,111,32,116,104,101,
-32,108,97,115,116,32,99,101,108,108,44,32,117,115,101,32,105,116,13,10,
-32,32,105,102,32,99,120,32,126,61,32,99,120,50,32,111,114,32,99,121,
-32,126,61,32,99,121,50,32,116,104,101,110,32,102,40,99,120,50,44,32,
-99,121,50,41,32,101,110,100,13,10,13,10,101,110,100,13,10,13,10,108,
-111,99,97,108,32,102,117,110,99,116,105,111,110,32,103,114,105,100,95,116,
-111,67,101,108,108,82,101,99,116,40,99,101,108,108,83,105,122,101,44,32,
-120,44,121,44,119,44,104,41,13,10,32,32,108,111,99,97,108,32,99,120,
-44,99,121,32,61,32,103,114,105,100,95,116,111,67,101,108,108,40,99,101,
-108,108,83,105,122,101,44,32,120,44,32,121,41,13,10,32,32,108,111,99,
-97,108,32,99,114,44,99,98,32,61,32,99,101,105,108,40,40,120,43,119,
-41,32,47,32,99,101,108,108,83,105,122,101,41,44,32,99,101,105,108,40,
-40,121,43,104,41,32,47,32,99,101,108,108,83,105,122,101,41,13,10,32,
-32,114,101,116,117,114,110,32,99,120,44,32,99,121,44,32,99,114,32,45,
-32,99,120,32,43,32,49,44,32,99,98,32,45,32,99,121,32,43,32,49,
-13,10,101,110,100,13,10,13,10,45,45,45,45,45,45,45,45,45,45,45,
+99,111,114,110,101,114,115,13,10,32,32,32,32,105,102,32,116,120,32,61,
+61,32,116,121,32,116,104,101,110,32,102,40,99,120,32,43,32,115,116,101,
+112,88,44,32,99,121,41,32,101,110,100,13,10,32,32,32,32,116,121,44,
+32,99,121,32,61,32,116,121,32,43,32,100,121,44,32,99,121,32,43,32,
+115,116,101,112,89,13,10,32,32,32,32,102,40,99,120,44,32,99,121,41,
+13,10,32,32,101,110,100,13,10,32,32,101,110,100,13,10,13,10,32,32,
+45,45,32,73,102,32,119,101,32,104,97,118,101,32,110,111,116,32,97,114,
+114,105,118,101,100,32,116,111,32,116,104,101,32,108,97,115,116,32,99,101,
+108,108,44,32,117,115,101,32,105,116,13,10,32,32,105,102,32,99,120,32,
+126,61,32,99,120,50,32,111,114,32,99,121,32,126,61,32,99,121,50,32,
+116,104,101,110,32,102,40,99,120,50,44,32,99,121,50,41,32,101,110,100,
+13,10,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,102,117,110,
+99,116,105,111,110,32,103,114,105,100,95,116,111,67,101,108,108,82,101,99,
+116,40,99,101,108,108,83,105,122,101,44,32,120,44,121,44,119,44,104,41,
+13,10,32,32,108,111,99,97,108,32,99,120,44,99,121,32,61,32,103,114,
+105,100,95,116,111,67,101,108,108,40,99,101,108,108,83,105,122,101,44,32,
+120,44,32,121,41,13,10,32,32,108,111,99,97,108,32,99,114,44,99,98,
+32,61,32,99,101,105,108,40,40,120,43,119,41,32,47,32,99,101,108,108,
+83,105,122,101,41,44,32,99,101,105,108,40,40,121,43,104,41,32,47,32,
+99,101,108,108,83,105,122,101,41,13,10,32,32,114,101,116,117,114,110,32,
+99,120,44,32,99,121,44,32,99,114,32,45,32,99,120,32,43,32,49,44,
+32,99,98,32,45,32,99,121,32,43,32,49,13,10,101,110,100,13,10,13,
+10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,13,10,45,45,32,82,101,115,112,111,110,115,101,115,13,10,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,13,10,45,45,32,82,101,115,112,
-111,110,115,101,115,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,13,10,13,10,108,111,99,97,108,32,116,
-111,117,99,104,32,61,32,102,117,110,99,116,105,111,110,40,119,111,114,108,
-100,44,32,99,111,108,44,32,120,44,121,44,119,44,104,44,32,103,111,97,
-108,88,44,32,103,111,97,108,89,44,32,102,105,108,116,101,114,41,13,10,
-32,32,114,101,116,117,114,110,32,99,111,108,46,116,111,117,99,104,46,120,
-44,32,99,111,108,46,116,111,117,99,104,46,121,44,32,123,125,44,32,48,
-13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,99,114,111,115,115,
-32,61,32,102,117,110,99,116,105,111,110,40,119,111,114,108,100,44,32,99,
-111,108,44,32,120,44,121,44,119,44,104,44,32,103,111,97,108,88,44,32,
-103,111,97,108,89,44,32,102,105,108,116,101,114,41,13,10,32,32,108,111,
-99,97,108,32,99,111,108,115,44,32,108,101,110,32,61,32,119,111,114,108,
+45,13,10,13,10,108,111,99,97,108,32,116,111,117,99,104,32,61,32,102,
+117,110,99,116,105,111,110,40,119,111,114,108,100,44,32,99,111,108,44,32,
+120,44,121,44,119,44,104,44,32,103,111,97,108,88,44,32,103,111,97,108,
+89,44,32,102,105,108,116,101,114,41,13,10,32,32,114,101,116,117,114,110,
+32,99,111,108,46,116,111,117,99,104,46,120,44,32,99,111,108,46,116,111,
+117,99,104,46,121,44,32,123,125,44,32,48,13,10,101,110,100,13,10,13,
+10,108,111,99,97,108,32,99,114,111,115,115,32,61,32,102,117,110,99,116,
+105,111,110,40,119,111,114,108,100,44,32,99,111,108,44,32,120,44,121,44,
+119,44,104,44,32,103,111,97,108,88,44,32,103,111,97,108,89,44,32,102,
+105,108,116,101,114,41,13,10,32,32,108,111,99,97,108,32,99,111,108,115,
+44,32,108,101,110,32,61,32,119,111,114,108,100,58,112,114,111,106,101,99,
+116,40,99,111,108,46,105,116,101,109,44,32,120,44,121,44,119,44,104,44,
+32,103,111,97,108,88,44,32,103,111,97,108,89,44,32,102,105,108,116,101,
+114,41,13,10,32,32,114,101,116,117,114,110,32,103,111,97,108,88,44,32,
+103,111,97,108,89,44,32,99,111,108,115,44,32,108,101,110,13,10,101,110,
+100,13,10,13,10,108,111,99,97,108,32,115,108,105,100,101,32,61,32,102,
+117,110,99,116,105,111,110,40,119,111,114,108,100,44,32,99,111,108,44,32,
+120,44,121,44,119,44,104,44,32,103,111,97,108,88,44,32,103,111,97,108,
+89,44,32,102,105,108,116,101,114,41,13,10,32,32,103,111,97,108,88,32,
+61,32,103,111,97,108,88,32,111,114,32,120,13,10,32,32,103,111,97,108,
+89,32,61,32,103,111,97,108,89,32,111,114,32,121,13,10,13,10,32,32,
+108,111,99,97,108,32,116,99,104,44,32,109,111,118,101,32,32,61,32,99,
+111,108,46,116,111,117,99,104,44,32,99,111,108,46,109,111,118,101,13,10,
+32,32,105,102,32,109,111,118,101,46,120,32,126,61,32,48,32,111,114,32,
+109,111,118,101,46,121,32,126,61,32,48,32,116,104,101,110,13,10,32,32,
+105,102,32,99,111,108,46,110,111,114,109,97,108,46,120,32,126,61,32,48,
+32,116,104,101,110,13,10,32,32,32,32,103,111,97,108,88,32,61,32,116,
+99,104,46,120,13,10,32,32,101,108,115,101,13,10,32,32,32,32,103,111,
+97,108,89,32,61,32,116,99,104,46,121,13,10,32,32,101,110,100,13,10,
+32,32,101,110,100,13,10,13,10,32,32,99,111,108,46,115,108,105,100,101,
+32,61,32,123,120,32,61,32,103,111,97,108,88,44,32,121,32,61,32,103,
+111,97,108,89,125,13,10,13,10,32,32,120,44,121,32,61,32,116,99,104,
+46,120,44,32,116,99,104,46,121,13,10,32,32,108,111,99,97,108,32,99,
+111,108,115,44,32,108,101,110,32,32,61,32,119,111,114,108,100,58,112,114,
+111,106,101,99,116,40,99,111,108,46,105,116,101,109,44,32,120,44,121,44,
+119,44,104,44,32,103,111,97,108,88,44,32,103,111,97,108,89,44,32,102,
+105,108,116,101,114,41,13,10,32,32,114,101,116,117,114,110,32,103,111,97,
+108,88,44,32,103,111,97,108,89,44,32,99,111,108,115,44,32,108,101,110,
+13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,98,111,117,110,99,
+101,32,61,32,102,117,110,99,116,105,111,110,40,119,111,114,108,100,44,32,
+99,111,108,44,32,120,44,121,44,119,44,104,44,32,103,111,97,108,88,44,
+32,103,111,97,108,89,44,32,102,105,108,116,101,114,41,13,10,32,32,103,
+111,97,108,88,32,61,32,103,111,97,108,88,32,111,114,32,120,13,10,32,
+32,103,111,97,108,89,32,61,32,103,111,97,108,89,32,111,114,32,121,13,
+10,13,10,32,32,108,111,99,97,108,32,116,99,104,44,32,109,111,118,101,
+32,61,32,99,111,108,46,116,111,117,99,104,44,32,99,111,108,46,109,111,
+118,101,13,10,32,32,108,111,99,97,108,32,116,120,44,32,116,121,32,61,
+32,116,99,104,46,120,44,32,116,99,104,46,121,13,10,13,10,32,32,108,
+111,99,97,108,32,98,120,44,32,98,121,32,61,32,116,120,44,32,116,121,
+13,10,13,10,32,32,105,102,32,109,111,118,101,46,120,32,126,61,32,48,
+32,111,114,32,109,111,118,101,46,121,32,126,61,32,48,32,116,104,101,110,
+13,10,32,32,108,111,99,97,108,32,98,110,120,44,32,98,110,121,32,61,
+32,103,111,97,108,88,32,45,32,116,120,44,32,103,111,97,108,89,32,45,
+32,116,121,13,10,32,32,105,102,32,99,111,108,46,110,111,114,109,97,108,
+46,120,32,61,61,32,48,32,116,104,101,110,32,98,110,121,32,61,32,45,
+98,110,121,32,101,108,115,101,32,98,110,120,32,61,32,45,98,110,120,32,
+101,110,100,13,10,32,32,98,120,44,32,98,121,32,61,32,116,120,32,43,
+32,98,110,120,44,32,116,121,32,43,32,98,110,121,13,10,32,32,101,110,
+100,13,10,13,10,32,32,99,111,108,46,98,111,117,110,99,101,32,32,32,
+61,32,123,120,32,61,32,98,120,44,32,32,121,32,61,32,98,121,125,13,
+10,32,32,120,44,121,32,32,32,32,32,32,61,32,116,99,104,46,120,44,
+32,116,99,104,46,121,13,10,32,32,103,111,97,108,88,44,32,103,111,97,
+108,89,32,61,32,98,120,44,32,98,121,13,10,13,10,32,32,108,111,99,
+97,108,32,99,111,108,115,44,32,108,101,110,32,32,61,32,119,111,114,108,
100,58,112,114,111,106,101,99,116,40,99,111,108,46,105,116,101,109,44,32,
120,44,121,44,119,44,104,44,32,103,111,97,108,88,44,32,103,111,97,108,
89,44,32,102,105,108,116,101,114,41,13,10,32,32,114,101,116,117,114,110,
32,103,111,97,108,88,44,32,103,111,97,108,89,44,32,99,111,108,115,44,
-32,108,101,110,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,115,
-108,105,100,101,32,61,32,102,117,110,99,116,105,111,110,40,119,111,114,108,
-100,44,32,99,111,108,44,32,120,44,121,44,119,44,104,44,32,103,111,97,
-108,88,44,32,103,111,97,108,89,44,32,102,105,108,116,101,114,41,13,10,
-32,32,103,111,97,108,88,32,61,32,103,111,97,108,88,32,111,114,32,120,
-13,10,32,32,103,111,97,108,89,32,61,32,103,111,97,108,89,32,111,114,
-32,121,13,10,13,10,32,32,108,111,99,97,108,32,116,99,104,44,32,109,
-111,118,101,32,32,61,32,99,111,108,46,116,111,117,99,104,44,32,99,111,
-108,46,109,111,118,101,13,10,32,32,105,102,32,109,111,118,101,46,120,32,
-126,61,32,48,32,111,114,32,109,111,118,101,46,121,32,126,61,32,48,32,
-116,104,101,110,13,10,32,32,32,32,105,102,32,99,111,108,46,110,111,114,
-109,97,108,46,120,32,126,61,32,48,32,116,104,101,110,13,10,32,32,32,
-32,32,32,103,111,97,108,88,32,61,32,116,99,104,46,120,13,10,32,32,
-32,32,101,108,115,101,13,10,32,32,32,32,32,32,103,111,97,108,89,32,
-61,32,116,99,104,46,121,13,10,32,32,32,32,101,110,100,13,10,32,32,
-101,110,100,13,10,13,10,32,32,99,111,108,46,115,108,105,100,101,32,61,
-32,123,120,32,61,32,103,111,97,108,88,44,32,121,32,61,32,103,111,97,
-108,89,125,13,10,13,10,32,32,120,44,121,32,61,32,116,99,104,46,120,
-44,32,116,99,104,46,121,13,10,32,32,108,111,99,97,108,32,99,111,108,
-115,44,32,108,101,110,32,32,61,32,119,111,114,108,100,58,112,114,111,106,
-101,99,116,40,99,111,108,46,105,116,101,109,44,32,120,44,121,44,119,44,
-104,44,32,103,111,97,108,88,44,32,103,111,97,108,89,44,32,102,105,108,
-116,101,114,41,13,10,32,32,114,101,116,117,114,110,32,103,111,97,108,88,
-44,32,103,111,97,108,89,44,32,99,111,108,115,44,32,108,101,110,13,10,
-101,110,100,13,10,13,10,108,111,99,97,108,32,98,111,117,110,99,101,32,
-61,32,102,117,110,99,116,105,111,110,40,119,111,114,108,100,44,32,99,111,
-108,44,32,120,44,121,44,119,44,104,44,32,103,111,97,108,88,44,32,103,
-111,97,108,89,44,32,102,105,108,116,101,114,41,13,10,32,32,103,111,97,
-108,88,32,61,32,103,111,97,108,88,32,111,114,32,120,13,10,32,32,103,
-111,97,108,89,32,61,32,103,111,97,108,89,32,111,114,32,121,13,10,13,
-10,32,32,108,111,99,97,108,32,116,99,104,44,32,109,111,118,101,32,61,
-32,99,111,108,46,116,111,117,99,104,44,32,99,111,108,46,109,111,118,101,
-13,10,32,32,108,111,99,97,108,32,116,120,44,32,116,121,32,61,32,116,
-99,104,46,120,44,32,116,99,104,46,121,13,10,13,10,32,32,108,111,99,
-97,108,32,98,120,44,32,98,121,32,61,32,116,120,44,32,116,121,13,10,
-13,10,32,32,105,102,32,109,111,118,101,46,120,32,126,61,32,48,32,111,
-114,32,109,111,118,101,46,121,32,126,61,32,48,32,116,104,101,110,13,10,
-32,32,32,32,108,111,99,97,108,32,98,110,120,44,32,98,110,121,32,61,
-32,103,111,97,108,88,32,45,32,116,120,44,32,103,111,97,108,89,32,45,
-32,116,121,13,10,32,32,32,32,105,102,32,99,111,108,46,110,111,114,109,
-97,108,46,120,32,61,61,32,48,32,116,104,101,110,32,98,110,121,32,61,
-32,45,98,110,121,32,101,108,115,101,32,98,110,120,32,61,32,45,98,110,
-120,32,101,110,100,13,10,32,32,32,32,98,120,44,32,98,121,32,61,32,
-116,120,32,43,32,98,110,120,44,32,116,121,32,43,32,98,110,121,13,10,
-32,32,101,110,100,13,10,13,10,32,32,99,111,108,46,98,111,117,110,99,
-101,32,32,32,61,32,123,120,32,61,32,98,120,44,32,32,121,32,61,32,
-98,121,125,13,10,32,32,120,44,121,32,32,32,32,32,32,32,32,32,32,
-61,32,116,99,104,46,120,44,32,116,99,104,46,121,13,10,32,32,103,111,
-97,108,88,44,32,103,111,97,108,89,32,61,32,98,120,44,32,98,121,13,
-10,13,10,32,32,108,111,99,97,108,32,99,111,108,115,44,32,108,101,110,
-32,32,32,32,61,32,119,111,114,108,100,58,112,114,111,106,101,99,116,40,
-99,111,108,46,105,116,101,109,44,32,120,44,121,44,119,44,104,44,32,103,
-111,97,108,88,44,32,103,111,97,108,89,44,32,102,105,108,116,101,114,41,
-13,10,32,32,114,101,116,117,114,110,32,103,111,97,108,88,44,32,103,111,
-97,108,89,44,32,99,111,108,115,44,32,108,101,110,13,10,101,110,100,13,
-10,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+32,108,101,110,13,10,101,110,100,13,10,13,10,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,13,10,45,45,32,87,111,114,108,100,13,10,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,45,45,32,
+87,111,114,108,100,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,
-10,13,10,108,111,99,97,108,32,87,111,114,108,100,32,61,32,123,125,13,
-10,108,111,99,97,108,32,87,111,114,108,100,95,109,116,32,61,32,123,95,
-95,105,110,100,101,120,32,61,32,87,111,114,108,100,125,13,10,13,10,45,
-45,32,80,114,105,118,97,116,101,32,102,117,110,99,116,105,111,110,115,32,
-97,110,100,32,109,101,116,104,111,100,115,13,10,13,10,108,111,99,97,108,
-32,102,117,110,99,116,105,111,110,32,115,111,114,116,66,121,87,101,105,103,
-104,116,40,97,44,98,41,32,114,101,116,117,114,110,32,97,46,119,101,105,
-103,104,116,32,60,32,98,46,119,101,105,103,104,116,32,101,110,100,13,10,
-13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,115,111,114,
-116,66,121,84,105,65,110,100,68,105,115,116,97,110,99,101,40,97,44,98,
-41,13,10,32,32,105,102,32,97,46,116,105,32,61,61,32,98,46,116,105,
-32,116,104,101,110,13,10,32,32,32,32,108,111,99,97,108,32,105,114,44,
-32,97,114,44,32,98,114,32,61,32,97,46,105,116,101,109,82,101,99,116,
-44,32,97,46,111,116,104,101,114,82,101,99,116,44,32,98,46,111,116,104,
-101,114,82,101,99,116,13,10,32,32,32,32,108,111,99,97,108,32,97,100,
-32,61,32,114,101,99,116,95,103,101,116,83,113,117,97,114,101,68,105,115,
-116,97,110,99,101,40,105,114,46,120,44,105,114,46,121,44,105,114,46,119,
-44,105,114,46,104,44,32,97,114,46,120,44,97,114,46,121,44,97,114,46,
-119,44,97,114,46,104,41,13,10,32,32,32,32,108,111,99,97,108,32,98,
-100,32,61,32,114,101,99,116,95,103,101,116,83,113,117,97,114,101,68,105,
-115,116,97,110,99,101,40,105,114,46,120,44,105,114,46,121,44,105,114,46,
-119,44,105,114,46,104,44,32,98,114,46,120,44,98,114,46,121,44,98,114,
-46,119,44,98,114,46,104,41,13,10,32,32,32,32,114,101,116,117,114,110,
-32,97,100,32,60,32,98,100,13,10,32,32,101,110,100,13,10,32,32,114,
-101,116,117,114,110,32,97,46,116,105,32,60,32,98,46,116,105,13,10,101,
-110,100,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,
-32,97,100,100,73,116,101,109,84,111,67,101,108,108,40,115,101,108,102,44,
-32,105,116,101,109,44,32,99,120,44,32,99,121,41,13,10,32,32,115,101,
-108,102,46,114,111,119,115,91,99,121,93,32,61,32,115,101,108,102,46,114,
-111,119,115,91,99,121,93,32,111,114,32,115,101,116,109,101,116,97,116,97,
-98,108,101,40,123,125,44,32,123,95,95,109,111,100,101,32,61,32,39,118,
-39,125,41,13,10,32,32,108,111,99,97,108,32,114,111,119,32,61,32,115,
-101,108,102,46,114,111,119,115,91,99,121,93,13,10,32,32,114,111,119,91,
-99,120,93,32,61,32,114,111,119,91,99,120,93,32,111,114,32,123,105,116,
-101,109,67,111,117,110,116,32,61,32,48,44,32,120,32,61,32,99,120,44,
-32,121,32,61,32,99,121,44,32,105,116,101,109,115,32,61,32,115,101,116,
-109,101,116,97,116,97,98,108,101,40,123,125,44,32,123,95,95,109,111,100,
-101,32,61,32,39,107,39,125,41,125,13,10,32,32,108,111,99,97,108,32,
-99,101,108,108,32,61,32,114,111,119,91,99,120,93,13,10,32,32,115,101,
-108,102,46,110,111,110,69,109,112,116,121,67,101,108,108,115,91,99,101,108,
-108,93,32,61,32,116,114,117,101,13,10,32,32,105,102,32,110,111,116,32,
-99,101,108,108,46,105,116,101,109,115,91,105,116,101,109,93,32,116,104,101,
-110,13,10,32,32,32,32,99,101,108,108,46,105,116,101,109,115,91,105,116,
-101,109,93,32,61,32,116,114,117,101,13,10,32,32,32,32,99,101,108,108,
-46,105,116,101,109,67,111,117,110,116,32,61,32,99,101,108,108,46,105,116,
-101,109,67,111,117,110,116,32,43,32,49,13,10,32,32,101,110,100,13,10,
-101,110,100,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,
-110,32,114,101,109,111,118,101,73,116,101,109,70,114,111,109,67,101,108,108,
-40,115,101,108,102,44,32,105,116,101,109,44,32,99,120,44,32,99,121,41,
-13,10,32,32,108,111,99,97,108,32,114,111,119,32,61,32,115,101,108,102,
-46,114,111,119,115,91,99,121,93,13,10,32,32,105,102,32,110,111,116,32,
-114,111,119,32,111,114,32,110,111,116,32,114,111,119,91,99,120,93,32,111,
-114,32,110,111,116,32,114,111,119,91,99,120,93,46,105,116,101,109,115,91,
-105,116,101,109,93,32,116,104,101,110,32,114,101,116,117,114,110,32,102,97,
-108,115,101,32,101,110,100,13,10,13,10,32,32,108,111,99,97,108,32,99,
-101,108,108,32,61,32,114,111,119,91,99,120,93,13,10,32,32,99,101,108,
-108,46,105,116,101,109,115,91,105,116,101,109,93,32,61,32,110,105,108,13,
-10,32,32,99,101,108,108,46,105,116,101,109,67,111,117,110,116,32,61,32,
-99,101,108,108,46,105,116,101,109,67,111,117,110,116,32,45,32,49,13,10,
-32,32,105,102,32,99,101,108,108,46,105,116,101,109,67,111,117,110,116,32,
-61,61,32,48,32,116,104,101,110,13,10,32,32,32,32,115,101,108,102,46,
-110,111,110,69,109,112,116,121,67,101,108,108,115,91,99,101,108,108,93,32,
-61,32,110,105,108,13,10,32,32,101,110,100,13,10,32,32,114,101,116,117,
-114,110,32,116,114,117,101,13,10,101,110,100,13,10,13,10,108,111,99,97,
-108,32,102,117,110,99,116,105,111,110,32,103,101,116,68,105,99,116,73,116,
-101,109,115,73,110,67,101,108,108,82,101,99,116,40,115,101,108,102,44,32,
-99,108,44,99,116,44,99,119,44,99,104,41,13,10,32,32,108,111,99,97,
-108,32,105,116,101,109,115,95,100,105,99,116,32,61,32,123,125,13,10,32,
-32,102,111,114,32,99,121,61,99,116,44,99,116,43,99,104,45,49,32,100,
-111,13,10,32,32,32,32,108,111,99,97,108,32,114,111,119,32,61,32,115,
-101,108,102,46,114,111,119,115,91,99,121,93,13,10,32,32,32,32,105,102,
-32,114,111,119,32,116,104,101,110,13,10,32,32,32,32,32,32,102,111,114,
-32,99,120,61,99,108,44,99,108,43,99,119,45,49,32,100,111,13,10,32,
-32,32,32,32,32,32,32,108,111,99,97,108,32,99,101,108,108,32,61,32,
-114,111,119,91,99,120,93,13,10,32,32,32,32,32,32,32,32,105,102,32,
-99,101,108,108,32,97,110,100,32,99,101,108,108,46,105,116,101,109,67,111,
-117,110,116,32,62,32,48,32,116,104,101,110,32,45,45,32,110,111,32,99,
-101,108,108,46,105,116,101,109,67,111,117,110,116,32,62,32,49,32,98,101,
-99,97,117,115,101,32,116,117,110,110,101,108,105,110,103,13,10,32,32,32,
-32,32,32,32,32,32,32,102,111,114,32,105,116,101,109,44,95,32,105,110,
-32,112,97,105,114,115,40,99,101,108,108,46,105,116,101,109,115,41,32,100,
-111,13,10,32,32,32,32,32,32,32,32,32,32,32,32,105,116,101,109,115,
-95,100,105,99,116,91,105,116,101,109,93,32,61,32,116,114,117,101,13,10,
-32,32,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,32,
-32,32,32,101,110,100,13,10,32,32,32,32,32,32,101,110,100,13,10,32,
-32,32,32,101,110,100,13,10,32,32,101,110,100,13,10,13,10,32,32,114,
+45,45,45,45,45,45,45,45,45,13,10,13,10,108,111,99,97,108,32,87,
+111,114,108,100,32,61,32,123,125,13,10,108,111,99,97,108,32,87,111,114,
+108,100,95,109,116,32,61,32,123,95,95,105,110,100,101,120,32,61,32,87,
+111,114,108,100,125,13,10,13,10,45,45,32,80,114,105,118,97,116,101,32,
+102,117,110,99,116,105,111,110,115,32,97,110,100,32,109,101,116,104,111,100,
+115,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,
+115,111,114,116,66,121,87,101,105,103,104,116,40,97,44,98,41,32,114,101,
+116,117,114,110,32,97,46,119,101,105,103,104,116,32,60,32,98,46,119,101,
+105,103,104,116,32,101,110,100,13,10,13,10,108,111,99,97,108,32,102,117,
+110,99,116,105,111,110,32,115,111,114,116,66,121,84,105,65,110,100,68,105,
+115,116,97,110,99,101,40,97,44,98,41,13,10,32,32,105,102,32,97,46,
+116,105,32,61,61,32,98,46,116,105,32,116,104,101,110,13,10,32,32,108,
+111,99,97,108,32,105,114,44,32,97,114,44,32,98,114,32,61,32,97,46,
+105,116,101,109,82,101,99,116,44,32,97,46,111,116,104,101,114,82,101,99,
+116,44,32,98,46,111,116,104,101,114,82,101,99,116,13,10,32,32,108,111,
+99,97,108,32,97,100,32,61,32,114,101,99,116,95,103,101,116,83,113,117,
+97,114,101,68,105,115,116,97,110,99,101,40,105,114,46,120,44,105,114,46,
+121,44,105,114,46,119,44,105,114,46,104,44,32,97,114,46,120,44,97,114,
+46,121,44,97,114,46,119,44,97,114,46,104,41,13,10,32,32,108,111,99,
+97,108,32,98,100,32,61,32,114,101,99,116,95,103,101,116,83,113,117,97,
+114,101,68,105,115,116,97,110,99,101,40,105,114,46,120,44,105,114,46,121,
+44,105,114,46,119,44,105,114,46,104,44,32,98,114,46,120,44,98,114,46,
+121,44,98,114,46,119,44,98,114,46,104,41,13,10,32,32,114,101,116,117,
+114,110,32,97,100,32,60,32,98,100,13,10,32,32,101,110,100,13,10,32,
+32,114,101,116,117,114,110,32,97,46,116,105,32,60,32,98,46,116,105,13,
+10,101,110,100,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,
+111,110,32,97,100,100,73,116,101,109,84,111,67,101,108,108,40,115,101,108,
+102,44,32,105,116,101,109,44,32,99,120,44,32,99,121,41,13,10,32,32,
+115,101,108,102,46,114,111,119,115,91,99,121,93,32,61,32,115,101,108,102,
+46,114,111,119,115,91,99,121,93,32,111,114,32,115,101,116,109,101,116,97,
+116,97,98,108,101,40,123,125,44,32,123,95,95,109,111,100,101,32,61,32,
+39,118,39,125,41,13,10,32,32,108,111,99,97,108,32,114,111,119,32,61,
+32,115,101,108,102,46,114,111,119,115,91,99,121,93,13,10,32,32,114,111,
+119,91,99,120,93,32,61,32,114,111,119,91,99,120,93,32,111,114,32,123,
+105,116,101,109,67,111,117,110,116,32,61,32,48,44,32,120,32,61,32,99,
+120,44,32,121,32,61,32,99,121,44,32,105,116,101,109,115,32,61,32,115,
+101,116,109,101,116,97,116,97,98,108,101,40,123,125,44,32,123,95,95,109,
+111,100,101,32,61,32,39,107,39,125,41,125,13,10,32,32,108,111,99,97,
+108,32,99,101,108,108,32,61,32,114,111,119,91,99,120,93,13,10,32,32,
+115,101,108,102,46,110,111,110,69,109,112,116,121,67,101,108,108,115,91,99,
+101,108,108,93,32,61,32,116,114,117,101,13,10,32,32,105,102,32,110,111,
+116,32,99,101,108,108,46,105,116,101,109,115,91,105,116,101,109,93,32,116,
+104,101,110,13,10,32,32,99,101,108,108,46,105,116,101,109,115,91,105,116,
+101,109,93,32,61,32,116,114,117,101,13,10,32,32,99,101,108,108,46,105,
+116,101,109,67,111,117,110,116,32,61,32,99,101,108,108,46,105,116,101,109,
+67,111,117,110,116,32,43,32,49,13,10,32,32,101,110,100,13,10,101,110,
+100,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,
+114,101,109,111,118,101,73,116,101,109,70,114,111,109,67,101,108,108,40,115,
+101,108,102,44,32,105,116,101,109,44,32,99,120,44,32,99,121,41,13,10,
+32,32,108,111,99,97,108,32,114,111,119,32,61,32,115,101,108,102,46,114,
+111,119,115,91,99,121,93,13,10,32,32,105,102,32,110,111,116,32,114,111,
+119,32,111,114,32,110,111,116,32,114,111,119,91,99,120,93,32,111,114,32,
+110,111,116,32,114,111,119,91,99,120,93,46,105,116,101,109,115,91,105,116,
+101,109,93,32,116,104,101,110,32,114,101,116,117,114,110,32,102,97,108,115,
+101,32,101,110,100,13,10,13,10,32,32,108,111,99,97,108,32,99,101,108,
+108,32,61,32,114,111,119,91,99,120,93,13,10,32,32,99,101,108,108,46,
+105,116,101,109,115,91,105,116,101,109,93,32,61,32,110,105,108,13,10,32,
+32,99,101,108,108,46,105,116,101,109,67,111,117,110,116,32,61,32,99,101,
+108,108,46,105,116,101,109,67,111,117,110,116,32,45,32,49,13,10,32,32,
+105,102,32,99,101,108,108,46,105,116,101,109,67,111,117,110,116,32,61,61,
+32,48,32,116,104,101,110,13,10,32,32,115,101,108,102,46,110,111,110,69,
+109,112,116,121,67,101,108,108,115,91,99,101,108,108,93,32,61,32,110,105,
+108,13,10,32,32,101,110,100,13,10,32,32,114,101,116,117,114,110,32,116,
+114,117,101,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,102,117,
+110,99,116,105,111,110,32,103,101,116,68,105,99,116,73,116,101,109,115,73,
+110,67,101,108,108,82,101,99,116,40,115,101,108,102,44,32,99,108,44,99,
+116,44,99,119,44,99,104,41,13,10,32,32,108,111,99,97,108,32,105,116,
+101,109,115,95,100,105,99,116,32,61,32,123,125,13,10,32,32,102,111,114,
+32,99,121,61,99,116,44,99,116,43,99,104,45,49,32,100,111,13,10,32,
+32,108,111,99,97,108,32,114,111,119,32,61,32,115,101,108,102,46,114,111,
+119,115,91,99,121,93,13,10,32,32,105,102,32,114,111,119,32,116,104,101,
+110,13,10,32,32,32,32,102,111,114,32,99,120,61,99,108,44,99,108,43,
+99,119,45,49,32,100,111,13,10,32,32,32,32,108,111,99,97,108,32,99,
+101,108,108,32,61,32,114,111,119,91,99,120,93,13,10,32,32,32,32,105,
+102,32,99,101,108,108,32,97,110,100,32,99,101,108,108,46,105,116,101,109,
+67,111,117,110,116,32,62,32,48,32,116,104,101,110,32,45,45,32,110,111,
+32,99,101,108,108,46,105,116,101,109,67,111,117,110,116,32,62,32,49,32,
+98,101,99,97,117,115,101,32,116,117,110,110,101,108,105,110,103,13,10,32,
+32,32,32,32,32,102,111,114,32,105,116,101,109,44,95,32,105,110,32,112,
+97,105,114,115,40,99,101,108,108,46,105,116,101,109,115,41,32,100,111,13,
+10,32,32,32,32,32,32,105,116,101,109,115,95,100,105,99,116,91,105,116,
+101,109,93,32,61,32,116,114,117,101,13,10,32,32,32,32,32,32,101,110,
+100,13,10,32,32,32,32,101,110,100,13,10,32,32,32,32,101,110,100,13,
+10,32,32,101,110,100,13,10,32,32,101,110,100,13,10,13,10,32,32,114,
101,116,117,114,110,32,105,116,101,109,115,95,100,105,99,116,13,10,101,110,
100,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,
103,101,116,67,101,108,108,115,84,111,117,99,104,101,100,66,121,83,101,103,
@@ -562,419 +547,403 @@ static char physics_lua[] = {
61,32,123,125,44,32,48,44,32,123,125,13,10,13,10,32,32,103,114,105,
100,95,116,114,97,118,101,114,115,101,40,115,101,108,102,46,99,101,108,108,
83,105,122,101,44,32,120,49,44,121,49,44,120,50,44,121,50,44,32,102,
-117,110,99,116,105,111,110,40,99,120,44,32,99,121,41,13,10,32,32,32,
-32,108,111,99,97,108,32,114,111,119,32,32,61,32,115,101,108,102,46,114,
-111,119,115,91,99,121,93,13,10,32,32,32,32,105,102,32,110,111,116,32,
-114,111,119,32,116,104,101,110,32,114,101,116,117,114,110,32,101,110,100,13,
-10,32,32,32,32,108,111,99,97,108,32,99,101,108,108,32,61,32,114,111,
-119,91,99,120,93,13,10,32,32,32,32,105,102,32,110,111,116,32,99,101,
-108,108,32,111,114,32,118,105,115,105,116,101,100,91,99,101,108,108,93,32,
-116,104,101,110,32,114,101,116,117,114,110,32,101,110,100,13,10,13,10,32,
-32,32,32,118,105,115,105,116,101,100,91,99,101,108,108,93,32,61,32,116,
-114,117,101,13,10,32,32,32,32,99,101,108,108,115,76,101,110,32,61,32,
-99,101,108,108,115,76,101,110,32,43,32,49,13,10,32,32,32,32,99,101,
-108,108,115,91,99,101,108,108,115,76,101,110,93,32,61,32,99,101,108,108,
-13,10,32,32,101,110,100,41,13,10,13,10,32,32,114,101,116,117,114,110,
-32,99,101,108,108,115,44,32,99,101,108,108,115,76,101,110,13,10,101,110,
-100,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,
-103,101,116,73,110,102,111,65,98,111,117,116,73,116,101,109,115,84,111,117,
-99,104,101,100,66,121,83,101,103,109,101,110,116,40,115,101,108,102,44,32,
-120,49,44,121,49,44,32,120,50,44,121,50,44,32,102,105,108,116,101,114,
-41,13,10,32,32,108,111,99,97,108,32,99,101,108,108,115,44,32,108,101,
-110,32,61,32,103,101,116,67,101,108,108,115,84,111,117,99,104,101,100,66,
-121,83,101,103,109,101,110,116,40,115,101,108,102,44,32,120,49,44,121,49,
-44,120,50,44,121,50,41,13,10,32,32,108,111,99,97,108,32,99,101,108,
-108,44,32,114,101,99,116,44,32,108,44,116,44,119,44,104,44,32,116,105,
-49,44,116,105,50,44,32,116,105,105,48,44,116,105,105,49,13,10,32,32,
-108,111,99,97,108,32,118,105,115,105,116,101,100,44,32,105,116,101,109,73,
-110,102,111,44,32,105,116,101,109,73,110,102,111,76,101,110,32,61,32,123,
-125,44,123,125,44,48,13,10,32,32,102,111,114,32,105,61,49,44,108,101,
-110,32,100,111,13,10,32,32,32,32,99,101,108,108,32,61,32,99,101,108,
-108,115,91,105,93,13,10,32,32,32,32,102,111,114,32,105,116,101,109,32,
-105,110,32,112,97,105,114,115,40,99,101,108,108,46,105,116,101,109,115,41,
-32,100,111,13,10,32,32,32,32,32,32,105,102,32,110,111,116,32,118,105,
+117,110,99,116,105,111,110,40,99,120,44,32,99,121,41,13,10,32,32,108,
+111,99,97,108,32,114,111,119,32,32,61,32,115,101,108,102,46,114,111,119,
+115,91,99,121,93,13,10,32,32,105,102,32,110,111,116,32,114,111,119,32,
+116,104,101,110,32,114,101,116,117,114,110,32,101,110,100,13,10,32,32,108,
+111,99,97,108,32,99,101,108,108,32,61,32,114,111,119,91,99,120,93,13,
+10,32,32,105,102,32,110,111,116,32,99,101,108,108,32,111,114,32,118,105,
+115,105,116,101,100,91,99,101,108,108,93,32,116,104,101,110,32,114,101,116,
+117,114,110,32,101,110,100,13,10,13,10,32,32,118,105,115,105,116,101,100,
+91,99,101,108,108,93,32,61,32,116,114,117,101,13,10,32,32,99,101,108,
+108,115,76,101,110,32,61,32,99,101,108,108,115,76,101,110,32,43,32,49,
+13,10,32,32,99,101,108,108,115,91,99,101,108,108,115,76,101,110,93,32,
+61,32,99,101,108,108,13,10,32,32,101,110,100,41,13,10,13,10,32,32,
+114,101,116,117,114,110,32,99,101,108,108,115,44,32,99,101,108,108,115,76,
+101,110,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,102,117,110,
+99,116,105,111,110,32,103,101,116,73,110,102,111,65,98,111,117,116,73,116,
+101,109,115,84,111,117,99,104,101,100,66,121,83,101,103,109,101,110,116,40,
+115,101,108,102,44,32,120,49,44,121,49,44,32,120,50,44,121,50,44,32,
+102,105,108,116,101,114,41,13,10,32,32,108,111,99,97,108,32,99,101,108,
+108,115,44,32,108,101,110,32,61,32,103,101,116,67,101,108,108,115,84,111,
+117,99,104,101,100,66,121,83,101,103,109,101,110,116,40,115,101,108,102,44,
+32,120,49,44,121,49,44,120,50,44,121,50,41,13,10,32,32,108,111,99,
+97,108,32,99,101,108,108,44,32,114,101,99,116,44,32,108,44,116,44,119,
+44,104,44,32,116,105,49,44,116,105,50,44,32,116,105,105,48,44,116,105,
+105,49,13,10,32,32,108,111,99,97,108,32,118,105,115,105,116,101,100,44,
+32,105,116,101,109,73,110,102,111,44,32,105,116,101,109,73,110,102,111,76,
+101,110,32,61,32,123,125,44,123,125,44,48,13,10,32,32,102,111,114,32,
+105,61,49,44,108,101,110,32,100,111,13,10,32,32,99,101,108,108,32,61,
+32,99,101,108,108,115,91,105,93,13,10,32,32,102,111,114,32,105,116,101,
+109,32,105,110,32,112,97,105,114,115,40,99,101,108,108,46,105,116,101,109,
+115,41,32,100,111,13,10,32,32,32,32,105,102,32,110,111,116,32,118,105,
115,105,116,101,100,91,105,116,101,109,93,32,116,104,101,110,13,10,32,32,
-32,32,32,32,32,32,118,105,115,105,116,101,100,91,105,116,101,109,93,32,
-32,61,32,116,114,117,101,13,10,32,32,32,32,32,32,32,32,105,102,32,
-40,110,111,116,32,102,105,108,116,101,114,32,111,114,32,102,105,108,116,101,
-114,40,105,116,101,109,41,41,32,116,104,101,110,13,10,32,32,32,32,32,
-32,32,32,32,32,114,101,99,116,32,32,32,32,32,32,32,32,32,32,32,
-61,32,115,101,108,102,46,114,101,99,116,115,91,105,116,101,109,93,13,10,
-32,32,32,32,32,32,32,32,32,32,108,44,116,44,119,44,104,32,32,32,
-32,32,32,32,32,61,32,114,101,99,116,46,120,44,114,101,99,116,46,121,
-44,114,101,99,116,46,119,44,114,101,99,116,46,104,13,10,13,10,32,32,
-32,32,32,32,32,32,32,32,116,105,49,44,116,105,50,32,61,32,114,101,
-99,116,95,103,101,116,83,101,103,109,101,110,116,73,110,116,101,114,115,101,
-99,116,105,111,110,73,110,100,105,99,101,115,40,108,44,116,44,119,44,104,
-44,32,120,49,44,121,49,44,32,120,50,44,121,50,44,32,48,44,32,49,
-41,13,10,32,32,32,32,32,32,32,32,32,32,105,102,32,116,105,49,32,
-97,110,100,32,40,40,48,32,60,32,116,105,49,32,97,110,100,32,116,105,
-49,32,60,32,49,41,32,111,114,32,40,48,32,60,32,116,105,50,32,97,
-110,100,32,116,105,50,32,60,32,49,41,41,32,116,104,101,110,13,10,32,
-32,32,32,32,32,32,32,32,32,32,32,45,45,32,116,104,101,32,115,111,
-114,116,105,110,103,32,105,115,32,97,99,99,111,114,100,105,110,103,32,116,
-111,32,116,104,101,32,116,32,111,102,32,97,110,32,105,110,102,105,110,105,
-116,101,32,108,105,110,101,44,32,110,111,116,32,116,104,101,32,115,101,103,
-109,101,110,116,13,10,32,32,32,32,32,32,32,32,32,32,32,32,116,105,
-105,48,44,116,105,105,49,32,32,32,32,61,32,114,101,99,116,95,103,101,
-116,83,101,103,109,101,110,116,73,110,116,101,114,115,101,99,116,105,111,110,
-73,110,100,105,99,101,115,40,108,44,116,44,119,44,104,44,32,120,49,44,
-121,49,44,32,120,50,44,121,50,44,32,45,109,97,116,104,46,104,117,103,
-101,44,32,109,97,116,104,46,104,117,103,101,41,13,10,32,32,32,32,32,
-32,32,32,32,32,32,32,105,116,101,109,73,110,102,111,76,101,110,32,32,
-61,32,105,116,101,109,73,110,102,111,76,101,110,32,43,32,49,13,10,32,
-32,32,32,32,32,32,32,32,32,32,32,105,116,101,109,73,110,102,111,91,
-105,116,101,109,73,110,102,111,76,101,110,93,32,61,32,123,105,116,101,109,
-32,61,32,105,116,101,109,44,32,116,105,49,32,61,32,116,105,49,44,32,
-116,105,50,32,61,32,116,105,50,44,32,119,101,105,103,104,116,32,61,32,
-109,105,110,40,116,105,105,48,44,116,105,105,49,41,125,13,10,32,32,32,
-32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,32,32,
-101,110,100,13,10,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,
-101,110,100,13,10,32,32,101,110,100,13,10,32,32,116,97,98,108,101,46,
-115,111,114,116,40,105,116,101,109,73,110,102,111,44,32,115,111,114,116,66,
-121,87,101,105,103,104,116,41,13,10,32,32,114,101,116,117,114,110,32,105,
-116,101,109,73,110,102,111,44,32,105,116,101,109,73,110,102,111,76,101,110,
-13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,
-105,111,110,32,103,101,116,82,101,115,112,111,110,115,101,66,121,78,97,109,
-101,40,115,101,108,102,44,32,110,97,109,101,41,13,10,32,32,108,111,99,
-97,108,32,114,101,115,112,111,110,115,101,32,61,32,115,101,108,102,46,114,
-101,115,112,111,110,115,101,115,91,110,97,109,101,93,13,10,32,32,105,102,
-32,110,111,116,32,114,101,115,112,111,110,115,101,32,116,104,101,110,13,10,
-32,32,32,32,101,114,114,111,114,40,40,39,85,110,107,110,111,119,110,32,
-99,111,108,108,105,115,105,111,110,32,116,121,112,101,58,32,37,115,32,40,
-37,115,41,39,41,58,102,111,114,109,97,116,40,110,97,109,101,44,32,116,
-121,112,101,40,110,97,109,101,41,41,41,13,10,32,32,101,110,100,13,10,
-32,32,114,101,116,117,114,110,32,114,101,115,112,111,110,115,101,13,10,101,
-110,100,13,10,13,10,13,10,45,45,32,77,105,115,99,32,80,117,98,108,
-105,99,32,77,101,116,104,111,100,115,13,10,13,10,102,117,110,99,116,105,
-111,110,32,87,111,114,108,100,58,97,100,100,82,101,115,112,111,110,115,101,
-40,110,97,109,101,44,32,114,101,115,112,111,110,115,101,41,13,10,32,32,
-115,101,108,102,46,114,101,115,112,111,110,115,101,115,91,110,97,109,101,93,
-32,61,32,114,101,115,112,111,110,115,101,13,10,101,110,100,13,10,13,10,
-102,117,110,99,116,105,111,110,32,87,111,114,108,100,58,112,114,111,106,101,
-99,116,40,105,116,101,109,44,32,120,44,121,44,119,44,104,44,32,103,111,
-97,108,88,44,32,103,111,97,108,89,44,32,102,105,108,116,101,114,41,13,
-10,32,32,97,115,115,101,114,116,73,115,82,101,99,116,40,120,44,121,44,
-119,44,104,41,13,10,13,10,32,32,103,111,97,108,88,32,61,32,103,111,
-97,108,88,32,111,114,32,120,13,10,32,32,103,111,97,108,89,32,61,32,
-103,111,97,108,89,32,111,114,32,121,13,10,32,32,102,105,108,116,101,114,
-32,32,61,32,102,105,108,116,101,114,32,32,111,114,32,100,101,102,97,117,
-108,116,70,105,108,116,101,114,13,10,13,10,32,32,108,111,99,97,108,32,
-99,111,108,108,105,115,105,111,110,115,44,32,108,101,110,32,61,32,123,125,
-44,32,48,13,10,13,10,32,32,108,111,99,97,108,32,118,105,115,105,116,
-101,100,32,61,32,123,125,13,10,32,32,105,102,32,105,116,101,109,32,126,
-61,32,110,105,108,32,116,104,101,110,32,118,105,115,105,116,101,100,91,105,
-116,101,109,93,32,61,32,116,114,117,101,32,101,110,100,13,10,13,10,32,
-32,45,45,32,84,104,105,115,32,99,111,117,108,100,32,112,114,111,98,97,
-98,108,121,32,98,101,32,100,111,110,101,32,119,105,116,104,32,108,101,115,
-115,32,99,101,108,108,115,32,117,115,105,110,103,32,97,32,112,111,108,121,
-103,111,110,32,114,97,115,116,101,114,32,111,118,101,114,32,116,104,101,32,
-99,101,108,108,115,32,105,110,115,116,101,97,100,32,111,102,32,97,13,10,
-32,32,45,45,32,98,111,117,110,100,105,110,103,32,114,101,99,116,32,111,
-102,32,116,104,101,32,119,104,111,108,101,32,109,111,118,101,109,101,110,116,
-46,32,67,111,110,100,105,116,105,111,110,97,108,32,116,111,32,98,117,105,
-108,100,105,110,103,32,97,32,113,117,101,114,121,80,111,108,121,103,111,110,
-32,109,101,116,104,111,100,13,10,32,32,108,111,99,97,108,32,116,108,44,
-32,116,116,32,61,32,109,105,110,40,103,111,97,108,88,44,32,120,41,44,
-32,32,32,32,32,32,32,109,105,110,40,103,111,97,108,89,44,32,121,41,
-13,10,32,32,108,111,99,97,108,32,116,114,44,32,116,98,32,61,32,109,
-97,120,40,103,111,97,108,88,32,43,32,119,44,32,120,43,119,41,44,32,
-109,97,120,40,103,111,97,108,89,32,43,32,104,44,32,121,43,104,41,13,
-10,32,32,108,111,99,97,108,32,116,119,44,32,116,104,32,61,32,116,114,
-45,116,108,44,32,116,98,45,116,116,13,10,13,10,32,32,108,111,99,97,
-108,32,99,108,44,99,116,44,99,119,44,99,104,32,61,32,103,114,105,100,
-95,116,111,67,101,108,108,82,101,99,116,40,115,101,108,102,46,99,101,108,
-108,83,105,122,101,44,32,116,108,44,116,116,44,116,119,44,116,104,41,13,
-10,13,10,32,32,108,111,99,97,108,32,100,105,99,116,73,116,101,109,115,
-73,110,67,101,108,108,82,101,99,116,32,61,32,103,101,116,68,105,99,116,
-73,116,101,109,115,73,110,67,101,108,108,82,101,99,116,40,115,101,108,102,
-44,32,99,108,44,99,116,44,99,119,44,99,104,41,13,10,13,10,32,32,
-102,111,114,32,111,116,104,101,114,44,95,32,105,110,32,112,97,105,114,115,
-40,100,105,99,116,73,116,101,109,115,73,110,67,101,108,108,82,101,99,116,
-41,32,100,111,13,10,32,32,32,32,105,102,32,110,111,116,32,118,105,115,
-105,116,101,100,91,111,116,104,101,114,93,32,116,104,101,110,13,10,32,32,
-32,32,32,32,118,105,115,105,116,101,100,91,111,116,104,101,114,93,32,61,
-32,116,114,117,101,13,10,13,10,32,32,32,32,32,32,108,111,99,97,108,
+32,32,118,105,115,105,116,101,100,91,105,116,101,109,93,32,32,61,32,116,
+114,117,101,13,10,32,32,32,32,105,102,32,40,110,111,116,32,102,105,108,
+116,101,114,32,111,114,32,102,105,108,116,101,114,40,105,116,101,109,41,41,
+32,116,104,101,110,13,10,32,32,32,32,32,32,114,101,99,116,32,32,32,
+32,32,32,32,61,32,115,101,108,102,46,114,101,99,116,115,91,105,116,101,
+109,93,13,10,32,32,32,32,32,32,108,44,116,44,119,44,104,32,32,32,
+32,61,32,114,101,99,116,46,120,44,114,101,99,116,46,121,44,114,101,99,
+116,46,119,44,114,101,99,116,46,104,13,10,13,10,32,32,32,32,32,32,
+116,105,49,44,116,105,50,32,61,32,114,101,99,116,95,103,101,116,83,101,
+103,109,101,110,116,73,110,116,101,114,115,101,99,116,105,111,110,73,110,100,
+105,99,101,115,40,108,44,116,44,119,44,104,44,32,120,49,44,121,49,44,
+32,120,50,44,121,50,44,32,48,44,32,49,41,13,10,32,32,32,32,32,
+32,105,102,32,116,105,49,32,97,110,100,32,40,40,48,32,60,32,116,105,
+49,32,97,110,100,32,116,105,49,32,60,32,49,41,32,111,114,32,40,48,
+32,60,32,116,105,50,32,97,110,100,32,116,105,50,32,60,32,49,41,41,
+32,116,104,101,110,13,10,32,32,32,32,32,32,45,45,32,116,104,101,32,
+115,111,114,116,105,110,103,32,105,115,32,97,99,99,111,114,100,105,110,103,
+32,116,111,32,116,104,101,32,116,32,111,102,32,97,110,32,105,110,102,105,
+110,105,116,101,32,108,105,110,101,44,32,110,111,116,32,116,104,101,32,115,
+101,103,109,101,110,116,13,10,32,32,32,32,32,32,116,105,105,48,44,116,
+105,105,49,32,32,61,32,114,101,99,116,95,103,101,116,83,101,103,109,101,
+110,116,73,110,116,101,114,115,101,99,116,105,111,110,73,110,100,105,99,101,
+115,40,108,44,116,44,119,44,104,44,32,120,49,44,121,49,44,32,120,50,
+44,121,50,44,32,45,109,97,116,104,46,104,117,103,101,44,32,109,97,116,
+104,46,104,117,103,101,41,13,10,32,32,32,32,32,32,105,116,101,109,73,
+110,102,111,76,101,110,32,32,61,32,105,116,101,109,73,110,102,111,76,101,
+110,32,43,32,49,13,10,32,32,32,32,32,32,105,116,101,109,73,110,102,
+111,91,105,116,101,109,73,110,102,111,76,101,110,93,32,61,32,123,105,116,
+101,109,32,61,32,105,116,101,109,44,32,116,105,49,32,61,32,116,105,49,
+44,32,116,105,50,32,61,32,116,105,50,44,32,119,101,105,103,104,116,32,
+61,32,109,105,110,40,116,105,105,48,44,116,105,105,49,41,125,13,10,32,
+32,32,32,32,32,101,110,100,13,10,32,32,32,32,101,110,100,13,10,32,
+32,32,32,101,110,100,13,10,32,32,101,110,100,13,10,32,32,101,110,100,
+13,10,32,32,116,97,98,108,101,46,115,111,114,116,40,105,116,101,109,73,
+110,102,111,44,32,115,111,114,116,66,121,87,101,105,103,104,116,41,13,10,
+32,32,114,101,116,117,114,110,32,105,116,101,109,73,110,102,111,44,32,105,
+116,101,109,73,110,102,111,76,101,110,13,10,101,110,100,13,10,13,10,108,
+111,99,97,108,32,102,117,110,99,116,105,111,110,32,103,101,116,82,101,115,
+112,111,110,115,101,66,121,78,97,109,101,40,115,101,108,102,44,32,110,97,
+109,101,41,13,10,32,32,108,111,99,97,108,32,114,101,115,112,111,110,115,
+101,32,61,32,115,101,108,102,46,114,101,115,112,111,110,115,101,115,91,110,
+97,109,101,93,13,10,32,32,105,102,32,110,111,116,32,114,101,115,112,111,
+110,115,101,32,116,104,101,110,13,10,32,32,101,114,114,111,114,40,40,39,
+85,110,107,110,111,119,110,32,99,111,108,108,105,115,105,111,110,32,116,121,
+112,101,58,32,37,115,32,40,37,115,41,39,41,58,102,111,114,109,97,116,
+40,110,97,109,101,44,32,116,121,112,101,40,110,97,109,101,41,41,41,13,
+10,32,32,101,110,100,13,10,32,32,114,101,116,117,114,110,32,114,101,115,
+112,111,110,115,101,13,10,101,110,100,13,10,13,10,13,10,45,45,32,77,
+105,115,99,32,80,117,98,108,105,99,32,77,101,116,104,111,100,115,13,10,
+13,10,102,117,110,99,116,105,111,110,32,87,111,114,108,100,58,97,100,100,
+82,101,115,112,111,110,115,101,40,110,97,109,101,44,32,114,101,115,112,111,
+110,115,101,41,13,10,32,32,115,101,108,102,46,114,101,115,112,111,110,115,
+101,115,91,110,97,109,101,93,32,61,32,114,101,115,112,111,110,115,101,13,
+10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,87,111,114,
+108,100,58,112,114,111,106,101,99,116,40,105,116,101,109,44,32,120,44,121,
+44,119,44,104,44,32,103,111,97,108,88,44,32,103,111,97,108,89,44,32,
+102,105,108,116,101,114,41,13,10,32,32,97,115,115,101,114,116,73,115,82,
+101,99,116,40,120,44,121,44,119,44,104,41,13,10,13,10,32,32,103,111,
+97,108,88,32,61,32,103,111,97,108,88,32,111,114,32,120,13,10,32,32,
+103,111,97,108,89,32,61,32,103,111,97,108,89,32,111,114,32,121,13,10,
+32,32,102,105,108,116,101,114,32,32,61,32,102,105,108,116,101,114,32,32,
+111,114,32,100,101,102,97,117,108,116,70,105,108,116,101,114,13,10,13,10,
+32,32,108,111,99,97,108,32,99,111,108,108,105,115,105,111,110,115,44,32,
+108,101,110,32,61,32,123,125,44,32,48,13,10,13,10,32,32,108,111,99,
+97,108,32,118,105,115,105,116,101,100,32,61,32,123,125,13,10,32,32,105,
+102,32,105,116,101,109,32,126,61,32,110,105,108,32,116,104,101,110,32,118,
+105,115,105,116,101,100,91,105,116,101,109,93,32,61,32,116,114,117,101,32,
+101,110,100,13,10,13,10,32,32,45,45,32,84,104,105,115,32,99,111,117,
+108,100,32,112,114,111,98,97,98,108,121,32,98,101,32,100,111,110,101,32,
+119,105,116,104,32,108,101,115,115,32,99,101,108,108,115,32,117,115,105,110,
+103,32,97,32,112,111,108,121,103,111,110,32,114,97,115,116,101,114,32,111,
+118,101,114,32,116,104,101,32,99,101,108,108,115,32,105,110,115,116,101,97,
+100,32,111,102,32,97,13,10,32,32,45,45,32,98,111,117,110,100,105,110,
+103,32,114,101,99,116,32,111,102,32,116,104,101,32,119,104,111,108,101,32,
+109,111,118,101,109,101,110,116,46,32,67,111,110,100,105,116,105,111,110,97,
+108,32,116,111,32,98,117,105,108,100,105,110,103,32,97,32,113,117,101,114,
+121,80,111,108,121,103,111,110,32,109,101,116,104,111,100,13,10,32,32,108,
+111,99,97,108,32,116,108,44,32,116,116,32,61,32,109,105,110,40,103,111,
+97,108,88,44,32,120,41,44,32,32,32,32,32,109,105,110,40,103,111,97,
+108,89,44,32,121,41,13,10,32,32,108,111,99,97,108,32,116,114,44,32,
+116,98,32,61,32,109,97,120,40,103,111,97,108,88,32,43,32,119,44,32,
+120,43,119,41,44,32,109,97,120,40,103,111,97,108,89,32,43,32,104,44,
+32,121,43,104,41,13,10,32,32,108,111,99,97,108,32,116,119,44,32,116,
+104,32,61,32,116,114,45,116,108,44,32,116,98,45,116,116,13,10,13,10,
+32,32,108,111,99,97,108,32,99,108,44,99,116,44,99,119,44,99,104,32,
+61,32,103,114,105,100,95,116,111,67,101,108,108,82,101,99,116,40,115,101,
+108,102,46,99,101,108,108,83,105,122,101,44,32,116,108,44,116,116,44,116,
+119,44,116,104,41,13,10,13,10,32,32,108,111,99,97,108,32,100,105,99,
+116,73,116,101,109,115,73,110,67,101,108,108,82,101,99,116,32,61,32,103,
+101,116,68,105,99,116,73,116,101,109,115,73,110,67,101,108,108,82,101,99,
+116,40,115,101,108,102,44,32,99,108,44,99,116,44,99,119,44,99,104,41,
+13,10,13,10,32,32,102,111,114,32,111,116,104,101,114,44,95,32,105,110,
+32,112,97,105,114,115,40,100,105,99,116,73,116,101,109,115,73,110,67,101,
+108,108,82,101,99,116,41,32,100,111,13,10,32,32,105,102,32,110,111,116,
+32,118,105,115,105,116,101,100,91,111,116,104,101,114,93,32,116,104,101,110,
+13,10,32,32,32,32,118,105,115,105,116,101,100,91,111,116,104,101,114,93,
+32,61,32,116,114,117,101,13,10,13,10,32,32,32,32,108,111,99,97,108,
32,114,101,115,112,111,110,115,101,78,97,109,101,32,61,32,102,105,108,116,
101,114,40,105,116,101,109,44,32,111,116,104,101,114,41,13,10,32,32,32,
-32,32,32,105,102,32,114,101,115,112,111,110,115,101,78,97,109,101,32,116,
-104,101,110,13,10,32,32,32,32,32,32,32,32,108,111,99,97,108,32,111,
-120,44,111,121,44,111,119,44,111,104,32,32,32,61,32,115,101,108,102,58,
-103,101,116,82,101,99,116,40,111,116,104,101,114,41,13,10,32,32,32,32,
-32,32,32,32,108,111,99,97,108,32,99,111,108,32,32,32,32,32,32,32,
-32,32,32,32,61,32,114,101,99,116,95,100,101,116,101,99,116,67,111,108,
-108,105,115,105,111,110,40,120,44,121,44,119,44,104,44,32,111,120,44,111,
-121,44,111,119,44,111,104,44,32,103,111,97,108,88,44,32,103,111,97,108,
-89,41,13,10,13,10,32,32,32,32,32,32,32,32,105,102,32,99,111,108,
-32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,32,32,99,111,108,
-46,111,116,104,101,114,32,32,32,32,61,32,111,116,104,101,114,13,10,32,
-32,32,32,32,32,32,32,32,32,99,111,108,46,105,116,101,109,32,32,32,
-32,32,61,32,105,116,101,109,13,10,32,32,32,32,32,32,32,32,32,32,
-99,111,108,46,116,121,112,101,32,32,32,32,32,61,32,114,101,115,112,111,
-110,115,101,78,97,109,101,13,10,13,10,32,32,32,32,32,32,32,32,32,
+32,105,102,32,114,101,115,112,111,110,115,101,78,97,109,101,32,116,104,101,
+110,13,10,32,32,32,32,108,111,99,97,108,32,111,120,44,111,121,44,111,
+119,44,111,104,32,32,32,61,32,115,101,108,102,58,103,101,116,82,101,99,
+116,40,111,116,104,101,114,41,13,10,32,32,32,32,108,111,99,97,108,32,
+99,111,108,32,32,32,32,32,32,32,61,32,114,101,99,116,95,100,101,116,
+101,99,116,67,111,108,108,105,115,105,111,110,40,120,44,121,44,119,44,104,
+44,32,111,120,44,111,121,44,111,119,44,111,104,44,32,103,111,97,108,88,
+44,32,103,111,97,108,89,41,13,10,13,10,32,32,32,32,105,102,32,99,
+111,108,32,116,104,101,110,13,10,32,32,32,32,32,32,99,111,108,46,111,
+116,104,101,114,32,32,61,32,111,116,104,101,114,13,10,32,32,32,32,32,
+32,99,111,108,46,105,116,101,109,32,32,32,61,32,105,116,101,109,13,10,
+32,32,32,32,32,32,99,111,108,46,116,121,112,101,32,32,32,61,32,114,
+101,115,112,111,110,115,101,78,97,109,101,13,10,13,10,32,32,32,32,32,
32,108,101,110,32,61,32,108,101,110,32,43,32,49,13,10,32,32,32,32,
-32,32,32,32,32,32,99,111,108,108,105,115,105,111,110,115,91,108,101,110,
-93,32,61,32,99,111,108,13,10,32,32,32,32,32,32,32,32,101,110,100,
-13,10,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,101,110,100,
-13,10,32,32,101,110,100,13,10,13,10,32,32,116,97,98,108,101,46,115,
-111,114,116,40,99,111,108,108,105,115,105,111,110,115,44,32,115,111,114,116,
-66,121,84,105,65,110,100,68,105,115,116,97,110,99,101,41,13,10,13,10,
-32,32,114,101,116,117,114,110,32,99,111,108,108,105,115,105,111,110,115,44,
-32,108,101,110,13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,
-110,32,87,111,114,108,100,58,99,111,117,110,116,67,101,108,108,115,40,41,
-13,10,32,32,108,111,99,97,108,32,99,111,117,110,116,32,61,32,48,13,
-10,32,32,102,111,114,32,95,44,114,111,119,32,105,110,32,112,97,105,114,
-115,40,115,101,108,102,46,114,111,119,115,41,32,100,111,13,10,32,32,32,
-32,102,111,114,32,95,44,95,32,105,110,32,112,97,105,114,115,40,114,111,
-119,41,32,100,111,13,10,32,32,32,32,32,32,99,111,117,110,116,32,61,
-32,99,111,117,110,116,32,43,32,49,13,10,32,32,32,32,101,110,100,13,
-10,32,32,101,110,100,13,10,32,32,114,101,116,117,114,110,32,99,111,117,
-110,116,13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,
-87,111,114,108,100,58,104,97,115,73,116,101,109,40,105,116,101,109,41,13,
-10,32,32,114,101,116,117,114,110,32,110,111,116,32,110,111,116,32,115,101,
-108,102,46,114,101,99,116,115,91,105,116,101,109,93,13,10,101,110,100,13,
-10,13,10,102,117,110,99,116,105,111,110,32,87,111,114,108,100,58,103,101,
-116,73,116,101,109,115,40,41,13,10,32,32,108,111,99,97,108,32,105,116,
-101,109,115,44,32,108,101,110,32,61,32,123,125,44,32,48,13,10,32,32,
-102,111,114,32,105,116,101,109,44,95,32,105,110,32,112,97,105,114,115,40,
-115,101,108,102,46,114,101,99,116,115,41,32,100,111,13,10,32,32,32,32,
-108,101,110,32,61,32,108,101,110,32,43,32,49,13,10,32,32,32,32,105,
-116,101,109,115,91,108,101,110,93,32,61,32,105,116,101,109,13,10,32,32,
-101,110,100,13,10,32,32,114,101,116,117,114,110,32,105,116,101,109,115,44,
-32,108,101,110,13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,
-110,32,87,111,114,108,100,58,99,111,117,110,116,73,116,101,109,115,40,41,
-13,10,32,32,108,111,99,97,108,32,108,101,110,32,61,32,48,13,10,32,
-32,102,111,114,32,95,32,105,110,32,112,97,105,114,115,40,115,101,108,102,
-46,114,101,99,116,115,41,32,100,111,32,108,101,110,32,61,32,108,101,110,
-32,43,32,49,32,101,110,100,13,10,32,32,114,101,116,117,114,110,32,108,
+32,32,99,111,108,108,105,115,105,111,110,115,91,108,101,110,93,32,61,32,
+99,111,108,13,10,32,32,32,32,101,110,100,13,10,32,32,32,32,101,110,
+100,13,10,32,32,101,110,100,13,10,32,32,101,110,100,13,10,13,10,32,
+32,116,97,98,108,101,46,115,111,114,116,40,99,111,108,108,105,115,105,111,
+110,115,44,32,115,111,114,116,66,121,84,105,65,110,100,68,105,115,116,97,
+110,99,101,41,13,10,13,10,32,32,114,101,116,117,114,110,32,99,111,108,
+108,105,115,105,111,110,115,44,32,108,101,110,13,10,101,110,100,13,10,13,
+10,102,117,110,99,116,105,111,110,32,87,111,114,108,100,58,99,111,117,110,
+116,67,101,108,108,115,40,41,13,10,32,32,108,111,99,97,108,32,99,111,
+117,110,116,32,61,32,48,13,10,32,32,102,111,114,32,95,44,114,111,119,
+32,105,110,32,112,97,105,114,115,40,115,101,108,102,46,114,111,119,115,41,
+32,100,111,13,10,32,32,102,111,114,32,95,44,95,32,105,110,32,112,97,
+105,114,115,40,114,111,119,41,32,100,111,13,10,32,32,32,32,99,111,117,
+110,116,32,61,32,99,111,117,110,116,32,43,32,49,13,10,32,32,101,110,
+100,13,10,32,32,101,110,100,13,10,32,32,114,101,116,117,114,110,32,99,
+111,117,110,116,13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,
+110,32,87,111,114,108,100,58,104,97,115,73,116,101,109,40,105,116,101,109,
+41,13,10,32,32,114,101,116,117,114,110,32,110,111,116,32,110,111,116,32,
+115,101,108,102,46,114,101,99,116,115,91,105,116,101,109,93,13,10,101,110,
+100,13,10,13,10,102,117,110,99,116,105,111,110,32,87,111,114,108,100,58,
+103,101,116,73,116,101,109,115,40,41,13,10,32,32,108,111,99,97,108,32,
+105,116,101,109,115,44,32,108,101,110,32,61,32,123,125,44,32,48,13,10,
+32,32,102,111,114,32,105,116,101,109,44,95,32,105,110,32,112,97,105,114,
+115,40,115,101,108,102,46,114,101,99,116,115,41,32,100,111,13,10,32,32,
+108,101,110,32,61,32,108,101,110,32,43,32,49,13,10,32,32,105,116,101,
+109,115,91,108,101,110,93,32,61,32,105,116,101,109,13,10,32,32,101,110,
+100,13,10,32,32,114,101,116,117,114,110,32,105,116,101,109,115,44,32,108,
101,110,13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,
-87,111,114,108,100,58,103,101,116,82,101,99,116,40,105,116,101,109,41,13,
-10,32,32,108,111,99,97,108,32,114,101,99,116,32,61,32,115,101,108,102,
-46,114,101,99,116,115,91,105,116,101,109,93,13,10,32,32,105,102,32,110,
-111,116,32,114,101,99,116,32,116,104,101,110,13,10,32,32,32,32,101,114,
-114,111,114,40,39,73,116,101,109,32,39,32,46,46,32,116,111,115,116,114,
-105,110,103,40,105,116,101,109,41,32,46,46,32,39,32,109,117,115,116,32,
-98,101,32,97,100,100,101,100,32,116,111,32,116,104,101,32,119,111,114,108,
-100,32,98,101,102,111,114,101,32,103,101,116,116,105,110,103,32,105,116,115,
-32,114,101,99,116,46,32,85,115,101,32,119,111,114,108,100,58,97,100,100,
-40,105,116,101,109,44,32,120,44,121,44,119,44,104,41,32,116,111,32,97,
-100,100,32,105,116,32,102,105,114,115,116,46,39,41,13,10,32,32,101,110,
-100,13,10,32,32,114,101,116,117,114,110,32,114,101,99,116,46,120,44,32,
-114,101,99,116,46,121,44,32,114,101,99,116,46,119,44,32,114,101,99,116,
-46,104,13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,
-87,111,114,108,100,58,116,111,87,111,114,108,100,40,99,120,44,32,99,121,
-41,13,10,32,32,114,101,116,117,114,110,32,103,114,105,100,95,116,111,87,
-111,114,108,100,40,115,101,108,102,46,99,101,108,108,83,105,122,101,44,32,
-99,120,44,32,99,121,41,13,10,101,110,100,13,10,13,10,102,117,110,99,
-116,105,111,110,32,87,111,114,108,100,58,116,111,67,101,108,108,40,120,44,
-121,41,13,10,32,32,114,101,116,117,114,110,32,103,114,105,100,95,116,111,
-67,101,108,108,40,115,101,108,102,46,99,101,108,108,83,105,122,101,44,32,
-120,44,32,121,41,13,10,101,110,100,13,10,13,10,13,10,45,45,45,32,
-81,117,101,114,121,32,109,101,116,104,111,100,115,13,10,13,10,102,117,110,
-99,116,105,111,110,32,87,111,114,108,100,58,113,117,101,114,121,82,101,99,
-116,40,120,44,121,44,119,44,104,44,32,102,105,108,116,101,114,41,13,10,
-13,10,32,32,97,115,115,101,114,116,73,115,82,101,99,116,40,120,44,121,
-44,119,44,104,41,13,10,13,10,32,32,108,111,99,97,108,32,99,108,44,
-99,116,44,99,119,44,99,104,32,61,32,103,114,105,100,95,116,111,67,101,
-108,108,82,101,99,116,40,115,101,108,102,46,99,101,108,108,83,105,122,101,
-44,32,120,44,121,44,119,44,104,41,13,10,32,32,108,111,99,97,108,32,
-100,105,99,116,73,116,101,109,115,73,110,67,101,108,108,82,101,99,116,32,
-61,32,103,101,116,68,105,99,116,73,116,101,109,115,73,110,67,101,108,108,
-82,101,99,116,40,115,101,108,102,44,32,99,108,44,99,116,44,99,119,44,
-99,104,41,13,10,13,10,32,32,108,111,99,97,108,32,105,116,101,109,115,
-44,32,108,101,110,32,61,32,123,125,44,32,48,13,10,13,10,32,32,108,
-111,99,97,108,32,114,101,99,116,13,10,32,32,102,111,114,32,105,116,101,
-109,44,95,32,105,110,32,112,97,105,114,115,40,100,105,99,116,73,116,101,
-109,115,73,110,67,101,108,108,82,101,99,116,41,32,100,111,13,10,32,32,
-32,32,114,101,99,116,32,61,32,115,101,108,102,46,114,101,99,116,115,91,
-105,116,101,109,93,13,10,32,32,32,32,105,102,32,40,110,111,116,32,102,
-105,108,116,101,114,32,111,114,32,102,105,108,116,101,114,40,105,116,101,109,
-41,41,13,10,32,32,32,32,97,110,100,32,114,101,99,116,95,105,115,73,
-110,116,101,114,115,101,99,116,105,110,103,40,120,44,121,44,119,44,104,44,
-32,114,101,99,116,46,120,44,32,114,101,99,116,46,121,44,32,114,101,99,
-116,46,119,44,32,114,101,99,116,46,104,41,13,10,32,32,32,32,116,104,
-101,110,13,10,32,32,32,32,32,32,108,101,110,32,61,32,108,101,110,32,
-43,32,49,13,10,32,32,32,32,32,32,105,116,101,109,115,91,108,101,110,
-93,32,61,32,105,116,101,109,13,10,32,32,32,32,101,110,100,13,10,32,
-32,101,110,100,13,10,13,10,32,32,114,101,116,117,114,110,32,105,116,101,
-109,115,44,32,108,101,110,13,10,101,110,100,13,10,13,10,102,117,110,99,
-116,105,111,110,32,87,111,114,108,100,58,113,117,101,114,121,80,111,105,110,
-116,40,120,44,121,44,32,102,105,108,116,101,114,41,13,10,32,32,108,111,
-99,97,108,32,99,120,44,99,121,32,61,32,115,101,108,102,58,116,111,67,
-101,108,108,40,120,44,121,41,13,10,32,32,108,111,99,97,108,32,100,105,
-99,116,73,116,101,109,115,73,110,67,101,108,108,82,101,99,116,32,61,32,
-103,101,116,68,105,99,116,73,116,101,109,115,73,110,67,101,108,108,82,101,
-99,116,40,115,101,108,102,44,32,99,120,44,99,121,44,49,44,49,41,13,
+87,111,114,108,100,58,99,111,117,110,116,73,116,101,109,115,40,41,13,10,
+32,32,108,111,99,97,108,32,108,101,110,32,61,32,48,13,10,32,32,102,
+111,114,32,95,32,105,110,32,112,97,105,114,115,40,115,101,108,102,46,114,
+101,99,116,115,41,32,100,111,32,108,101,110,32,61,32,108,101,110,32,43,
+32,49,32,101,110,100,13,10,32,32,114,101,116,117,114,110,32,108,101,110,
+13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,87,111,
+114,108,100,58,103,101,116,82,101,99,116,40,105,116,101,109,41,13,10,32,
+32,108,111,99,97,108,32,114,101,99,116,32,61,32,115,101,108,102,46,114,
+101,99,116,115,91,105,116,101,109,93,13,10,32,32,105,102,32,110,111,116,
+32,114,101,99,116,32,116,104,101,110,13,10,32,32,101,114,114,111,114,40,
+39,73,116,101,109,32,39,32,46,46,32,116,111,115,116,114,105,110,103,40,
+105,116,101,109,41,32,46,46,32,39,32,109,117,115,116,32,98,101,32,97,
+100,100,101,100,32,116,111,32,116,104,101,32,119,111,114,108,100,32,98,101,
+102,111,114,101,32,103,101,116,116,105,110,103,32,105,116,115,32,114,101,99,
+116,46,32,85,115,101,32,119,111,114,108,100,58,97,100,100,40,105,116,101,
+109,44,32,120,44,121,44,119,44,104,41,32,116,111,32,97,100,100,32,105,
+116,32,102,105,114,115,116,46,39,41,13,10,32,32,101,110,100,13,10,32,
+32,114,101,116,117,114,110,32,114,101,99,116,46,120,44,32,114,101,99,116,
+46,121,44,32,114,101,99,116,46,119,44,32,114,101,99,116,46,104,13,10,
+101,110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,87,111,114,108,
+100,58,116,111,87,111,114,108,100,40,99,120,44,32,99,121,41,13,10,32,
+32,114,101,116,117,114,110,32,103,114,105,100,95,116,111,87,111,114,108,100,
+40,115,101,108,102,46,99,101,108,108,83,105,122,101,44,32,99,120,44,32,
+99,121,41,13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,110,
+32,87,111,114,108,100,58,116,111,67,101,108,108,40,120,44,121,41,13,10,
+32,32,114,101,116,117,114,110,32,103,114,105,100,95,116,111,67,101,108,108,
+40,115,101,108,102,46,99,101,108,108,83,105,122,101,44,32,120,44,32,121,
+41,13,10,101,110,100,13,10,13,10,13,10,45,45,45,32,81,117,101,114,
+121,32,109,101,116,104,111,100,115,13,10,13,10,102,117,110,99,116,105,111,
+110,32,87,111,114,108,100,58,113,117,101,114,121,82,101,99,116,40,120,44,
+121,44,119,44,104,44,32,102,105,108,116,101,114,41,13,10,13,10,32,32,
+97,115,115,101,114,116,73,115,82,101,99,116,40,120,44,121,44,119,44,104,
+41,13,10,13,10,32,32,108,111,99,97,108,32,99,108,44,99,116,44,99,
+119,44,99,104,32,61,32,103,114,105,100,95,116,111,67,101,108,108,82,101,
+99,116,40,115,101,108,102,46,99,101,108,108,83,105,122,101,44,32,120,44,
+121,44,119,44,104,41,13,10,32,32,108,111,99,97,108,32,100,105,99,116,
+73,116,101,109,115,73,110,67,101,108,108,82,101,99,116,32,61,32,103,101,
+116,68,105,99,116,73,116,101,109,115,73,110,67,101,108,108,82,101,99,116,
+40,115,101,108,102,44,32,99,108,44,99,116,44,99,119,44,99,104,41,13,
10,13,10,32,32,108,111,99,97,108,32,105,116,101,109,115,44,32,108,101,
110,32,61,32,123,125,44,32,48,13,10,13,10,32,32,108,111,99,97,108,
32,114,101,99,116,13,10,32,32,102,111,114,32,105,116,101,109,44,95,32,
105,110,32,112,97,105,114,115,40,100,105,99,116,73,116,101,109,115,73,110,
-67,101,108,108,82,101,99,116,41,32,100,111,13,10,32,32,32,32,114,101,
+67,101,108,108,82,101,99,116,41,32,100,111,13,10,32,32,114,101,99,116,
+32,61,32,115,101,108,102,46,114,101,99,116,115,91,105,116,101,109,93,13,
+10,32,32,105,102,32,40,110,111,116,32,102,105,108,116,101,114,32,111,114,
+32,102,105,108,116,101,114,40,105,116,101,109,41,41,13,10,32,32,97,110,
+100,32,114,101,99,116,95,105,115,73,110,116,101,114,115,101,99,116,105,110,
+103,40,120,44,121,44,119,44,104,44,32,114,101,99,116,46,120,44,32,114,
+101,99,116,46,121,44,32,114,101,99,116,46,119,44,32,114,101,99,116,46,
+104,41,13,10,32,32,116,104,101,110,13,10,32,32,32,32,108,101,110,32,
+61,32,108,101,110,32,43,32,49,13,10,32,32,32,32,105,116,101,109,115,
+91,108,101,110,93,32,61,32,105,116,101,109,13,10,32,32,101,110,100,13,
+10,32,32,101,110,100,13,10,13,10,32,32,114,101,116,117,114,110,32,105,
+116,101,109,115,44,32,108,101,110,13,10,101,110,100,13,10,13,10,102,117,
+110,99,116,105,111,110,32,87,111,114,108,100,58,113,117,101,114,121,80,111,
+105,110,116,40,120,44,121,44,32,102,105,108,116,101,114,41,13,10,32,32,
+108,111,99,97,108,32,99,120,44,99,121,32,61,32,115,101,108,102,58,116,
+111,67,101,108,108,40,120,44,121,41,13,10,32,32,108,111,99,97,108,32,
+100,105,99,116,73,116,101,109,115,73,110,67,101,108,108,82,101,99,116,32,
+61,32,103,101,116,68,105,99,116,73,116,101,109,115,73,110,67,101,108,108,
+82,101,99,116,40,115,101,108,102,44,32,99,120,44,99,121,44,49,44,49,
+41,13,10,13,10,32,32,108,111,99,97,108,32,105,116,101,109,115,44,32,
+108,101,110,32,61,32,123,125,44,32,48,13,10,13,10,32,32,108,111,99,
+97,108,32,114,101,99,116,13,10,32,32,102,111,114,32,105,116,101,109,44,
+95,32,105,110,32,112,97,105,114,115,40,100,105,99,116,73,116,101,109,115,
+73,110,67,101,108,108,82,101,99,116,41,32,100,111,13,10,32,32,114,101,
99,116,32,61,32,115,101,108,102,46,114,101,99,116,115,91,105,116,101,109,
-93,13,10,32,32,32,32,105,102,32,40,110,111,116,32,102,105,108,116,101,
-114,32,111,114,32,102,105,108,116,101,114,40,105,116,101,109,41,41,13,10,
-32,32,32,32,97,110,100,32,114,101,99,116,95,99,111,110,116,97,105,110,
-115,80,111,105,110,116,40,114,101,99,116,46,120,44,32,114,101,99,116,46,
-121,44,32,114,101,99,116,46,119,44,32,114,101,99,116,46,104,44,32,120,
-44,32,121,41,13,10,32,32,32,32,116,104,101,110,13,10,32,32,32,32,
-32,32,108,101,110,32,61,32,108,101,110,32,43,32,49,13,10,32,32,32,
-32,32,32,105,116,101,109,115,91,108,101,110,93,32,61,32,105,116,101,109,
-13,10,32,32,32,32,101,110,100,13,10,32,32,101,110,100,13,10,13,10,
-32,32,114,101,116,117,114,110,32,105,116,101,109,115,44,32,108,101,110,13,
-10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,87,111,114,
-108,100,58,113,117,101,114,121,83,101,103,109,101,110,116,40,120,49,44,32,
-121,49,44,32,120,50,44,32,121,50,44,32,102,105,108,116,101,114,41,13,
-10,32,32,108,111,99,97,108,32,105,116,101,109,73,110,102,111,44,32,108,
-101,110,32,61,32,103,101,116,73,110,102,111,65,98,111,117,116,73,116,101,
-109,115,84,111,117,99,104,101,100,66,121,83,101,103,109,101,110,116,40,115,
-101,108,102,44,32,120,49,44,32,121,49,44,32,120,50,44,32,121,50,44,
-32,102,105,108,116,101,114,41,13,10,32,32,108,111,99,97,108,32,105,116,
-101,109,115,32,61,32,123,125,13,10,32,32,102,111,114,32,105,61,49,44,
-32,108,101,110,32,100,111,13,10,32,32,32,32,105,116,101,109,115,91,105,
-93,32,61,32,105,116,101,109,73,110,102,111,91,105,93,46,105,116,101,109,
-13,10,32,32,101,110,100,13,10,32,32,114,101,116,117,114,110,32,105,116,
-101,109,115,44,32,108,101,110,13,10,101,110,100,13,10,13,10,102,117,110,
-99,116,105,111,110,32,87,111,114,108,100,58,113,117,101,114,121,83,101,103,
-109,101,110,116,87,105,116,104,67,111,111,114,100,115,40,120,49,44,32,121,
-49,44,32,120,50,44,32,121,50,44,32,102,105,108,116,101,114,41,13,10,
-32,32,108,111,99,97,108,32,105,116,101,109,73,110,102,111,44,32,108,101,
-110,32,61,32,103,101,116,73,110,102,111,65,98,111,117,116,73,116,101,109,
-115,84,111,117,99,104,101,100,66,121,83,101,103,109,101,110,116,40,115,101,
-108,102,44,32,120,49,44,32,121,49,44,32,120,50,44,32,121,50,44,32,
-102,105,108,116,101,114,41,13,10,32,32,108,111,99,97,108,32,100,120,44,
-32,100,121,32,32,32,32,32,32,32,32,61,32,120,50,45,120,49,44,32,
-121,50,45,121,49,13,10,32,32,108,111,99,97,108,32,105,110,102,111,44,
-32,116,105,49,44,32,116,105,50,13,10,32,32,102,111,114,32,105,61,49,
-44,32,108,101,110,32,100,111,13,10,32,32,32,32,105,110,102,111,32,32,
-61,32,105,116,101,109,73,110,102,111,91,105,93,13,10,32,32,32,32,116,
-105,49,32,32,32,61,32,105,110,102,111,46,116,105,49,13,10,32,32,32,
-32,116,105,50,32,32,32,61,32,105,110,102,111,46,116,105,50,13,10,13,
-10,32,32,32,32,105,110,102,111,46,119,101,105,103,104,116,32,32,61,32,
-110,105,108,13,10,32,32,32,32,105,110,102,111,46,120,49,32,32,32,32,
-32,32,61,32,120,49,32,43,32,100,120,32,42,32,116,105,49,13,10,32,
-32,32,32,105,110,102,111,46,121,49,32,32,32,32,32,32,61,32,121,49,
-32,43,32,100,121,32,42,32,116,105,49,13,10,32,32,32,32,105,110,102,
-111,46,120,50,32,32,32,32,32,32,61,32,120,49,32,43,32,100,120,32,
-42,32,116,105,50,13,10,32,32,32,32,105,110,102,111,46,121,50,32,32,
-32,32,32,32,61,32,121,49,32,43,32,100,121,32,42,32,116,105,50,13,
-10,32,32,101,110,100,13,10,32,32,114,101,116,117,114,110,32,105,116,101,
-109,73,110,102,111,44,32,108,101,110,13,10,101,110,100,13,10,13,10,13,
-10,45,45,45,32,77,97,105,110,32,109,101,116,104,111,100,115,13,10,13,
-10,102,117,110,99,116,105,111,110,32,87,111,114,108,100,58,97,100,100,40,
-105,116,101,109,44,32,120,44,121,44,119,44,104,41,13,10,32,32,108,111,
-99,97,108,32,114,101,99,116,32,61,32,115,101,108,102,46,114,101,99,116,
-115,91,105,116,101,109,93,13,10,32,32,105,102,32,114,101,99,116,32,116,
-104,101,110,13,10,32,32,32,32,101,114,114,111,114,40,39,73,116,101,109,
-32,39,32,46,46,32,116,111,115,116,114,105,110,103,40,105,116,101,109,41,
-32,46,46,32,39,32,97,100,100,101,100,32,116,111,32,116,104,101,32,119,
-111,114,108,100,32,116,119,105,99,101,46,39,41,13,10,32,32,101,110,100,
-13,10,32,32,97,115,115,101,114,116,73,115,82,101,99,116,40,120,44,121,
-44,119,44,104,41,13,10,13,10,32,32,115,101,108,102,46,114,101,99,116,
-115,91,105,116,101,109,93,32,61,32,123,120,61,120,44,121,61,121,44,119,
-61,119,44,104,61,104,125,13,10,13,10,32,32,108,111,99,97,108,32,99,
-108,44,99,116,44,99,119,44,99,104,32,61,32,103,114,105,100,95,116,111,
-67,101,108,108,82,101,99,116,40,115,101,108,102,46,99,101,108,108,83,105,
-122,101,44,32,120,44,121,44,119,44,104,41,13,10,32,32,102,111,114,32,
-99,121,32,61,32,99,116,44,32,99,116,43,99,104,45,49,32,100,111,13,
-10,32,32,32,32,102,111,114,32,99,120,32,61,32,99,108,44,32,99,108,
-43,99,119,45,49,32,100,111,13,10,32,32,32,32,32,32,97,100,100,73,
-116,101,109,84,111,67,101,108,108,40,115,101,108,102,44,32,105,116,101,109,
-44,32,99,120,44,32,99,121,41,13,10,32,32,32,32,101,110,100,13,10,
-32,32,101,110,100,13,10,13,10,32,32,114,101,116,117,114,110,32,105,116,
-101,109,13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,
-87,111,114,108,100,58,114,101,109,111,118,101,40,105,116,101,109,41,13,10,
-32,32,108,111,99,97,108,32,120,44,121,44,119,44,104,32,61,32,115,101,
-108,102,58,103,101,116,82,101,99,116,40,105,116,101,109,41,13,10,13,10,
-32,32,115,101,108,102,46,114,101,99,116,115,91,105,116,101,109,93,32,61,
-32,110,105,108,13,10,32,32,108,111,99,97,108,32,99,108,44,99,116,44,
-99,119,44,99,104,32,61,32,103,114,105,100,95,116,111,67,101,108,108,82,
-101,99,116,40,115,101,108,102,46,99,101,108,108,83,105,122,101,44,32,120,
-44,121,44,119,44,104,41,13,10,32,32,102,111,114,32,99,121,32,61,32,
-99,116,44,32,99,116,43,99,104,45,49,32,100,111,13,10,32,32,32,32,
-102,111,114,32,99,120,32,61,32,99,108,44,32,99,108,43,99,119,45,49,
-32,100,111,13,10,32,32,32,32,32,32,114,101,109,111,118,101,73,116,101,
-109,70,114,111,109,67,101,108,108,40,115,101,108,102,44,32,105,116,101,109,
-44,32,99,120,44,32,99,121,41,13,10,32,32,32,32,101,110,100,13,10,
-32,32,101,110,100,13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,
-111,110,32,87,111,114,108,100,58,117,112,100,97,116,101,40,105,116,101,109,
-44,32,120,50,44,121,50,44,119,50,44,104,50,41,13,10,32,32,108,111,
-99,97,108,32,120,49,44,121,49,44,119,49,44,104,49,32,61,32,115,101,
-108,102,58,103,101,116,82,101,99,116,40,105,116,101,109,41,13,10,32,32,
-119,50,44,104,50,32,61,32,119,50,32,111,114,32,119,49,44,32,104,50,
-32,111,114,32,104,49,13,10,32,32,97,115,115,101,114,116,73,115,82,101,
-99,116,40,120,50,44,121,50,44,119,50,44,104,50,41,13,10,13,10,32,
-32,105,102,32,120,49,32,126,61,32,120,50,32,111,114,32,121,49,32,126,
-61,32,121,50,32,111,114,32,119,49,32,126,61,32,119,50,32,111,114,32,
-104,49,32,126,61,32,104,50,32,116,104,101,110,13,10,13,10,32,32,32,
-32,108,111,99,97,108,32,99,101,108,108,83,105,122,101,32,61,32,115,101,
-108,102,46,99,101,108,108,83,105,122,101,13,10,32,32,32,32,108,111,99,
+93,13,10,32,32,105,102,32,40,110,111,116,32,102,105,108,116,101,114,32,
+111,114,32,102,105,108,116,101,114,40,105,116,101,109,41,41,13,10,32,32,
+97,110,100,32,114,101,99,116,95,99,111,110,116,97,105,110,115,80,111,105,
+110,116,40,114,101,99,116,46,120,44,32,114,101,99,116,46,121,44,32,114,
+101,99,116,46,119,44,32,114,101,99,116,46,104,44,32,120,44,32,121,41,
+13,10,32,32,116,104,101,110,13,10,32,32,32,32,108,101,110,32,61,32,
+108,101,110,32,43,32,49,13,10,32,32,32,32,105,116,101,109,115,91,108,
+101,110,93,32,61,32,105,116,101,109,13,10,32,32,101,110,100,13,10,32,
+32,101,110,100,13,10,13,10,32,32,114,101,116,117,114,110,32,105,116,101,
+109,115,44,32,108,101,110,13,10,101,110,100,13,10,13,10,102,117,110,99,
+116,105,111,110,32,87,111,114,108,100,58,113,117,101,114,121,83,101,103,109,
+101,110,116,40,120,49,44,32,121,49,44,32,120,50,44,32,121,50,44,32,
+102,105,108,116,101,114,41,13,10,32,32,108,111,99,97,108,32,105,116,101,
+109,73,110,102,111,44,32,108,101,110,32,61,32,103,101,116,73,110,102,111,
+65,98,111,117,116,73,116,101,109,115,84,111,117,99,104,101,100,66,121,83,
+101,103,109,101,110,116,40,115,101,108,102,44,32,120,49,44,32,121,49,44,
+32,120,50,44,32,121,50,44,32,102,105,108,116,101,114,41,13,10,32,32,
+108,111,99,97,108,32,105,116,101,109,115,32,61,32,123,125,13,10,32,32,
+102,111,114,32,105,61,49,44,32,108,101,110,32,100,111,13,10,32,32,105,
+116,101,109,115,91,105,93,32,61,32,105,116,101,109,73,110,102,111,91,105,
+93,46,105,116,101,109,13,10,32,32,101,110,100,13,10,32,32,114,101,116,
+117,114,110,32,105,116,101,109,115,44,32,108,101,110,13,10,101,110,100,13,
+10,13,10,102,117,110,99,116,105,111,110,32,87,111,114,108,100,58,113,117,
+101,114,121,83,101,103,109,101,110,116,87,105,116,104,67,111,111,114,100,115,
+40,120,49,44,32,121,49,44,32,120,50,44,32,121,50,44,32,102,105,108,
+116,101,114,41,13,10,32,32,108,111,99,97,108,32,105,116,101,109,73,110,
+102,111,44,32,108,101,110,32,61,32,103,101,116,73,110,102,111,65,98,111,
+117,116,73,116,101,109,115,84,111,117,99,104,101,100,66,121,83,101,103,109,
+101,110,116,40,115,101,108,102,44,32,120,49,44,32,121,49,44,32,120,50,
+44,32,121,50,44,32,102,105,108,116,101,114,41,13,10,32,32,108,111,99,
+97,108,32,100,120,44,32,100,121,32,32,32,32,61,32,120,50,45,120,49,
+44,32,121,50,45,121,49,13,10,32,32,108,111,99,97,108,32,105,110,102,
+111,44,32,116,105,49,44,32,116,105,50,13,10,32,32,102,111,114,32,105,
+61,49,44,32,108,101,110,32,100,111,13,10,32,32,105,110,102,111,32,32,
+61,32,105,116,101,109,73,110,102,111,91,105,93,13,10,32,32,116,105,49,
+32,32,32,61,32,105,110,102,111,46,116,105,49,13,10,32,32,116,105,50,
+32,32,32,61,32,105,110,102,111,46,116,105,50,13,10,13,10,32,32,105,
+110,102,111,46,119,101,105,103,104,116,32,32,61,32,110,105,108,13,10,32,
+32,105,110,102,111,46,120,49,32,32,32,32,61,32,120,49,32,43,32,100,
+120,32,42,32,116,105,49,13,10,32,32,105,110,102,111,46,121,49,32,32,
+32,32,61,32,121,49,32,43,32,100,121,32,42,32,116,105,49,13,10,32,
+32,105,110,102,111,46,120,50,32,32,32,32,61,32,120,49,32,43,32,100,
+120,32,42,32,116,105,50,13,10,32,32,105,110,102,111,46,121,50,32,32,
+32,32,61,32,121,49,32,43,32,100,121,32,42,32,116,105,50,13,10,32,
+32,101,110,100,13,10,32,32,114,101,116,117,114,110,32,105,116,101,109,73,
+110,102,111,44,32,108,101,110,13,10,101,110,100,13,10,13,10,13,10,45,
+45,45,32,77,97,105,110,32,109,101,116,104,111,100,115,13,10,13,10,102,
+117,110,99,116,105,111,110,32,87,111,114,108,100,58,97,100,100,40,105,116,
+101,109,44,32,120,44,121,44,119,44,104,41,13,10,32,32,108,111,99,97,
+108,32,114,101,99,116,32,61,32,115,101,108,102,46,114,101,99,116,115,91,
+105,116,101,109,93,13,10,32,32,105,102,32,114,101,99,116,32,116,104,101,
+110,13,10,32,32,101,114,114,111,114,40,39,73,116,101,109,32,39,32,46,
+46,32,116,111,115,116,114,105,110,103,40,105,116,101,109,41,32,46,46,32,
+39,32,97,100,100,101,100,32,116,111,32,116,104,101,32,119,111,114,108,100,
+32,116,119,105,99,101,46,39,41,13,10,32,32,101,110,100,13,10,32,32,
+97,115,115,101,114,116,73,115,82,101,99,116,40,120,44,121,44,119,44,104,
+41,13,10,13,10,32,32,115,101,108,102,46,114,101,99,116,115,91,105,116,
+101,109,93,32,61,32,123,120,61,120,44,121,61,121,44,119,61,119,44,104,
+61,104,125,13,10,13,10,32,32,108,111,99,97,108,32,99,108,44,99,116,
+44,99,119,44,99,104,32,61,32,103,114,105,100,95,116,111,67,101,108,108,
+82,101,99,116,40,115,101,108,102,46,99,101,108,108,83,105,122,101,44,32,
+120,44,121,44,119,44,104,41,13,10,32,32,102,111,114,32,99,121,32,61,
+32,99,116,44,32,99,116,43,99,104,45,49,32,100,111,13,10,32,32,102,
+111,114,32,99,120,32,61,32,99,108,44,32,99,108,43,99,119,45,49,32,
+100,111,13,10,32,32,32,32,97,100,100,73,116,101,109,84,111,67,101,108,
+108,40,115,101,108,102,44,32,105,116,101,109,44,32,99,120,44,32,99,121,
+41,13,10,32,32,101,110,100,13,10,32,32,101,110,100,13,10,13,10,32,
+32,114,101,116,117,114,110,32,105,116,101,109,13,10,101,110,100,13,10,13,
+10,102,117,110,99,116,105,111,110,32,87,111,114,108,100,58,114,101,109,111,
+118,101,40,105,116,101,109,41,13,10,32,32,108,111,99,97,108,32,120,44,
+121,44,119,44,104,32,61,32,115,101,108,102,58,103,101,116,82,101,99,116,
+40,105,116,101,109,41,13,10,13,10,32,32,115,101,108,102,46,114,101,99,
+116,115,91,105,116,101,109,93,32,61,32,110,105,108,13,10,32,32,108,111,
+99,97,108,32,99,108,44,99,116,44,99,119,44,99,104,32,61,32,103,114,
+105,100,95,116,111,67,101,108,108,82,101,99,116,40,115,101,108,102,46,99,
+101,108,108,83,105,122,101,44,32,120,44,121,44,119,44,104,41,13,10,32,
+32,102,111,114,32,99,121,32,61,32,99,116,44,32,99,116,43,99,104,45,
+49,32,100,111,13,10,32,32,102,111,114,32,99,120,32,61,32,99,108,44,
+32,99,108,43,99,119,45,49,32,100,111,13,10,32,32,32,32,114,101,109,
+111,118,101,73,116,101,109,70,114,111,109,67,101,108,108,40,115,101,108,102,
+44,32,105,116,101,109,44,32,99,120,44,32,99,121,41,13,10,32,32,101,
+110,100,13,10,32,32,101,110,100,13,10,101,110,100,13,10,13,10,102,117,
+110,99,116,105,111,110,32,87,111,114,108,100,58,117,112,100,97,116,101,40,
+105,116,101,109,44,32,120,50,44,121,50,44,119,50,44,104,50,41,13,10,
+32,32,108,111,99,97,108,32,120,49,44,121,49,44,119,49,44,104,49,32,
+61,32,115,101,108,102,58,103,101,116,82,101,99,116,40,105,116,101,109,41,
+13,10,32,32,119,50,44,104,50,32,61,32,119,50,32,111,114,32,119,49,
+44,32,104,50,32,111,114,32,104,49,13,10,32,32,97,115,115,101,114,116,
+73,115,82,101,99,116,40,120,50,44,121,50,44,119,50,44,104,50,41,13,
+10,13,10,32,32,105,102,32,120,49,32,126,61,32,120,50,32,111,114,32,
+121,49,32,126,61,32,121,50,32,111,114,32,119,49,32,126,61,32,119,50,
+32,111,114,32,104,49,32,126,61,32,104,50,32,116,104,101,110,13,10,13,
+10,32,32,108,111,99,97,108,32,99,101,108,108,83,105,122,101,32,61,32,
+115,101,108,102,46,99,101,108,108,83,105,122,101,13,10,32,32,108,111,99,
97,108,32,99,108,49,44,99,116,49,44,99,119,49,44,99,104,49,32,61,
32,103,114,105,100,95,116,111,67,101,108,108,82,101,99,116,40,99,101,108,
108,83,105,122,101,44,32,120,49,44,121,49,44,119,49,44,104,49,41,13,
-10,32,32,32,32,108,111,99,97,108,32,99,108,50,44,99,116,50,44,99,
-119,50,44,99,104,50,32,61,32,103,114,105,100,95,116,111,67,101,108,108,
-82,101,99,116,40,99,101,108,108,83,105,122,101,44,32,120,50,44,121,50,
-44,119,50,44,104,50,41,13,10,13,10,32,32,32,32,105,102,32,99,108,
-49,32,126,61,32,99,108,50,32,111,114,32,99,116,49,32,126,61,32,99,
-116,50,32,111,114,32,99,119,49,32,126,61,32,99,119,50,32,111,114,32,
-99,104,49,32,126,61,32,99,104,50,32,116,104,101,110,13,10,13,10,32,
-32,32,32,32,32,108,111,99,97,108,32,99,114,49,44,32,99,98,49,32,
-61,32,99,108,49,43,99,119,49,45,49,44,32,99,116,49,43,99,104,49,
-45,49,13,10,32,32,32,32,32,32,108,111,99,97,108,32,99,114,50,44,
-32,99,98,50,32,61,32,99,108,50,43,99,119,50,45,49,44,32,99,116,
-50,43,99,104,50,45,49,13,10,32,32,32,32,32,32,108,111,99,97,108,
-32,99,121,79,117,116,13,10,13,10,32,32,32,32,32,32,102,111,114,32,
-99,121,32,61,32,99,116,49,44,32,99,98,49,32,100,111,13,10,32,32,
-32,32,32,32,32,32,99,121,79,117,116,32,61,32,99,121,32,60,32,99,
-116,50,32,111,114,32,99,121,32,62,32,99,98,50,13,10,32,32,32,32,
+10,32,32,108,111,99,97,108,32,99,108,50,44,99,116,50,44,99,119,50,
+44,99,104,50,32,61,32,103,114,105,100,95,116,111,67,101,108,108,82,101,
+99,116,40,99,101,108,108,83,105,122,101,44,32,120,50,44,121,50,44,119,
+50,44,104,50,41,13,10,13,10,32,32,105,102,32,99,108,49,32,126,61,
+32,99,108,50,32,111,114,32,99,116,49,32,126,61,32,99,116,50,32,111,
+114,32,99,119,49,32,126,61,32,99,119,50,32,111,114,32,99,104,49,32,
+126,61,32,99,104,50,32,116,104,101,110,13,10,13,10,32,32,32,32,108,
+111,99,97,108,32,99,114,49,44,32,99,98,49,32,61,32,99,108,49,43,
+99,119,49,45,49,44,32,99,116,49,43,99,104,49,45,49,13,10,32,32,
+32,32,108,111,99,97,108,32,99,114,50,44,32,99,98,50,32,61,32,99,
+108,50,43,99,119,50,45,49,44,32,99,116,50,43,99,104,50,45,49,13,
+10,32,32,32,32,108,111,99,97,108,32,99,121,79,117,116,13,10,13,10,
+32,32,32,32,102,111,114,32,99,121,32,61,32,99,116,49,44,32,99,98,
+49,32,100,111,13,10,32,32,32,32,99,121,79,117,116,32,61,32,99,121,
+32,60,32,99,116,50,32,111,114,32,99,121,32,62,32,99,98,50,13,10,
32,32,32,32,102,111,114,32,99,120,32,61,32,99,108,49,44,32,99,114,
-49,32,100,111,13,10,32,32,32,32,32,32,32,32,32,32,105,102,32,99,
-121,79,117,116,32,111,114,32,99,120,32,60,32,99,108,50,32,111,114,32,
-99,120,32,62,32,99,114,50,32,116,104,101,110,13,10,32,32,32,32,32,
-32,32,32,32,32,32,32,114,101,109,111,118,101,73,116,101,109,70,114,111,
-109,67,101,108,108,40,115,101,108,102,44,32,105,116,101,109,44,32,99,120,
-44,32,99,121,41,13,10,32,32,32,32,32,32,32,32,32,32,101,110,100,
-13,10,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,32,
-32,101,110,100,13,10,13,10,32,32,32,32,32,32,102,111,114,32,99,121,
-32,61,32,99,116,50,44,32,99,98,50,32,100,111,13,10,32,32,32,32,
-32,32,32,32,99,121,79,117,116,32,61,32,99,121,32,60,32,99,116,49,
-32,111,114,32,99,121,32,62,32,99,98,49,13,10,32,32,32,32,32,32,
-32,32,102,111,114,32,99,120,32,61,32,99,108,50,44,32,99,114,50,32,
-100,111,13,10,32,32,32,32,32,32,32,32,32,32,105,102,32,99,121,79,
-117,116,32,111,114,32,99,120,32,60,32,99,108,49,32,111,114,32,99,120,
-32,62,32,99,114,49,32,116,104,101,110,13,10,32,32,32,32,32,32,32,
+49,32,100,111,13,10,32,32,32,32,32,32,105,102,32,99,121,79,117,116,
+32,111,114,32,99,120,32,60,32,99,108,50,32,111,114,32,99,120,32,62,
+32,99,114,50,32,116,104,101,110,13,10,32,32,32,32,32,32,114,101,109,
+111,118,101,73,116,101,109,70,114,111,109,67,101,108,108,40,115,101,108,102,
+44,32,105,116,101,109,44,32,99,120,44,32,99,121,41,13,10,32,32,32,
+32,32,32,101,110,100,13,10,32,32,32,32,101,110,100,13,10,32,32,32,
+32,101,110,100,13,10,13,10,32,32,32,32,102,111,114,32,99,121,32,61,
+32,99,116,50,44,32,99,98,50,32,100,111,13,10,32,32,32,32,99,121,
+79,117,116,32,61,32,99,121,32,60,32,99,116,49,32,111,114,32,99,121,
+32,62,32,99,98,49,13,10,32,32,32,32,102,111,114,32,99,120,32,61,
+32,99,108,50,44,32,99,114,50,32,100,111,13,10,32,32,32,32,32,32,
+105,102,32,99,121,79,117,116,32,111,114,32,99,120,32,60,32,99,108,49,
+32,111,114,32,99,120,32,62,32,99,114,49,32,116,104,101,110,13,10,32,
32,32,32,32,32,97,100,100,73,116,101,109,84,111,67,101,108,108,40,115,
101,108,102,44,32,105,116,101,109,44,32,99,120,44,32,99,121,41,13,10,
-32,32,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,32,
-32,32,32,101,110,100,13,10,32,32,32,32,32,32,101,110,100,13,10,13,
-10,32,32,32,32,101,110,100,13,10,13,10,32,32,32,32,108,111,99,97,
-108,32,114,101,99,116,32,61,32,115,101,108,102,46,114,101,99,116,115,91,
-105,116,101,109,93,13,10,32,32,32,32,114,101,99,116,46,120,44,32,114,
-101,99,116,46,121,44,32,114,101,99,116,46,119,44,32,114,101,99,116,46,
-104,32,61,32,120,50,44,121,50,44,119,50,44,104,50,13,10,13,10,32,
-32,101,110,100,13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,
-110,32,87,111,114,108,100,58,109,111,118,101,40,105,116,101,109,44,32,103,
+32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,101,110,100,13,10,
+32,32,32,32,101,110,100,13,10,13,10,32,32,101,110,100,13,10,13,10,
+32,32,108,111,99,97,108,32,114,101,99,116,32,61,32,115,101,108,102,46,
+114,101,99,116,115,91,105,116,101,109,93,13,10,32,32,114,101,99,116,46,
+120,44,32,114,101,99,116,46,121,44,32,114,101,99,116,46,119,44,32,114,
+101,99,116,46,104,32,61,32,120,50,44,121,50,44,119,50,44,104,50,13,
+10,13,10,32,32,101,110,100,13,10,101,110,100,13,10,13,10,102,117,110,
+99,116,105,111,110,32,87,111,114,108,100,58,109,111,118,101,40,105,116,101,
+109,44,32,103,111,97,108,88,44,32,103,111,97,108,89,44,32,102,105,108,
+116,101,114,41,13,10,32,32,108,111,99,97,108,32,97,99,116,117,97,108,
+88,44,32,97,99,116,117,97,108,89,44,32,99,111,108,115,44,32,108,101,
+110,32,61,32,115,101,108,102,58,99,104,101,99,107,40,105,116,101,109,44,
+32,103,111,97,108,88,44,32,103,111,97,108,89,44,32,102,105,108,116,101,
+114,41,13,10,13,10,32,32,115,101,108,102,58,117,112,100,97,116,101,40,
+105,116,101,109,44,32,97,99,116,117,97,108,88,44,32,97,99,116,117,97,
+108,89,41,13,10,13,10,32,32,114,101,116,117,114,110,32,97,99,116,117,
+97,108,88,44,32,97,99,116,117,97,108,89,44,32,99,111,108,115,44,32,
+108,101,110,13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,110,
+32,87,111,114,108,100,58,99,104,101,99,107,40,105,116,101,109,44,32,103,
111,97,108,88,44,32,103,111,97,108,89,44,32,102,105,108,116,101,114,41,
-13,10,32,32,108,111,99,97,108,32,97,99,116,117,97,108,88,44,32,97,
-99,116,117,97,108,89,44,32,99,111,108,115,44,32,108,101,110,32,61,32,
-115,101,108,102,58,99,104,101,99,107,40,105,116,101,109,44,32,103,111,97,
-108,88,44,32,103,111,97,108,89,44,32,102,105,108,116,101,114,41,13,10,
-13,10,32,32,115,101,108,102,58,117,112,100,97,116,101,40,105,116,101,109,
-44,32,97,99,116,117,97,108,88,44,32,97,99,116,117,97,108,89,41,13,
-10,13,10,32,32,114,101,116,117,114,110,32,97,99,116,117,97,108,88,44,
-32,97,99,116,117,97,108,89,44,32,99,111,108,115,44,32,108,101,110,13,
-10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,87,111,114,
-108,100,58,99,104,101,99,107,40,105,116,101,109,44,32,103,111,97,108,88,
-44,32,103,111,97,108,89,44,32,102,105,108,116,101,114,41,13,10,32,32,
-102,105,108,116,101,114,32,61,32,102,105,108,116,101,114,32,111,114,32,100,
-101,102,97,117,108,116,70,105,108,116,101,114,13,10,13,10,32,32,108,111,
-99,97,108,32,118,105,115,105,116,101,100,32,61,32,123,91,105,116,101,109,
-93,32,61,32,116,114,117,101,125,13,10,32,32,108,111,99,97,108,32,118,
-105,115,105,116,101,100,70,105,108,116,101,114,32,61,32,102,117,110,99,116,
-105,111,110,40,105,116,109,44,32,111,116,104,101,114,41,13,10,32,32,32,
-32,105,102,32,118,105,115,105,116,101,100,91,111,116,104,101,114,93,32,116,
-104,101,110,32,114,101,116,117,114,110,32,102,97,108,115,101,32,101,110,100,
-13,10,32,32,32,32,114,101,116,117,114,110,32,102,105,108,116,101,114,40,
+13,10,32,32,102,105,108,116,101,114,32,61,32,102,105,108,116,101,114,32,
+111,114,32,100,101,102,97,117,108,116,70,105,108,116,101,114,13,10,13,10,
+32,32,108,111,99,97,108,32,118,105,115,105,116,101,100,32,61,32,123,91,
+105,116,101,109,93,32,61,32,116,114,117,101,125,13,10,32,32,108,111,99,
+97,108,32,118,105,115,105,116,101,100,70,105,108,116,101,114,32,61,32,102,
+117,110,99,116,105,111,110,40,105,116,109,44,32,111,116,104,101,114,41,13,
+10,32,32,105,102,32,118,105,115,105,116,101,100,91,111,116,104,101,114,93,
+32,116,104,101,110,32,114,101,116,117,114,110,32,102,97,108,115,101,32,101,
+110,100,13,10,32,32,114,101,116,117,114,110,32,102,105,108,116,101,114,40,
105,116,109,44,32,111,116,104,101,114,41,13,10,32,32,101,110,100,13,10,
13,10,32,32,108,111,99,97,108,32,99,111,108,115,44,32,108,101,110,32,
61,32,123,125,44,32,48,13,10,13,10,32,32,108,111,99,97,108,32,120,
@@ -986,89 +955,85 @@ static char physics_lua[] = {
111,97,108,88,44,103,111,97,108,89,44,32,118,105,115,105,116,101,100,70,
105,108,116,101,114,41,13,10,13,10,32,32,119,104,105,108,101,32,112,114,
111,106,101,99,116,101,100,95,108,101,110,32,62,32,48,32,100,111,13,10,
-32,32,32,32,108,111,99,97,108,32,99,111,108,32,61,32,112,114,111,106,
-101,99,116,101,100,95,99,111,108,115,91,49,93,13,10,32,32,32,32,108,
-101,110,32,32,32,32,32,32,32,61,32,108,101,110,32,43,32,49,13,10,
-32,32,32,32,99,111,108,115,91,108,101,110,93,32,61,32,99,111,108,13,
-10,13,10,32,32,32,32,118,105,115,105,116,101,100,91,99,111,108,46,111,
-116,104,101,114,93,32,61,32,116,114,117,101,13,10,13,10,32,32,32,32,
-108,111,99,97,108,32,114,101,115,112,111,110,115,101,32,61,32,103,101,116,
-82,101,115,112,111,110,115,101,66,121,78,97,109,101,40,115,101,108,102,44,
-32,99,111,108,46,116,121,112,101,41,13,10,13,10,32,32,32,32,103,111,
-97,108,88,44,32,103,111,97,108,89,44,32,112,114,111,106,101,99,116,101,
-100,95,99,111,108,115,44,32,112,114,111,106,101,99,116,101,100,95,108,101,
-110,32,61,32,114,101,115,112,111,110,115,101,40,13,10,32,32,32,32,32,
-32,115,101,108,102,44,13,10,32,32,32,32,32,32,99,111,108,44,13,10,
-32,32,32,32,32,32,120,44,32,121,44,32,119,44,32,104,44,13,10,32,
-32,32,32,32,32,103,111,97,108,88,44,32,103,111,97,108,89,44,13,10,
-32,32,32,32,32,32,118,105,115,105,116,101,100,70,105,108,116,101,114,13,
-10,32,32,32,32,41,13,10,32,32,101,110,100,13,10,13,10,32,32,114,
-101,116,117,114,110,32,103,111,97,108,88,44,32,103,111,97,108,89,44,32,
-99,111,108,115,44,32,108,101,110,13,10,101,110,100,13,10,13,10,13,10,
-45,45,32,80,117,98,108,105,99,32,108,105,98,114,97,114,121,32,102,117,
-110,99,116,105,111,110,115,13,10,13,10,98,117,109,112,46,110,101,119,87,
-111,114,108,100,32,61,32,102,117,110,99,116,105,111,110,40,99,101,108,108,
-83,105,122,101,41,13,10,32,32,99,101,108,108,83,105,122,101,32,61,32,
-99,101,108,108,83,105,122,101,32,111,114,32,54,52,13,10,32,32,97,115,
-115,101,114,116,73,115,80,111,115,105,116,105,118,101,78,117,109,98,101,114,
-40,99,101,108,108,83,105,122,101,44,32,39,99,101,108,108,83,105,122,101,
-39,41,13,10,32,32,108,111,99,97,108,32,119,111,114,108,100,32,61,32,
-115,101,116,109,101,116,97,116,97,98,108,101,40,123,13,10,32,32,32,32,
-99,101,108,108,83,105,122,101,32,32,32,32,32,32,32,61,32,99,101,108,
-108,83,105,122,101,44,13,10,32,32,32,32,114,101,99,116,115,32,32,32,
-32,32,32,32,32,32,32,61,32,123,125,44,13,10,32,32,32,32,114,111,
-119,115,32,32,32,32,32,32,32,32,32,32,32,61,32,123,125,44,13,10,
-32,32,32,32,110,111,110,69,109,112,116,121,67,101,108,108,115,32,32,61,
-32,123,125,44,13,10,32,32,32,32,114,101,115,112,111,110,115,101,115,32,
-61,32,123,125,13,10,32,32,125,44,32,87,111,114,108,100,95,109,116,41,
-13,10,13,10,32,32,119,111,114,108,100,58,97,100,100,82,101,115,112,111,
-110,115,101,40,39,116,111,117,99,104,39,44,32,116,111,117,99,104,41,13,
-10,32,32,119,111,114,108,100,58,97,100,100,82,101,115,112,111,110,115,101,
-40,39,99,114,111,115,115,39,44,32,99,114,111,115,115,41,13,10,32,32,
-119,111,114,108,100,58,97,100,100,82,101,115,112,111,110,115,101,40,39,115,
-108,105,100,101,39,44,32,115,108,105,100,101,41,13,10,32,32,119,111,114,
-108,100,58,97,100,100,82,101,115,112,111,110,115,101,40,39,98,111,117,110,
-99,101,39,44,32,98,111,117,110,99,101,41,13,10,13,10,32,32,114,101,
-116,117,114,110,32,119,111,114,108,100,13,10,101,110,100,13,10,13,10,98,
-117,109,112,46,114,101,99,116,32,61,32,123,13,10,32,32,103,101,116,78,
-101,97,114,101,115,116,67,111,114,110,101,114,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,61,32,114,101,99,116,95,103,101,116,78,101,97,114,
-101,115,116,67,111,114,110,101,114,44,13,10,32,32,103,101,116,83,101,103,
-109,101,110,116,73,110,116,101,114,115,101,99,116,105,111,110,73,110,100,105,
-99,101,115,32,61,32,114,101,99,116,95,103,101,116,83,101,103,109,101,110,
-116,73,110,116,101,114,115,101,99,116,105,111,110,73,110,100,105,99,101,115,
-44,13,10,32,32,103,101,116,68,105,102,102,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,61,32,114,101,99,
-116,95,103,101,116,68,105,102,102,44,13,10,32,32,99,111,110,116,97,105,
-110,115,80,111,105,110,116,32,32,32,32,32,32,32,32,32,32,32,32,32,
-32,32,32,32,61,32,114,101,99,116,95,99,111,110,116,97,105,110,115,80,
-111,105,110,116,44,13,10,32,32,105,115,73,110,116,101,114,115,101,99,116,
-105,110,103,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,61,
-32,114,101,99,116,95,105,115,73,110,116,101,114,115,101,99,116,105,110,103,
-44,13,10,32,32,103,101,116,83,113,117,97,114,101,68,105,115,116,97,110,
-99,101,32,32,32,32,32,32,32,32,32,32,32,32,32,61,32,114,101,99,
-116,95,103,101,116,83,113,117,97,114,101,68,105,115,116,97,110,99,101,44,
-13,10,32,32,100,101,116,101,99,116,67,111,108,108,105,115,105,111,110,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,61,32,114,101,99,116,
-95,100,101,116,101,99,116,67,111,108,108,105,115,105,111,110,13,10,125,13,
-10,13,10,98,117,109,112,46,114,101,115,112,111,110,115,101,115,32,61,32,
-123,13,10,32,32,116,111,117,99,104,32,32,61,32,116,111,117,99,104,44,
-13,10,32,32,99,114,111,115,115,32,32,61,32,99,114,111,115,115,44,13,
-10,32,32,115,108,105,100,101,32,32,61,32,115,108,105,100,101,44,13,10,
-32,32,98,111,117,110,99,101,32,61,32,98,111,117,110,99,101,13,10,125,
-13,10,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+32,32,108,111,99,97,108,32,99,111,108,32,61,32,112,114,111,106,101,99,
+116,101,100,95,99,111,108,115,91,49,93,13,10,32,32,108,101,110,32,32,
+32,32,32,61,32,108,101,110,32,43,32,49,13,10,32,32,99,111,108,115,
+91,108,101,110,93,32,61,32,99,111,108,13,10,13,10,32,32,118,105,115,
+105,116,101,100,91,99,111,108,46,111,116,104,101,114,93,32,61,32,116,114,
+117,101,13,10,13,10,32,32,108,111,99,97,108,32,114,101,115,112,111,110,
+115,101,32,61,32,103,101,116,82,101,115,112,111,110,115,101,66,121,78,97,
+109,101,40,115,101,108,102,44,32,99,111,108,46,116,121,112,101,41,13,10,
+13,10,32,32,103,111,97,108,88,44,32,103,111,97,108,89,44,32,112,114,
+111,106,101,99,116,101,100,95,99,111,108,115,44,32,112,114,111,106,101,99,
+116,101,100,95,108,101,110,32,61,32,114,101,115,112,111,110,115,101,40,13,
+10,32,32,32,32,115,101,108,102,44,13,10,32,32,32,32,99,111,108,44,
+13,10,32,32,32,32,120,44,32,121,44,32,119,44,32,104,44,13,10,32,
+32,32,32,103,111,97,108,88,44,32,103,111,97,108,89,44,13,10,32,32,
+32,32,118,105,115,105,116,101,100,70,105,108,116,101,114,13,10,32,32,41,
+13,10,32,32,101,110,100,13,10,13,10,32,32,114,101,116,117,114,110,32,
+103,111,97,108,88,44,32,103,111,97,108,89,44,32,99,111,108,115,44,32,
+108,101,110,13,10,101,110,100,13,10,13,10,13,10,45,45,32,80,117,98,
+108,105,99,32,108,105,98,114,97,114,121,32,102,117,110,99,116,105,111,110,
+115,13,10,13,10,98,117,109,112,46,110,101,119,87,111,114,108,100,32,61,
+32,102,117,110,99,116,105,111,110,40,99,101,108,108,83,105,122,101,41,13,
+10,32,32,99,101,108,108,83,105,122,101,32,61,32,99,101,108,108,83,105,
+122,101,32,111,114,32,54,52,13,10,32,32,97,115,115,101,114,116,73,115,
+80,111,115,105,116,105,118,101,78,117,109,98,101,114,40,99,101,108,108,83,
+105,122,101,44,32,39,99,101,108,108,83,105,122,101,39,41,13,10,32,32,
+108,111,99,97,108,32,119,111,114,108,100,32,61,32,115,101,116,109,101,116,
+97,116,97,98,108,101,40,123,13,10,32,32,99,101,108,108,83,105,122,101,
+32,32,32,32,32,61,32,99,101,108,108,83,105,122,101,44,13,10,32,32,
+114,101,99,116,115,32,32,32,32,32,32,61,32,123,125,44,13,10,32,32,
+114,111,119,115,32,32,32,32,32,32,32,61,32,123,125,44,13,10,32,32,
+110,111,110,69,109,112,116,121,67,101,108,108,115,32,32,61,32,123,125,44,
+13,10,32,32,114,101,115,112,111,110,115,101,115,32,61,32,123,125,13,10,
+32,32,125,44,32,87,111,114,108,100,95,109,116,41,13,10,13,10,32,32,
+119,111,114,108,100,58,97,100,100,82,101,115,112,111,110,115,101,40,39,116,
+111,117,99,104,39,44,32,116,111,117,99,104,41,13,10,32,32,119,111,114,
+108,100,58,97,100,100,82,101,115,112,111,110,115,101,40,39,99,114,111,115,
+115,39,44,32,99,114,111,115,115,41,13,10,32,32,119,111,114,108,100,58,
+97,100,100,82,101,115,112,111,110,115,101,40,39,115,108,105,100,101,39,44,
+32,115,108,105,100,101,41,13,10,32,32,119,111,114,108,100,58,97,100,100,
+82,101,115,112,111,110,115,101,40,39,98,111,117,110,99,101,39,44,32,98,
+111,117,110,99,101,41,13,10,13,10,32,32,114,101,116,117,114,110,32,119,
+111,114,108,100,13,10,101,110,100,13,10,13,10,98,117,109,112,46,114,101,
+99,116,32,61,32,123,13,10,32,32,103,101,116,78,101,97,114,101,115,116,
+67,111,114,110,101,114,32,32,32,32,32,32,32,32,61,32,114,101,99,116,
+95,103,101,116,78,101,97,114,101,115,116,67,111,114,110,101,114,44,13,10,
+32,32,103,101,116,83,101,103,109,101,110,116,73,110,116,101,114,115,101,99,
+116,105,111,110,73,110,100,105,99,101,115,32,61,32,114,101,99,116,95,103,
+101,116,83,101,103,109,101,110,116,73,110,116,101,114,115,101,99,116,105,111,
+110,73,110,100,105,99,101,115,44,13,10,32,32,103,101,116,68,105,102,102,
+32,32,32,32,32,32,32,32,32,32,32,32,32,61,32,114,101,99,116,95,
+103,101,116,68,105,102,102,44,13,10,32,32,99,111,110,116,97,105,110,115,
+80,111,105,110,116,32,32,32,32,32,32,32,32,32,61,32,114,101,99,116,
+95,99,111,110,116,97,105,110,115,80,111,105,110,116,44,13,10,32,32,105,
+115,73,110,116,101,114,115,101,99,116,105,110,103,32,32,32,32,32,32,32,
+32,61,32,114,101,99,116,95,105,115,73,110,116,101,114,115,101,99,116,105,
+110,103,44,13,10,32,32,103,101,116,83,113,117,97,114,101,68,105,115,116,
+97,110,99,101,32,32,32,32,32,32,32,61,32,114,101,99,116,95,103,101,
+116,83,113,117,97,114,101,68,105,115,116,97,110,99,101,44,13,10,32,32,
+100,101,116,101,99,116,67,111,108,108,105,115,105,111,110,32,32,32,32,32,
+32,32,32,32,61,32,114,101,99,116,95,100,101,116,101,99,116,67,111,108,
+108,105,115,105,111,110,13,10,125,13,10,13,10,98,117,109,112,46,114,101,
+115,112,111,110,115,101,115,32,61,32,123,13,10,32,32,116,111,117,99,104,
+32,32,61,32,116,111,117,99,104,44,13,10,32,32,99,114,111,115,115,32,
+32,61,32,99,114,111,115,115,44,13,10,32,32,115,108,105,100,101,32,32,
+61,32,115,108,105,100,101,44,13,10,32,32,98,111,117,110,99,101,32,61,
+32,98,111,117,110,99,101,13,10,125,13,10,13,10,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,
-45,45,32,69,120,112,111,114,116,32,116,111,32,74,105,110,46,32,13,10,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,13,10,45,45,32,69,120,112,111,114,116,32,
+116,111,32,74,105,110,46,32,13,10,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,13,10,106,105,
-110,46,112,104,121,115,105,99,115,32,61,32,98,117,109,112,13,10,0
+45,45,45,45,13,10,13,10,106,105,110,46,112,104,121,115,105,99,115,32,
+61,32,98,117,109,112,13,10,0
};
diff --git a/src/libjin-lua/scripts/time/time.lua b/src/libjin-lua/scripts/time/time.lua
index 61c6ab1..4f4a37b 100644
--- a/src/libjin-lua/scripts/time/time.lua
+++ b/src/libjin-lua/scripts/time/time.lua
@@ -6,20 +6,20 @@ local fps = 0
local t = 0
jin.time.getFPS = function()
- return fps
+ return fps
end
local step = jin.time.step
jin.time.step = function()
- step()
- -- Update fps
- t = t + jin.time.getDelta()
- if t > 1 then
- t = t - 1
- fps = f + 1
- f = 0
- else
- f = f + 1
- end
+ step()
+ -- Update fps
+ t = t + jin.time.getDelta()
+ if t > 1 then
+ t = t - 1
+ fps = f + 1
+ f = 0
+ else
+ f = f + 1
+ end
end
diff --git a/src/libjin-lua/scripts/time/time.lua.h b/src/libjin-lua/scripts/time/time.lua.h
index 4bae19e..537648d 100644
--- a/src/libjin-lua/scripts/time/time.lua.h
+++ b/src/libjin-lua/scripts/time/time.lua.h
@@ -5,19 +5,18 @@ static char time_lua[] = {
32,48,13,10,108,111,99,97,108,32,102,112,115,32,61,32,48,13,10,108,
111,99,97,108,32,116,32,61,32,48,13,10,13,10,106,105,110,46,116,105,
109,101,46,103,101,116,70,80,83,32,61,32,102,117,110,99,116,105,111,110,
-40,41,32,13,10,32,32,32,32,114,101,116,117,114,110,32,102,112,115,13,
-10,101,110,100,32,13,10,13,10,108,111,99,97,108,32,115,116,101,112,32,
-61,32,106,105,110,46,116,105,109,101,46,115,116,101,112,13,10,13,10,106,
-105,110,46,116,105,109,101,46,115,116,101,112,32,61,32,102,117,110,99,116,
-105,111,110,40,41,32,13,10,32,32,32,32,115,116,101,112,40,41,32,13,
-10,32,32,32,32,45,45,32,85,112,100,97,116,101,32,102,112,115,13,10,
-32,32,32,32,116,32,61,32,116,32,43,32,106,105,110,46,116,105,109,101,
-46,103,101,116,68,101,108,116,97,40,41,32,13,10,32,32,32,32,105,102,
-32,116,32,62,32,49,32,116,104,101,110,32,13,10,32,32,32,32,32,32,
-32,32,116,32,61,32,116,32,45,32,49,32,13,10,32,32,32,32,32,32,
-32,32,102,112,115,32,61,32,102,32,43,32,49,13,10,32,32,32,32,32,
-32,32,32,102,32,61,32,48,13,10,32,32,32,32,101,108,115,101,32,13,
-10,32,32,32,32,32,32,32,32,102,32,61,32,102,32,43,32,49,13,10,
-32,32,32,32,101,110,100,13,10,101,110,100,32,13,10,0
+40,41,32,13,10,32,32,114,101,116,117,114,110,32,102,112,115,13,10,101,
+110,100,32,13,10,13,10,108,111,99,97,108,32,115,116,101,112,32,61,32,
+106,105,110,46,116,105,109,101,46,115,116,101,112,13,10,13,10,106,105,110,
+46,116,105,109,101,46,115,116,101,112,32,61,32,102,117,110,99,116,105,111,
+110,40,41,32,13,10,32,32,115,116,101,112,40,41,32,13,10,32,32,45,
+45,32,85,112,100,97,116,101,32,102,112,115,13,10,32,32,116,32,61,32,
+116,32,43,32,106,105,110,46,116,105,109,101,46,103,101,116,68,101,108,116,
+97,40,41,32,13,10,32,32,105,102,32,116,32,62,32,49,32,116,104,101,
+110,32,13,10,32,32,32,32,116,32,61,32,116,32,45,32,49,32,13,10,
+32,32,32,32,102,112,115,32,61,32,102,32,43,32,49,13,10,32,32,32,
+32,102,32,61,32,48,13,10,32,32,101,108,115,101,32,13,10,32,32,32,
+32,102,32,61,32,102,32,43,32,49,13,10,32,32,101,110,100,13,10,101,
+110,100,32,13,10,0
};
diff --git a/src/libjin-lua/scripts/utils/json.lua b/src/libjin-lua/scripts/utils/json.lua
index d2c44b3..4f84400 100644
--- a/src/libjin-lua/scripts/utils/json.lua
+++ b/src/libjin-lua/scripts/utils/json.lua
@@ -14,108 +14,108 @@ local json = { _version = "0.1.1" }
local encode
local escape_char_map = {
- [ "\\" ] = "\\\\",
- [ "\"" ] = "\\\"",
- [ "\b" ] = "\\b",
- [ "\f" ] = "\\f",
- [ "\n" ] = "\\n",
- [ "\r" ] = "\\r",
- [ "\t" ] = "\\t",
+ [ "\\" ] = "\\\\",
+ [ "\"" ] = "\\\"",
+ [ "\b" ] = "\\b",
+ [ "\f" ] = "\\f",
+ [ "\n" ] = "\\n",
+ [ "\r" ] = "\\r",
+ [ "\t" ] = "\\t",
}
local escape_char_map_inv = { [ "\\/" ] = "/" }
for k, v in pairs(escape_char_map) do
- escape_char_map_inv[v] = k
+ escape_char_map_inv[v] = k
end
local function escape_char(c)
- return escape_char_map[c] or string.format("\\u%04x", c:byte())
+ return escape_char_map[c] or string.format("\\u%04x", c:byte())
end
local function encode_nil(val)
- return "null"
+ return "null"
end
local function encode_table(val, stack)
- local res = {}
- stack = stack or {}
-
- -- Circular reference?
- if stack[val] then error("circular reference") end
-
- stack[val] = true
-
- if val[1] ~= nil or next(val) == nil then
- -- Treat as array -- check keys are valid and it is not sparse
- local n = 0
- for k in pairs(val) do
- if type(k) ~= "number" then
- error("invalid table: mixed or invalid key types")
- end
- n = n + 1
- end
- if n ~= #val then
- error("invalid table: sparse array")
- end
- -- Encode
- for i, v in ipairs(val) do
- table.insert(res, encode(v, stack))
- end
- stack[val] = nil
- return "[" .. table.concat(res, ",") .. "]"
-
- else
- -- Treat as an object
- for k, v in pairs(val) do
- if type(k) ~= "string" then
- error("invalid table: mixed or invalid key types")
- end
- table.insert(res, encode(k, stack) .. ":" .. encode(v, stack))
- end
- stack[val] = nil
- return "{" .. table.concat(res, ",") .. "}"
+ local res = {}
+ stack = stack or {}
+
+ -- Circular reference?
+ if stack[val] then error("circular reference") end
+
+ stack[val] = true
+
+ if val[1] ~= nil or next(val) == nil then
+ -- Treat as array -- check keys are valid and it is not sparse
+ local n = 0
+ for k in pairs(val) do
+ if type(k) ~= "number" then
+ error("invalid table: mixed or invalid key types")
+ end
+ n = n + 1
+ end
+ if n ~= #val then
+ error("invalid table: sparse array")
+ end
+ -- Encode
+ for i, v in ipairs(val) do
+ table.insert(res, encode(v, stack))
end
+ stack[val] = nil
+ return "[" .. table.concat(res, ",") .. "]"
+
+ else
+ -- Treat as an object
+ for k, v in pairs(val) do
+ if type(k) ~= "string" then
+ error("invalid table: mixed or invalid key types")
+ end
+ table.insert(res, encode(k, stack) .. ":" .. encode(v, stack))
+ end
+ stack[val] = nil
+ return "{" .. table.concat(res, ",") .. "}"
+ end
end
local function encode_string(val)
- return '"' .. val:gsub('[%z\1-\31\\"]', escape_char) .. '"'
+ return '"' .. val:gsub('[%z\1-\31\\"]', escape_char) .. '"'
end
local function encode_number(val)
- -- Check for NaN, -inf and inf
- if val ~= val or val <= -math.huge or val >= math.huge then
- error("unexpected number value '" .. tostring(val) .. "'")
- end
- return string.format("%.14g", val)
+ -- Check for NaN, -inf and inf
+ if val ~= val or val <= -math.huge or val >= math.huge then
+ error("unexpected number value '" .. tostring(val) .. "'")
+ end
+ return string.format("%.14g", val)
end
local type_func_map = {
- [ "nil" ] = encode_nil,
- [ "table" ] = encode_table,
- [ "string" ] = encode_string,
- [ "number" ] = encode_number,
- [ "boolean" ] = tostring,
+ [ "nil" ] = encode_nil,
+ [ "table" ] = encode_table,
+ [ "string" ] = encode_string,
+ [ "number" ] = encode_number,
+ [ "boolean" ] = tostring,
}
encode = function(val, stack)
- local t = type(val)
- local f = type_func_map[t]
- if f then
- return f(val, stack)
- end
- error("unexpected type '" .. t .. "'")
+ local t = type(val)
+ local f = type_func_map[t]
+ if f then
+ return f(val, stack)
+ end
+ error("unexpected type '" .. t .. "'")
end
function json.encode(val)
- return ( encode(val) )
+ return ( encode(val) )
end
@@ -126,257 +126,257 @@ end
local parse
local function create_set(...)
- local res = {}
- for i = 1, select("#", ...) do
- res[ select(i, ...) ] = true
- end
- return res
+ local res = {}
+ for i = 1, select("#", ...) do
+ res[ select(i, ...) ] = true
+ end
+ return res
end
-local space_chars = create_set(" ", "\t", "\r", "\n")
-local delim_chars = create_set(" ", "\t", "\r", "\n", "]", "}", ",")
-local escape_chars = create_set("\\", "/", '"', "b", "f", "n", "r", "t", "u")
-local literals = create_set("true", "false", "null")
+local space_chars = create_set(" ", "\t", "\r", "\n")
+local delim_chars = create_set(" ", "\t", "\r", "\n", "]", "}", ",")
+local escape_chars = create_set("\\", "/", '"', "b", "f", "n", "r", "t", "u")
+local literals = create_set("true", "false", "null")
local literal_map = {
- [ "true" ] = true,
- [ "false" ] = false,
- [ "null" ] = nil,
+ [ "true" ] = true,
+ [ "false" ] = false,
+ [ "null" ] = nil,
}
local function next_char(str, idx, set, negate)
- for i = idx, #str do
- if set[str:sub(i, i)] ~= negate then
- return i
- end
+ for i = idx, #str do
+ if set[str:sub(i, i)] ~= negate then
+ return i
end
- return #str + 1
+ end
+ return #str + 1
end
local function decode_error(str, idx, msg)
- local line_count = 1
- local col_count = 1
- for i = 1, idx - 1 do
- col_count = col_count + 1
- if str:sub(i, i) == "\n" then
- line_count = line_count + 1
- col_count = 1
- end
+ local line_count = 1
+ local col_count = 1
+ for i = 1, idx - 1 do
+ col_count = col_count + 1
+ if str:sub(i, i) == "\n" then
+ line_count = line_count + 1
+ col_count = 1
end
- error( string.format("%s at line %d col %d", msg, line_count, col_count) )
+ end
+ error( string.format("%s at line %d col %d", msg, line_count, col_count) )
end
local function codepoint_to_utf8(n)
- -- http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=iws-appendixa
- local f = math.floor
- if n <= 0x7f then
- return string.char(n)
- elseif n <= 0x7ff then
- return string.char(f(n / 64) + 192, n % 64 + 128)
- elseif n <= 0xffff then
- return string.char(f(n / 4096) + 224, f(n % 4096 / 64) + 128, n % 64 + 128)
- elseif n <= 0x10ffff then
- return string.char(f(n / 262144) + 240, f(n % 262144 / 4096) + 128,
- f(n % 4096 / 64) + 128, n % 64 + 128)
- end
- error( string.format("invalid unicode codepoint '%x'", n) )
+ -- http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=iws-appendixa
+ local f = math.floor
+ if n <= 0x7f then
+ return string.char(n)
+ elseif n <= 0x7ff then
+ return string.char(f(n / 64) + 192, n % 64 + 128)
+ elseif n <= 0xffff then
+ return string.char(f(n / 4096) + 224, f(n % 4096 / 64) + 128, n % 64 + 128)
+ elseif n <= 0x10ffff then
+ return string.char(f(n / 262144) + 240, f(n % 262144 / 4096) + 128,
+ f(n % 4096 / 64) + 128, n % 64 + 128)
+ end
+ error( string.format("invalid unicode codepoint '%x'", n) )
end
local function parse_unicode_escape(s)
- local n1 = tonumber( s:sub(3, 6), 16 )
- local n2 = tonumber( s:sub(9, 12), 16 )
- -- Surrogate pair?
- if n2 then
- return codepoint_to_utf8((n1 - 0xd800) * 0x400 + (n2 - 0xdc00) + 0x10000)
- else
- return codepoint_to_utf8(n1)
- end
+ local n1 = tonumber( s:sub(3, 6), 16 )
+ local n2 = tonumber( s:sub(9, 12), 16 )
+ -- Surrogate pair?
+ if n2 then
+ return codepoint_to_utf8((n1 - 0xd800) * 0x400 + (n2 - 0xdc00) + 0x10000)
+ else
+ return codepoint_to_utf8(n1)
+ end
end
local function parse_string(str, i)
- local has_unicode_escape = false
- local has_surrogate_escape = false
- local has_escape = false
- local last
- for j = i + 1, #str do
- local x = str:byte(j)
-
- if x < 32 then
- decode_error(str, j, "control character in string")
- end
-
- if last == 92 then -- "\\" (escape char)
- if x == 117 then -- "u" (unicode escape sequence)
- local hex = str:sub(j + 1, j + 5)
- if not hex:find("%x%x%x%x") then
- decode_error(str, j, "invalid unicode escape in string")
- end
- if hex:find("^[dD][89aAbB]") then
- has_surrogate_escape = true
- else
- has_unicode_escape = true
- end
- else
- local c = string.char(x)
- if not escape_chars[c] then
- decode_error(str, j, "invalid escape char '" .. c .. "' in string")
- end
- has_escape = true
- end
- last = nil
-
- elseif x == 34 then -- '"' (end of string)
- local s = str:sub(i + 1, j - 1)
- if has_surrogate_escape then
- s = s:gsub("\\u[dD][89aAbB]..\\u....", parse_unicode_escape)
- end
- if has_unicode_escape then
- s = s:gsub("\\u....", parse_unicode_escape)
- end
- if has_escape then
- s = s:gsub("\\.", escape_char_map_inv)
- end
- return s, j + 1
+ local has_unicode_escape = false
+ local has_surrogate_escape = false
+ local has_escape = false
+ local last
+ for j = i + 1, #str do
+ local x = str:byte(j)
+
+ if x < 32 then
+ decode_error(str, j, "control character in string")
+ end
+ if last == 92 then -- "\\" (escape char)
+ if x == 117 then -- "u" (unicode escape sequence)
+ local hex = str:sub(j + 1, j + 5)
+ if not hex:find("%x%x%x%x") then
+ decode_error(str, j, "invalid unicode escape in string")
+ end
+ if hex:find("^[dD][89aAbB]") then
+ has_surrogate_escape = true
else
- last = x
+ has_unicode_escape = true
+ end
+ else
+ local c = string.char(x)
+ if not escape_chars[c] then
+ decode_error(str, j, "invalid escape char '" .. c .. "' in string")
end
+ has_escape = true
+ end
+ last = nil
+
+ elseif x == 34 then -- '"' (end of string)
+ local s = str:sub(i + 1, j - 1)
+ if has_surrogate_escape then
+ s = s:gsub("\\u[dD][89aAbB]..\\u....", parse_unicode_escape)
+ end
+ if has_unicode_escape then
+ s = s:gsub("\\u....", parse_unicode_escape)
+ end
+ if has_escape then
+ s = s:gsub("\\.", escape_char_map_inv)
+ end
+ return s, j + 1
+
+ else
+ last = x
end
- decode_error(str, i, "expected closing quote for string")
+ end
+ decode_error(str, i, "expected closing quote for string")
end
local function parse_number(str, i)
- local x = next_char(str, i, delim_chars)
- local s = str:sub(i, x - 1)
- local n = tonumber(s)
- if not n then
- decode_error(str, i, "invalid number '" .. s .. "'")
- end
- return n, x
+ local x = next_char(str, i, delim_chars)
+ local s = str:sub(i, x - 1)
+ local n = tonumber(s)
+ if not n then
+ decode_error(str, i, "invalid number '" .. s .. "'")
+ end
+ return n, x
end
local function parse_literal(str, i)
- local x = next_char(str, i, delim_chars)
- local word = str:sub(i, x - 1)
- if not literals[word] then
- decode_error(str, i, "invalid literal '" .. word .. "'")
- end
- return literal_map[word], x
+ local x = next_char(str, i, delim_chars)
+ local word = str:sub(i, x - 1)
+ if not literals[word] then
+ decode_error(str, i, "invalid literal '" .. word .. "'")
+ end
+ return literal_map[word], x
end
local function parse_array(str, i)
- local res = {}
- local n = 1
- i = i + 1
- while 1 do
- local x
- i = next_char(str, i, space_chars, true)
- -- Empty / end of array?
- if str:sub(i, i) == "]" then
- i = i + 1
- break
- end
- -- Read token
- x, i = parse(str, i)
- res[n] = x
- n = n + 1
- -- Next token
- i = next_char(str, i, space_chars, true)
- local chr = str:sub(i, i)
- i = i + 1
- if chr == "]" then break end
- if chr ~= "," then decode_error(str, i, "expected ']' or ','") end
+ local res = {}
+ local n = 1
+ i = i + 1
+ while 1 do
+ local x
+ i = next_char(str, i, space_chars, true)
+ -- Empty / end of array?
+ if str:sub(i, i) == "]" then
+ i = i + 1
+ break
end
- return res, i
+ -- Read token
+ x, i = parse(str, i)
+ res[n] = x
+ n = n + 1
+ -- Next token
+ i = next_char(str, i, space_chars, true)
+ local chr = str:sub(i, i)
+ i = i + 1
+ if chr == "]" then break end
+ if chr ~= "," then decode_error(str, i, "expected ']' or ','") end
+ end
+ return res, i
end
local function parse_object(str, i)
- local res = {}
- i = i + 1
- while 1 do
- local key, val
- i = next_char(str, i, space_chars, true)
- -- Empty / end of object?
- if str:sub(i, i) == "}" then
- i = i + 1
- break
- end
- -- Read key
- if str:sub(i, i) ~= '"' then
- decode_error(str, i, "expected string for key")
- end
- key, i = parse(str, i)
- -- Read ':' delimiter
- i = next_char(str, i, space_chars, true)
- if str:sub(i, i) ~= ":" then
- decode_error(str, i, "expected ':' after key")
- end
- i = next_char(str, i + 1, space_chars, true)
- -- Read value
- val, i = parse(str, i)
- -- Set
- res[key] = val
- -- Next token
- i = next_char(str, i, space_chars, true)
- local chr = str:sub(i, i)
- i = i + 1
- if chr == "}" then break end
- if chr ~= "," then decode_error(str, i, "expected '}' or ','") end
+ local res = {}
+ i = i + 1
+ while 1 do
+ local key, val
+ i = next_char(str, i, space_chars, true)
+ -- Empty / end of object?
+ if str:sub(i, i) == "}" then
+ i = i + 1
+ break
+ end
+ -- Read key
+ if str:sub(i, i) ~= '"' then
+ decode_error(str, i, "expected string for key")
+ end
+ key, i = parse(str, i)
+ -- Read ':' delimiter
+ i = next_char(str, i, space_chars, true)
+ if str:sub(i, i) ~= ":" then
+ decode_error(str, i, "expected ':' after key")
end
- return res, i
+ i = next_char(str, i + 1, space_chars, true)
+ -- Read value
+ val, i = parse(str, i)
+ -- Set
+ res[key] = val
+ -- Next token
+ i = next_char(str, i, space_chars, true)
+ local chr = str:sub(i, i)
+ i = i + 1
+ if chr == "}" then break end
+ if chr ~= "," then decode_error(str, i, "expected '}' or ','") end
+ end
+ return res, i
end
local char_func_map = {
- [ '"' ] = parse_string,
- [ "0" ] = parse_number,
- [ "1" ] = parse_number,
- [ "2" ] = parse_number,
- [ "3" ] = parse_number,
- [ "4" ] = parse_number,
- [ "5" ] = parse_number,
- [ "6" ] = parse_number,
- [ "7" ] = parse_number,
- [ "8" ] = parse_number,
- [ "9" ] = parse_number,
- [ "-" ] = parse_number,
- [ "t" ] = parse_literal,
- [ "f" ] = parse_literal,
- [ "n" ] = parse_literal,
- [ "[" ] = parse_array,
- [ "{" ] = parse_object,
+ [ '"' ] = parse_string,
+ [ "0" ] = parse_number,
+ [ "1" ] = parse_number,
+ [ "2" ] = parse_number,
+ [ "3" ] = parse_number,
+ [ "4" ] = parse_number,
+ [ "5" ] = parse_number,
+ [ "6" ] = parse_number,
+ [ "7" ] = parse_number,
+ [ "8" ] = parse_number,
+ [ "9" ] = parse_number,
+ [ "-" ] = parse_number,
+ [ "t" ] = parse_literal,
+ [ "f" ] = parse_literal,
+ [ "n" ] = parse_literal,
+ [ "[" ] = parse_array,
+ [ "{" ] = parse_object,
}
parse = function(str, idx)
- local chr = str:sub(idx, idx)
- local f = char_func_map[chr]
- if f then
- return f(str, idx)
- end
- decode_error(str, idx, "unexpected character '" .. chr .. "'")
+ local chr = str:sub(idx, idx)
+ local f = char_func_map[chr]
+ if f then
+ return f(str, idx)
+ end
+ decode_error(str, idx, "unexpected character '" .. chr .. "'")
end
function json.decode(str)
- if type(str) ~= "string" then
- error("expected argument of type string, got " .. type(str))
- end
- local res, idx = parse(str, next_char(str, 1, space_chars, true))
- idx = next_char(str, idx, space_chars, true)
- if idx <= #str then
- decode_error(str, idx, "trailing garbage")
- end
- return res
+ if type(str) ~= "string" then
+ error("expected argument of type string, got " .. type(str))
+ end
+ local res, idx = parse(str, next_char(str, 1, space_chars, true))
+ idx = next_char(str, idx, space_chars, true)
+ if idx <= #str then
+ decode_error(str, idx, "trailing garbage")
+ end
+ return res
end
------------------------------------------------------------------------------------------------------------------
diff --git a/src/libjin-lua/scripts/utils/json.lua.h b/src/libjin-lua/scripts/utils/json.lua.h
index 128c88d..4b95a44 100644
--- a/src/libjin-lua/scripts/utils/json.lua.h
+++ b/src/libjin-lua/scripts/utils/json.lua.h
@@ -28,517 +28,469 @@ static char json_lua[] = {
45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,13,10,108,111,99,
97,108,32,101,110,99,111,100,101,13,10,13,10,108,111,99,97,108,32,101,
115,99,97,112,101,95,99,104,97,114,95,109,97,112,32,61,32,123,13,10,
-32,32,32,32,91,32,34,92,92,34,32,93,32,61,32,34,92,92,92,92,
-34,44,13,10,32,32,32,32,91,32,34,92,34,34,32,93,32,61,32,34,
-92,92,92,34,34,44,13,10,32,32,32,32,91,32,34,92,98,34,32,93,
-32,61,32,34,92,92,98,34,44,13,10,32,32,32,32,91,32,34,92,102,
-34,32,93,32,61,32,34,92,92,102,34,44,13,10,32,32,32,32,91,32,
-34,92,110,34,32,93,32,61,32,34,92,92,110,34,44,13,10,32,32,32,
-32,91,32,34,92,114,34,32,93,32,61,32,34,92,92,114,34,44,13,10,
-32,32,32,32,91,32,34,92,116,34,32,93,32,61,32,34,92,92,116,34,
-44,13,10,125,13,10,13,10,108,111,99,97,108,32,101,115,99,97,112,101,
-95,99,104,97,114,95,109,97,112,95,105,110,118,32,61,32,123,32,91,32,
-34,92,92,47,34,32,93,32,61,32,34,47,34,32,125,13,10,102,111,114,
-32,107,44,32,118,32,105,110,32,112,97,105,114,115,40,101,115,99,97,112,
-101,95,99,104,97,114,95,109,97,112,41,32,100,111,13,10,32,32,32,32,
-101,115,99,97,112,101,95,99,104,97,114,95,109,97,112,95,105,110,118,91,
-118,93,32,61,32,107,13,10,101,110,100,13,10,13,10,13,10,108,111,99,
-97,108,32,102,117,110,99,116,105,111,110,32,101,115,99,97,112,101,95,99,
-104,97,114,40,99,41,13,10,32,32,32,32,114,101,116,117,114,110,32,101,
-115,99,97,112,101,95,99,104,97,114,95,109,97,112,91,99,93,32,111,114,
-32,115,116,114,105,110,103,46,102,111,114,109,97,116,40,34,92,92,117,37,
-48,52,120,34,44,32,99,58,98,121,116,101,40,41,41,13,10,101,110,100,
-13,10,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,
-32,101,110,99,111,100,101,95,110,105,108,40,118,97,108,41,13,10,32,32,
+32,32,91,32,34,92,92,34,32,93,32,61,32,34,92,92,92,92,34,44,
+13,10,32,32,91,32,34,92,34,34,32,93,32,61,32,34,92,92,92,34,
+34,44,13,10,32,32,91,32,34,92,98,34,32,93,32,61,32,34,92,92,
+98,34,44,13,10,32,32,91,32,34,92,102,34,32,93,32,61,32,34,92,
+92,102,34,44,13,10,32,32,91,32,34,92,110,34,32,93,32,61,32,34,
+92,92,110,34,44,13,10,32,32,91,32,34,92,114,34,32,93,32,61,32,
+34,92,92,114,34,44,13,10,32,32,91,32,34,92,116,34,32,93,32,61,
+32,34,92,92,116,34,44,13,10,125,13,10,13,10,108,111,99,97,108,32,
+101,115,99,97,112,101,95,99,104,97,114,95,109,97,112,95,105,110,118,32,
+61,32,123,32,91,32,34,92,92,47,34,32,93,32,61,32,34,47,34,32,
+125,13,10,102,111,114,32,107,44,32,118,32,105,110,32,112,97,105,114,115,
+40,101,115,99,97,112,101,95,99,104,97,114,95,109,97,112,41,32,100,111,
+13,10,32,32,101,115,99,97,112,101,95,99,104,97,114,95,109,97,112,95,
+105,110,118,91,118,93,32,61,32,107,13,10,101,110,100,13,10,13,10,13,
+10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,101,115,99,97,
+112,101,95,99,104,97,114,40,99,41,13,10,32,32,114,101,116,117,114,110,
+32,101,115,99,97,112,101,95,99,104,97,114,95,109,97,112,91,99,93,32,
+111,114,32,115,116,114,105,110,103,46,102,111,114,109,97,116,40,34,92,92,
+117,37,48,52,120,34,44,32,99,58,98,121,116,101,40,41,41,13,10,101,
+110,100,13,10,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,
+111,110,32,101,110,99,111,100,101,95,110,105,108,40,118,97,108,41,13,10,
32,32,114,101,116,117,114,110,32,34,110,117,108,108,34,13,10,101,110,100,
13,10,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,
32,101,110,99,111,100,101,95,116,97,98,108,101,40,118,97,108,44,32,115,
-116,97,99,107,41,13,10,32,32,32,32,108,111,99,97,108,32,114,101,115,
-32,61,32,123,125,13,10,32,32,32,32,115,116,97,99,107,32,61,32,115,
-116,97,99,107,32,111,114,32,123,125,13,10,13,10,32,32,32,32,45,45,
-32,67,105,114,99,117,108,97,114,32,114,101,102,101,114,101,110,99,101,63,
-13,10,32,32,32,32,105,102,32,115,116,97,99,107,91,118,97,108,93,32,
-116,104,101,110,32,101,114,114,111,114,40,34,99,105,114,99,117,108,97,114,
-32,114,101,102,101,114,101,110,99,101,34,41,32,101,110,100,13,10,13,10,
-32,32,32,32,115,116,97,99,107,91,118,97,108,93,32,61,32,116,114,117,
-101,13,10,13,10,32,32,32,32,105,102,32,118,97,108,91,49,93,32,126,
-61,32,110,105,108,32,111,114,32,110,101,120,116,40,118,97,108,41,32,61,
-61,32,110,105,108,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,
-45,45,32,84,114,101,97,116,32,97,115,32,97,114,114,97,121,32,45,45,
-32,99,104,101,99,107,32,107,101,121,115,32,97,114,101,32,118,97,108,105,
-100,32,97,110,100,32,105,116,32,105,115,32,110,111,116,32,115,112,97,114,
-115,101,13,10,32,32,32,32,32,32,32,32,108,111,99,97,108,32,110,32,
-61,32,48,13,10,32,32,32,32,32,32,32,32,102,111,114,32,107,32,105,
-110,32,112,97,105,114,115,40,118,97,108,41,32,100,111,13,10,32,32,32,
-32,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,107,41,32,
-126,61,32,34,110,117,109,98,101,114,34,32,116,104,101,110,13,10,32,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,114,114,111,114,40,
-34,105,110,118,97,108,105,100,32,116,97,98,108,101,58,32,109,105,120,101,
-100,32,111,114,32,105,110,118,97,108,105,100,32,107,101,121,32,116,121,112,
-101,115,34,41,13,10,32,32,32,32,32,32,32,32,32,32,32,32,101,110,
-100,13,10,32,32,32,32,32,32,32,32,32,32,32,32,110,32,61,32,110,
-32,43,32,49,13,10,32,32,32,32,32,32,32,32,101,110,100,13,10,32,
-32,32,32,32,32,32,32,105,102,32,110,32,126,61,32,35,118,97,108,32,
-116,104,101,110,13,10,32,32,32,32,32,32,32,32,32,32,32,32,101,114,
-114,111,114,40,34,105,110,118,97,108,105,100,32,116,97,98,108,101,58,32,
-115,112,97,114,115,101,32,97,114,114,97,121,34,41,13,10,32,32,32,32,
-32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,32,32,45,45,32,
-69,110,99,111,100,101,13,10,32,32,32,32,32,32,32,32,102,111,114,32,
-105,44,32,118,32,105,110,32,105,112,97,105,114,115,40,118,97,108,41,32,
-100,111,13,10,32,32,32,32,32,32,32,32,32,32,32,32,116,97,98,108,
-101,46,105,110,115,101,114,116,40,114,101,115,44,32,101,110,99,111,100,101,
-40,118,44,32,115,116,97,99,107,41,41,13,10,32,32,32,32,32,32,32,
-32,101,110,100,13,10,32,32,32,32,32,32,32,32,115,116,97,99,107,91,
-118,97,108,93,32,61,32,110,105,108,13,10,32,32,32,32,32,32,32,32,
-114,101,116,117,114,110,32,34,91,34,32,46,46,32,116,97,98,108,101,46,
-99,111,110,99,97,116,40,114,101,115,44,32,34,44,34,41,32,46,46,32,
-34,93,34,13,10,13,10,32,32,32,32,101,108,115,101,13,10,32,32,32,
-32,32,32,32,32,45,45,32,84,114,101,97,116,32,97,115,32,97,110,32,
-111,98,106,101,99,116,13,10,32,32,32,32,32,32,32,32,102,111,114,32,
-107,44,32,118,32,105,110,32,112,97,105,114,115,40,118,97,108,41,32,100,
-111,13,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,116,121,
-112,101,40,107,41,32,126,61,32,34,115,116,114,105,110,103,34,32,116,104,
-101,110,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-101,114,114,111,114,40,34,105,110,118,97,108,105,100,32,116,97,98,108,101,
-58,32,109,105,120,101,100,32,111,114,32,105,110,118,97,108,105,100,32,107,
-101,121,32,116,121,112,101,115,34,41,13,10,32,32,32,32,32,32,32,32,
-32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,32,32,32,32,32,
-32,116,97,98,108,101,46,105,110,115,101,114,116,40,114,101,115,44,32,101,
-110,99,111,100,101,40,107,44,32,115,116,97,99,107,41,32,46,46,32,34,
-58,34,32,46,46,32,101,110,99,111,100,101,40,118,44,32,115,116,97,99,
-107,41,41,13,10,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,
-32,32,32,32,32,32,115,116,97,99,107,91,118,97,108,93,32,61,32,110,
-105,108,13,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,
-123,34,32,46,46,32,116,97,98,108,101,46,99,111,110,99,97,116,40,114,
-101,115,44,32,34,44,34,41,32,46,46,32,34,125,34,13,10,32,32,32,
-32,101,110,100,13,10,101,110,100,13,10,13,10,13,10,108,111,99,97,108,
-32,102,117,110,99,116,105,111,110,32,101,110,99,111,100,101,95,115,116,114,
-105,110,103,40,118,97,108,41,13,10,32,32,32,32,114,101,116,117,114,110,
-32,39,34,39,32,46,46,32,118,97,108,58,103,115,117,98,40,39,91,37,
-122,92,49,45,92,51,49,92,92,34,93,39,44,32,101,115,99,97,112,101,
-95,99,104,97,114,41,32,46,46,32,39,34,39,13,10,101,110,100,13,10,
-13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,101,
-110,99,111,100,101,95,110,117,109,98,101,114,40,118,97,108,41,13,10,32,
-32,32,32,45,45,32,67,104,101,99,107,32,102,111,114,32,78,97,78,44,
-32,45,105,110,102,32,97,110,100,32,105,110,102,13,10,32,32,32,32,105,
-102,32,118,97,108,32,126,61,32,118,97,108,32,111,114,32,118,97,108,32,
-60,61,32,45,109,97,116,104,46,104,117,103,101,32,111,114,32,118,97,108,
-32,62,61,32,109,97,116,104,46,104,117,103,101,32,116,104,101,110,13,10,
-32,32,32,32,32,32,32,32,101,114,114,111,114,40,34,117,110,101,120,112,
-101,99,116,101,100,32,110,117,109,98,101,114,32,118,97,108,117,101,32,39,
-34,32,46,46,32,116,111,115,116,114,105,110,103,40,118,97,108,41,32,46,
-46,32,34,39,34,41,13,10,32,32,32,32,101,110,100,13,10,32,32,32,
-32,114,101,116,117,114,110,32,115,116,114,105,110,103,46,102,111,114,109,97,
-116,40,34,37,46,49,52,103,34,44,32,118,97,108,41,13,10,101,110,100,
-13,10,13,10,13,10,108,111,99,97,108,32,116,121,112,101,95,102,117,110,
-99,95,109,97,112,32,61,32,123,13,10,32,32,32,32,91,32,34,110,105,
-108,34,32,32,32,32,32,32,32,32,32,93,32,61,32,101,110,99,111,100,
-101,95,110,105,108,44,13,10,32,32,32,32,91,32,34,116,97,98,108,101,
-34,32,32,32,32,32,93,32,61,32,101,110,99,111,100,101,95,116,97,98,
-108,101,44,13,10,32,32,32,32,91,32,34,115,116,114,105,110,103,34,32,
-32,32,32,93,32,61,32,101,110,99,111,100,101,95,115,116,114,105,110,103,
-44,13,10,32,32,32,32,91,32,34,110,117,109,98,101,114,34,32,32,32,
-32,93,32,61,32,101,110,99,111,100,101,95,110,117,109,98,101,114,44,13,
-10,32,32,32,32,91,32,34,98,111,111,108,101,97,110,34,32,93,32,61,
-32,116,111,115,116,114,105,110,103,44,13,10,125,13,10,13,10,13,10,101,
-110,99,111,100,101,32,61,32,102,117,110,99,116,105,111,110,40,118,97,108,
-44,32,115,116,97,99,107,41,13,10,32,32,32,32,108,111,99,97,108,32,
-116,32,61,32,116,121,112,101,40,118,97,108,41,13,10,32,32,32,32,108,
-111,99,97,108,32,102,32,61,32,116,121,112,101,95,102,117,110,99,95,109,
-97,112,91,116,93,13,10,32,32,32,32,105,102,32,102,32,116,104,101,110,
-13,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,40,118,
-97,108,44,32,115,116,97,99,107,41,13,10,32,32,32,32,101,110,100,13,
-10,32,32,32,32,101,114,114,111,114,40,34,117,110,101,120,112,101,99,116,
-101,100,32,116,121,112,101,32,39,34,32,46,46,32,116,32,46,46,32,34,
-39,34,41,13,10,101,110,100,13,10,13,10,13,10,102,117,110,99,116,105,
-111,110,32,106,115,111,110,46,101,110,99,111,100,101,40,118,97,108,41,13,
-10,32,32,32,32,114,101,116,117,114,110,32,40,32,101,110,99,111,100,101,
-40,118,97,108,41,32,41,13,10,101,110,100,13,10,13,10,13,10,45,45,
+116,97,99,107,41,13,10,32,32,108,111,99,97,108,32,114,101,115,32,61,
+32,123,125,13,10,32,32,115,116,97,99,107,32,61,32,115,116,97,99,107,
+32,111,114,32,123,125,13,10,13,10,32,32,45,45,32,67,105,114,99,117,
+108,97,114,32,114,101,102,101,114,101,110,99,101,63,13,10,32,32,105,102,
+32,115,116,97,99,107,91,118,97,108,93,32,116,104,101,110,32,101,114,114,
+111,114,40,34,99,105,114,99,117,108,97,114,32,114,101,102,101,114,101,110,
+99,101,34,41,32,101,110,100,13,10,13,10,32,32,115,116,97,99,107,91,
+118,97,108,93,32,61,32,116,114,117,101,13,10,13,10,32,32,105,102,32,
+118,97,108,91,49,93,32,126,61,32,110,105,108,32,111,114,32,110,101,120,
+116,40,118,97,108,41,32,61,61,32,110,105,108,32,116,104,101,110,13,10,
+32,32,32,32,45,45,32,84,114,101,97,116,32,97,115,32,97,114,114,97,
+121,32,45,45,32,99,104,101,99,107,32,107,101,121,115,32,97,114,101,32,
+118,97,108,105,100,32,97,110,100,32,105,116,32,105,115,32,110,111,116,32,
+115,112,97,114,115,101,13,10,32,32,32,32,108,111,99,97,108,32,110,32,
+61,32,48,13,10,32,32,32,32,102,111,114,32,107,32,105,110,32,112,97,
+105,114,115,40,118,97,108,41,32,100,111,13,10,32,32,32,32,32,32,105,
+102,32,116,121,112,101,40,107,41,32,126,61,32,34,110,117,109,98,101,114,
+34,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,101,114,114,111,
+114,40,34,105,110,118,97,108,105,100,32,116,97,98,108,101,58,32,109,105,
+120,101,100,32,111,114,32,105,110,118,97,108,105,100,32,107,101,121,32,116,
+121,112,101,115,34,41,13,10,32,32,32,32,32,32,101,110,100,13,10,32,
+32,32,32,32,32,110,32,61,32,110,32,43,32,49,13,10,32,32,32,32,
+101,110,100,13,10,32,32,32,32,105,102,32,110,32,126,61,32,35,118,97,
+108,32,116,104,101,110,13,10,32,32,32,32,32,32,101,114,114,111,114,40,
+34,105,110,118,97,108,105,100,32,116,97,98,108,101,58,32,115,112,97,114,
+115,101,32,97,114,114,97,121,34,41,13,10,32,32,32,32,101,110,100,13,
+10,32,32,32,32,45,45,32,69,110,99,111,100,101,13,10,32,32,32,32,
+102,111,114,32,105,44,32,118,32,105,110,32,105,112,97,105,114,115,40,118,
+97,108,41,32,100,111,13,10,32,32,32,32,32,32,116,97,98,108,101,46,
+105,110,115,101,114,116,40,114,101,115,44,32,101,110,99,111,100,101,40,118,
+44,32,115,116,97,99,107,41,41,13,10,32,32,32,32,101,110,100,13,10,
+32,32,32,32,115,116,97,99,107,91,118,97,108,93,32,61,32,110,105,108,
+13,10,32,32,32,32,114,101,116,117,114,110,32,34,91,34,32,46,46,32,
+116,97,98,108,101,46,99,111,110,99,97,116,40,114,101,115,44,32,34,44,
+34,41,32,46,46,32,34,93,34,13,10,13,10,32,32,101,108,115,101,13,
+10,32,32,32,32,45,45,32,84,114,101,97,116,32,97,115,32,97,110,32,
+111,98,106,101,99,116,13,10,32,32,32,32,102,111,114,32,107,44,32,118,
+32,105,110,32,112,97,105,114,115,40,118,97,108,41,32,100,111,13,10,32,
+32,32,32,32,32,105,102,32,116,121,112,101,40,107,41,32,126,61,32,34,
+115,116,114,105,110,103,34,32,116,104,101,110,13,10,32,32,32,32,32,32,
+32,32,101,114,114,111,114,40,34,105,110,118,97,108,105,100,32,116,97,98,
+108,101,58,32,109,105,120,101,100,32,111,114,32,105,110,118,97,108,105,100,
+32,107,101,121,32,116,121,112,101,115,34,41,13,10,32,32,32,32,32,32,
+101,110,100,13,10,32,32,32,32,32,32,116,97,98,108,101,46,105,110,115,
+101,114,116,40,114,101,115,44,32,101,110,99,111,100,101,40,107,44,32,115,
+116,97,99,107,41,32,46,46,32,34,58,34,32,46,46,32,101,110,99,111,
+100,101,40,118,44,32,115,116,97,99,107,41,41,13,10,32,32,32,32,101,
+110,100,13,10,32,32,32,32,115,116,97,99,107,91,118,97,108,93,32,61,
+32,110,105,108,13,10,32,32,32,32,114,101,116,117,114,110,32,34,123,34,
+32,46,46,32,116,97,98,108,101,46,99,111,110,99,97,116,40,114,101,115,
+44,32,34,44,34,41,32,46,46,32,34,125,34,13,10,32,32,101,110,100,
+13,10,101,110,100,13,10,13,10,13,10,108,111,99,97,108,32,102,117,110,
+99,116,105,111,110,32,101,110,99,111,100,101,95,115,116,114,105,110,103,40,
+118,97,108,41,13,10,32,32,114,101,116,117,114,110,32,39,34,39,32,46,
+46,32,118,97,108,58,103,115,117,98,40,39,91,37,122,92,49,45,92,51,
+49,92,92,34,93,39,44,32,101,115,99,97,112,101,95,99,104,97,114,41,
+32,46,46,32,39,34,39,13,10,101,110,100,13,10,13,10,13,10,108,111,
+99,97,108,32,102,117,110,99,116,105,111,110,32,101,110,99,111,100,101,95,
+110,117,109,98,101,114,40,118,97,108,41,13,10,32,32,45,45,32,67,104,
+101,99,107,32,102,111,114,32,78,97,78,44,32,45,105,110,102,32,97,110,
+100,32,105,110,102,13,10,32,32,105,102,32,118,97,108,32,126,61,32,118,
+97,108,32,111,114,32,118,97,108,32,60,61,32,45,109,97,116,104,46,104,
+117,103,101,32,111,114,32,118,97,108,32,62,61,32,109,97,116,104,46,104,
+117,103,101,32,116,104,101,110,13,10,32,32,32,32,101,114,114,111,114,40,
+34,117,110,101,120,112,101,99,116,101,100,32,110,117,109,98,101,114,32,118,
+97,108,117,101,32,39,34,32,46,46,32,116,111,115,116,114,105,110,103,40,
+118,97,108,41,32,46,46,32,34,39,34,41,13,10,32,32,101,110,100,13,
+10,32,32,114,101,116,117,114,110,32,115,116,114,105,110,103,46,102,111,114,
+109,97,116,40,34,37,46,49,52,103,34,44,32,118,97,108,41,13,10,101,
+110,100,13,10,13,10,13,10,108,111,99,97,108,32,116,121,112,101,95,102,
+117,110,99,95,109,97,112,32,61,32,123,13,10,32,32,91,32,34,110,105,
+108,34,32,32,32,32,32,93,32,61,32,101,110,99,111,100,101,95,110,105,
+108,44,13,10,32,32,91,32,34,116,97,98,108,101,34,32,32,32,93,32,
+61,32,101,110,99,111,100,101,95,116,97,98,108,101,44,13,10,32,32,91,
+32,34,115,116,114,105,110,103,34,32,32,93,32,61,32,101,110,99,111,100,
+101,95,115,116,114,105,110,103,44,13,10,32,32,91,32,34,110,117,109,98,
+101,114,34,32,32,93,32,61,32,101,110,99,111,100,101,95,110,117,109,98,
+101,114,44,13,10,32,32,91,32,34,98,111,111,108,101,97,110,34,32,93,
+32,61,32,116,111,115,116,114,105,110,103,44,13,10,125,13,10,13,10,13,
+10,101,110,99,111,100,101,32,61,32,102,117,110,99,116,105,111,110,40,118,
+97,108,44,32,115,116,97,99,107,41,13,10,32,32,108,111,99,97,108,32,
+116,32,61,32,116,121,112,101,40,118,97,108,41,13,10,32,32,108,111,99,
+97,108,32,102,32,61,32,116,121,112,101,95,102,117,110,99,95,109,97,112,
+91,116,93,13,10,32,32,105,102,32,102,32,116,104,101,110,13,10,32,32,
+32,32,114,101,116,117,114,110,32,102,40,118,97,108,44,32,115,116,97,99,
+107,41,13,10,32,32,101,110,100,13,10,32,32,101,114,114,111,114,40,34,
+117,110,101,120,112,101,99,116,101,100,32,116,121,112,101,32,39,34,32,46,
+46,32,116,32,46,46,32,34,39,34,41,13,10,101,110,100,13,10,13,10,
+13,10,102,117,110,99,116,105,111,110,32,106,115,111,110,46,101,110,99,111,
+100,101,40,118,97,108,41,13,10,32,32,114,101,116,117,114,110,32,40,32,
+101,110,99,111,100,101,40,118,97,108,41,32,41,13,10,101,110,100,13,10,
+13,10,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,45,
-45,32,68,101,99,111,100,101,13,10,45,45,45,45,45,45,45,45,45,45,
+45,45,45,13,10,45,45,32,68,101,99,111,100,101,13,10,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,13,10,13,10,108,111,99,97,108,32,112,
-97,114,115,101,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,
-111,110,32,99,114,101,97,116,101,95,115,101,116,40,46,46,46,41,13,10,
-32,32,32,32,108,111,99,97,108,32,114,101,115,32,61,32,123,125,13,10,
-32,32,32,32,102,111,114,32,105,32,61,32,49,44,32,115,101,108,101,99,
-116,40,34,35,34,44,32,46,46,46,41,32,100,111,13,10,32,32,32,32,
-32,32,32,32,114,101,115,91,32,115,101,108,101,99,116,40,105,44,32,46,
-46,46,41,32,93,32,61,32,116,114,117,101,13,10,32,32,32,32,101,110,
-100,13,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,13,10,101,
-110,100,13,10,13,10,108,111,99,97,108,32,115,112,97,99,101,95,99,104,
-97,114,115,32,32,32,32,32,61,32,99,114,101,97,116,101,95,115,101,116,
-40,34,32,34,44,32,34,92,116,34,44,32,34,92,114,34,44,32,34,92,
-110,34,41,13,10,108,111,99,97,108,32,100,101,108,105,109,95,99,104,97,
-114,115,32,32,32,32,32,61,32,99,114,101,97,116,101,95,115,101,116,40,
-34,32,34,44,32,34,92,116,34,44,32,34,92,114,34,44,32,34,92,110,
-34,44,32,34,93,34,44,32,34,125,34,44,32,34,44,34,41,13,10,108,
-111,99,97,108,32,101,115,99,97,112,101,95,99,104,97,114,115,32,32,32,
-32,61,32,99,114,101,97,116,101,95,115,101,116,40,34,92,92,34,44,32,
-34,47,34,44,32,39,34,39,44,32,34,98,34,44,32,34,102,34,44,32,
-34,110,34,44,32,34,114,34,44,32,34,116,34,44,32,34,117,34,41,13,
-10,108,111,99,97,108,32,108,105,116,101,114,97,108,115,32,32,32,32,32,
-32,32,32,32,32,32,32,61,32,99,114,101,97,116,101,95,115,101,116,40,
-34,116,114,117,101,34,44,32,34,102,97,108,115,101,34,44,32,34,110,117,
-108,108,34,41,13,10,13,10,108,111,99,97,108,32,108,105,116,101,114,97,
-108,95,109,97,112,32,61,32,123,13,10,32,32,32,32,91,32,34,116,114,
-117,101,34,32,32,32,32,93,32,61,32,116,114,117,101,44,13,10,32,32,
-32,32,91,32,34,102,97,108,115,101,34,32,93,32,61,32,102,97,108,115,
-101,44,13,10,32,32,32,32,91,32,34,110,117,108,108,34,32,32,32,32,
-93,32,61,32,110,105,108,44,13,10,125,13,10,13,10,13,10,108,111,99,
-97,108,32,102,117,110,99,116,105,111,110,32,110,101,120,116,95,99,104,97,
-114,40,115,116,114,44,32,105,100,120,44,32,115,101,116,44,32,110,101,103,
-97,116,101,41,13,10,32,32,32,32,102,111,114,32,105,32,61,32,105,100,
-120,44,32,35,115,116,114,32,100,111,13,10,32,32,32,32,32,32,32,32,
-105,102,32,115,101,116,91,115,116,114,58,115,117,98,40,105,44,32,105,41,
-93,32,126,61,32,110,101,103,97,116,101,32,116,104,101,110,13,10,32,32,
-32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,105,13,10,
-32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,101,110,100,
-13,10,32,32,32,32,114,101,116,117,114,110,32,35,115,116,114,32,43,32,
-49,13,10,101,110,100,13,10,13,10,13,10,108,111,99,97,108,32,102,117,
-110,99,116,105,111,110,32,100,101,99,111,100,101,95,101,114,114,111,114,40,
-115,116,114,44,32,105,100,120,44,32,109,115,103,41,13,10,32,32,32,32,
-108,111,99,97,108,32,108,105,110,101,95,99,111,117,110,116,32,61,32,49,
-13,10,32,32,32,32,108,111,99,97,108,32,99,111,108,95,99,111,117,110,
-116,32,61,32,49,13,10,32,32,32,32,102,111,114,32,105,32,61,32,49,
-44,32,105,100,120,32,45,32,49,32,100,111,13,10,32,32,32,32,32,32,
-32,32,99,111,108,95,99,111,117,110,116,32,61,32,99,111,108,95,99,111,
-117,110,116,32,43,32,49,13,10,32,32,32,32,32,32,32,32,105,102,32,
-115,116,114,58,115,117,98,40,105,44,32,105,41,32,61,61,32,34,92,110,
-34,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,32,32,32,32,
-108,105,110,101,95,99,111,117,110,116,32,61,32,108,105,110,101,95,99,111,
-117,110,116,32,43,32,49,13,10,32,32,32,32,32,32,32,32,32,32,32,
-32,99,111,108,95,99,111,117,110,116,32,61,32,49,13,10,32,32,32,32,
-32,32,32,32,101,110,100,13,10,32,32,32,32,101,110,100,13,10,32,32,
-32,32,101,114,114,111,114,40,32,115,116,114,105,110,103,46,102,111,114,109,
-97,116,40,34,37,115,32,97,116,32,108,105,110,101,32,37,100,32,99,111,
-108,32,37,100,34,44,32,109,115,103,44,32,108,105,110,101,95,99,111,117,
-110,116,44,32,99,111,108,95,99,111,117,110,116,41,32,41,13,10,101,110,
-100,13,10,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,
-110,32,99,111,100,101,112,111,105,110,116,95,116,111,95,117,116,102,56,40,
-110,41,13,10,32,32,32,32,45,45,32,104,116,116,112,58,47,47,115,99,
-114,105,112,116,115,46,115,105,108,46,111,114,103,47,99,109,115,47,115,99,
-114,105,112,116,115,47,112,97,103,101,46,112,104,112,63,115,105,116,101,95,
-105,100,61,110,114,115,105,38,105,100,61,105,119,115,45,97,112,112,101,110,
-100,105,120,97,13,10,32,32,32,32,108,111,99,97,108,32,102,32,61,32,
-109,97,116,104,46,102,108,111,111,114,13,10,32,32,32,32,105,102,32,110,
-32,60,61,32,48,120,55,102,32,116,104,101,110,13,10,32,32,32,32,32,
-32,32,32,114,101,116,117,114,110,32,115,116,114,105,110,103,46,99,104,97,
-114,40,110,41,13,10,32,32,32,32,101,108,115,101,105,102,32,110,32,60,
-61,32,48,120,55,102,102,32,116,104,101,110,13,10,32,32,32,32,32,32,
-32,32,114,101,116,117,114,110,32,115,116,114,105,110,103,46,99,104,97,114,
-40,102,40,110,32,47,32,54,52,41,32,43,32,49,57,50,44,32,110,32,
-37,32,54,52,32,43,32,49,50,56,41,13,10,32,32,32,32,101,108,115,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,13,10,108,
+111,99,97,108,32,112,97,114,115,101,13,10,13,10,108,111,99,97,108,32,
+102,117,110,99,116,105,111,110,32,99,114,101,97,116,101,95,115,101,116,40,
+46,46,46,41,13,10,32,32,108,111,99,97,108,32,114,101,115,32,61,32,
+123,125,13,10,32,32,102,111,114,32,105,32,61,32,49,44,32,115,101,108,
+101,99,116,40,34,35,34,44,32,46,46,46,41,32,100,111,13,10,32,32,
+32,32,114,101,115,91,32,115,101,108,101,99,116,40,105,44,32,46,46,46,
+41,32,93,32,61,32,116,114,117,101,13,10,32,32,101,110,100,13,10,32,
+32,114,101,116,117,114,110,32,114,101,115,13,10,101,110,100,13,10,13,10,
+108,111,99,97,108,32,115,112,97,99,101,95,99,104,97,114,115,32,32,32,
+61,32,99,114,101,97,116,101,95,115,101,116,40,34,32,34,44,32,34,92,
+116,34,44,32,34,92,114,34,44,32,34,92,110,34,41,13,10,108,111,99,
+97,108,32,100,101,108,105,109,95,99,104,97,114,115,32,32,32,61,32,99,
+114,101,97,116,101,95,115,101,116,40,34,32,34,44,32,34,92,116,34,44,
+32,34,92,114,34,44,32,34,92,110,34,44,32,34,93,34,44,32,34,125,
+34,44,32,34,44,34,41,13,10,108,111,99,97,108,32,101,115,99,97,112,
+101,95,99,104,97,114,115,32,32,61,32,99,114,101,97,116,101,95,115,101,
+116,40,34,92,92,34,44,32,34,47,34,44,32,39,34,39,44,32,34,98,
+34,44,32,34,102,34,44,32,34,110,34,44,32,34,114,34,44,32,34,116,
+34,44,32,34,117,34,41,13,10,108,111,99,97,108,32,108,105,116,101,114,
+97,108,115,32,32,32,32,32,32,61,32,99,114,101,97,116,101,95,115,101,
+116,40,34,116,114,117,101,34,44,32,34,102,97,108,115,101,34,44,32,34,
+110,117,108,108,34,41,13,10,13,10,108,111,99,97,108,32,108,105,116,101,
+114,97,108,95,109,97,112,32,61,32,123,13,10,32,32,91,32,34,116,114,
+117,101,34,32,32,93,32,61,32,116,114,117,101,44,13,10,32,32,91,32,
+34,102,97,108,115,101,34,32,93,32,61,32,102,97,108,115,101,44,13,10,
+32,32,91,32,34,110,117,108,108,34,32,32,93,32,61,32,110,105,108,44,
+13,10,125,13,10,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,
+105,111,110,32,110,101,120,116,95,99,104,97,114,40,115,116,114,44,32,105,
+100,120,44,32,115,101,116,44,32,110,101,103,97,116,101,41,13,10,32,32,
+102,111,114,32,105,32,61,32,105,100,120,44,32,35,115,116,114,32,100,111,
+13,10,32,32,32,32,105,102,32,115,101,116,91,115,116,114,58,115,117,98,
+40,105,44,32,105,41,93,32,126,61,32,110,101,103,97,116,101,32,116,104,
+101,110,13,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,13,10,
+32,32,32,32,101,110,100,13,10,32,32,101,110,100,13,10,32,32,114,101,
+116,117,114,110,32,35,115,116,114,32,43,32,49,13,10,101,110,100,13,10,
+13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,100,
+101,99,111,100,101,95,101,114,114,111,114,40,115,116,114,44,32,105,100,120,
+44,32,109,115,103,41,13,10,32,32,108,111,99,97,108,32,108,105,110,101,
+95,99,111,117,110,116,32,61,32,49,13,10,32,32,108,111,99,97,108,32,
+99,111,108,95,99,111,117,110,116,32,61,32,49,13,10,32,32,102,111,114,
+32,105,32,61,32,49,44,32,105,100,120,32,45,32,49,32,100,111,13,10,
+32,32,32,32,99,111,108,95,99,111,117,110,116,32,61,32,99,111,108,95,
+99,111,117,110,116,32,43,32,49,13,10,32,32,32,32,105,102,32,115,116,
+114,58,115,117,98,40,105,44,32,105,41,32,61,61,32,34,92,110,34,32,
+116,104,101,110,13,10,32,32,32,32,32,32,108,105,110,101,95,99,111,117,
+110,116,32,61,32,108,105,110,101,95,99,111,117,110,116,32,43,32,49,13,
+10,32,32,32,32,32,32,99,111,108,95,99,111,117,110,116,32,61,32,49,
+13,10,32,32,32,32,101,110,100,13,10,32,32,101,110,100,13,10,32,32,
+101,114,114,111,114,40,32,115,116,114,105,110,103,46,102,111,114,109,97,116,
+40,34,37,115,32,97,116,32,108,105,110,101,32,37,100,32,99,111,108,32,
+37,100,34,44,32,109,115,103,44,32,108,105,110,101,95,99,111,117,110,116,
+44,32,99,111,108,95,99,111,117,110,116,41,32,41,13,10,101,110,100,13,
+10,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,
+99,111,100,101,112,111,105,110,116,95,116,111,95,117,116,102,56,40,110,41,
+13,10,32,32,45,45,32,104,116,116,112,58,47,47,115,99,114,105,112,116,
+115,46,115,105,108,46,111,114,103,47,99,109,115,47,115,99,114,105,112,116,
+115,47,112,97,103,101,46,112,104,112,63,115,105,116,101,95,105,100,61,110,
+114,115,105,38,105,100,61,105,119,115,45,97,112,112,101,110,100,105,120,97,
+13,10,32,32,108,111,99,97,108,32,102,32,61,32,109,97,116,104,46,102,
+108,111,111,114,13,10,32,32,105,102,32,110,32,60,61,32,48,120,55,102,
+32,116,104,101,110,13,10,32,32,32,32,114,101,116,117,114,110,32,115,116,
+114,105,110,103,46,99,104,97,114,40,110,41,13,10,32,32,101,108,115,101,
+105,102,32,110,32,60,61,32,48,120,55,102,102,32,116,104,101,110,13,10,
+32,32,32,32,114,101,116,117,114,110,32,115,116,114,105,110,103,46,99,104,
+97,114,40,102,40,110,32,47,32,54,52,41,32,43,32,49,57,50,44,32,
+110,32,37,32,54,52,32,43,32,49,50,56,41,13,10,32,32,101,108,115,
101,105,102,32,110,32,60,61,32,48,120,102,102,102,102,32,116,104,101,110,
-13,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,116,114,
-105,110,103,46,99,104,97,114,40,102,40,110,32,47,32,52,48,57,54,41,
-32,43,32,50,50,52,44,32,102,40,110,32,37,32,52,48,57,54,32,47,
+13,10,32,32,32,32,114,101,116,117,114,110,32,115,116,114,105,110,103,46,
+99,104,97,114,40,102,40,110,32,47,32,52,48,57,54,41,32,43,32,50,
+50,52,44,32,102,40,110,32,37,32,52,48,57,54,32,47,32,54,52,41,
+32,43,32,49,50,56,44,32,110,32,37,32,54,52,32,43,32,49,50,56,
+41,13,10,32,32,101,108,115,101,105,102,32,110,32,60,61,32,48,120,49,
+48,102,102,102,102,32,116,104,101,110,13,10,32,32,32,32,114,101,116,117,
+114,110,32,115,116,114,105,110,103,46,99,104,97,114,40,102,40,110,32,47,
+32,50,54,50,49,52,52,41,32,43,32,50,52,48,44,32,102,40,110,32,
+37,32,50,54,50,49,52,52,32,47,32,52,48,57,54,41,32,43,32,49,
+50,56,44,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
+32,32,32,32,32,32,32,32,102,40,110,32,37,32,52,48,57,54,32,47,
32,54,52,41,32,43,32,49,50,56,44,32,110,32,37,32,54,52,32,43,
-32,49,50,56,41,13,10,32,32,32,32,101,108,115,101,105,102,32,110,32,
-60,61,32,48,120,49,48,102,102,102,102,32,116,104,101,110,13,10,32,32,
-32,32,32,32,32,32,114,101,116,117,114,110,32,115,116,114,105,110,103,46,
-99,104,97,114,40,102,40,110,32,47,32,50,54,50,49,52,52,41,32,43,
-32,50,52,48,44,32,102,40,110,32,37,32,50,54,50,49,52,52,32,47,
-32,52,48,57,54,41,32,43,32,49,50,56,44,13,10,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-102,40,110,32,37,32,52,48,57,54,32,47,32,54,52,41,32,43,32,49,
-50,56,44,32,110,32,37,32,54,52,32,43,32,49,50,56,41,13,10,32,
-32,32,32,101,110,100,13,10,32,32,32,32,101,114,114,111,114,40,32,115,
-116,114,105,110,103,46,102,111,114,109,97,116,40,34,105,110,118,97,108,105,
-100,32,117,110,105,99,111,100,101,32,99,111,100,101,112,111,105,110,116,32,
-39,37,120,39,34,44,32,110,41,32,41,13,10,101,110,100,13,10,13,10,
-13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,112,97,114,
-115,101,95,117,110,105,99,111,100,101,95,101,115,99,97,112,101,40,115,41,
-13,10,32,32,32,32,108,111,99,97,108,32,110,49,32,61,32,116,111,110,
-117,109,98,101,114,40,32,115,58,115,117,98,40,51,44,32,54,41,44,32,
-32,32,32,49,54,32,41,13,10,32,32,32,32,108,111,99,97,108,32,110,
-50,32,61,32,116,111,110,117,109,98,101,114,40,32,115,58,115,117,98,40,
-57,44,32,49,50,41,44,32,49,54,32,41,13,10,32,32,32,32,45,45,
-32,83,117,114,114,111,103,97,116,101,32,112,97,105,114,63,13,10,32,32,
-32,32,105,102,32,110,50,32,116,104,101,110,13,10,32,32,32,32,32,32,
-32,32,114,101,116,117,114,110,32,99,111,100,101,112,111,105,110,116,95,116,
-111,95,117,116,102,56,40,40,110,49,32,45,32,48,120,100,56,48,48,41,
-32,42,32,48,120,52,48,48,32,43,32,40,110,50,32,45,32,48,120,100,
-99,48,48,41,32,43,32,48,120,49,48,48,48,48,41,13,10,32,32,32,
-32,101,108,115,101,13,10,32,32,32,32,32,32,32,32,114,101,116,117,114,
-110,32,99,111,100,101,112,111,105,110,116,95,116,111,95,117,116,102,56,40,
-110,49,41,13,10,32,32,32,32,101,110,100,13,10,101,110,100,13,10,13,
-10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,112,97,
-114,115,101,95,115,116,114,105,110,103,40,115,116,114,44,32,105,41,13,10,
-32,32,32,32,108,111,99,97,108,32,104,97,115,95,117,110,105,99,111,100,
-101,95,101,115,99,97,112,101,32,61,32,102,97,108,115,101,13,10,32,32,
-32,32,108,111,99,97,108,32,104,97,115,95,115,117,114,114,111,103,97,116,
+32,49,50,56,41,13,10,32,32,101,110,100,13,10,32,32,101,114,114,111,
+114,40,32,115,116,114,105,110,103,46,102,111,114,109,97,116,40,34,105,110,
+118,97,108,105,100,32,117,110,105,99,111,100,101,32,99,111,100,101,112,111,
+105,110,116,32,39,37,120,39,34,44,32,110,41,32,41,13,10,101,110,100,
+13,10,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,
+32,112,97,114,115,101,95,117,110,105,99,111,100,101,95,101,115,99,97,112,
+101,40,115,41,13,10,32,32,108,111,99,97,108,32,110,49,32,61,32,116,
+111,110,117,109,98,101,114,40,32,115,58,115,117,98,40,51,44,32,54,41,
+44,32,32,49,54,32,41,13,10,32,32,108,111,99,97,108,32,110,50,32,
+61,32,116,111,110,117,109,98,101,114,40,32,115,58,115,117,98,40,57,44,
+32,49,50,41,44,32,49,54,32,41,13,10,32,32,45,45,32,83,117,114,
+114,111,103,97,116,101,32,112,97,105,114,63,13,10,32,32,105,102,32,110,
+50,32,116,104,101,110,13,10,32,32,32,32,114,101,116,117,114,110,32,99,
+111,100,101,112,111,105,110,116,95,116,111,95,117,116,102,56,40,40,110,49,
+32,45,32,48,120,100,56,48,48,41,32,42,32,48,120,52,48,48,32,43,
+32,40,110,50,32,45,32,48,120,100,99,48,48,41,32,43,32,48,120,49,
+48,48,48,48,41,13,10,32,32,101,108,115,101,13,10,32,32,32,32,114,
+101,116,117,114,110,32,99,111,100,101,112,111,105,110,116,95,116,111,95,117,
+116,102,56,40,110,49,41,13,10,32,32,101,110,100,13,10,101,110,100,13,
+10,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,
+112,97,114,115,101,95,115,116,114,105,110,103,40,115,116,114,44,32,105,41,
+13,10,32,32,108,111,99,97,108,32,104,97,115,95,117,110,105,99,111,100,
101,95,101,115,99,97,112,101,32,61,32,102,97,108,115,101,13,10,32,32,
-32,32,108,111,99,97,108,32,104,97,115,95,101,115,99,97,112,101,32,61,
-32,102,97,108,115,101,13,10,32,32,32,32,108,111,99,97,108,32,108,97,
-115,116,13,10,32,32,32,32,102,111,114,32,106,32,61,32,105,32,43,32,
-49,44,32,35,115,116,114,32,100,111,13,10,32,32,32,32,32,32,32,32,
-108,111,99,97,108,32,120,32,61,32,115,116,114,58,98,121,116,101,40,106,
-41,13,10,13,10,32,32,32,32,32,32,32,32,105,102,32,120,32,60,32,
-51,50,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,32,32,32,
+108,111,99,97,108,32,104,97,115,95,115,117,114,114,111,103,97,116,101,95,
+101,115,99,97,112,101,32,61,32,102,97,108,115,101,13,10,32,32,108,111,
+99,97,108,32,104,97,115,95,101,115,99,97,112,101,32,61,32,102,97,108,
+115,101,13,10,32,32,108,111,99,97,108,32,108,97,115,116,13,10,32,32,
+102,111,114,32,106,32,61,32,105,32,43,32,49,44,32,35,115,116,114,32,
+100,111,13,10,32,32,32,32,108,111,99,97,108,32,120,32,61,32,115,116,
+114,58,98,121,116,101,40,106,41,13,10,13,10,32,32,32,32,105,102,32,
+120,32,60,32,51,50,32,116,104,101,110,13,10,32,32,32,32,32,32,100,
+101,99,111,100,101,95,101,114,114,111,114,40,115,116,114,44,32,106,44,32,
+34,99,111,110,116,114,111,108,32,99,104,97,114,97,99,116,101,114,32,105,
+110,32,115,116,114,105,110,103,34,41,13,10,32,32,32,32,101,110,100,13,
+10,13,10,32,32,32,32,105,102,32,108,97,115,116,32,61,61,32,57,50,
+32,116,104,101,110,32,45,45,32,34,92,92,34,32,40,101,115,99,97,112,
+101,32,99,104,97,114,41,13,10,32,32,32,32,32,32,105,102,32,120,32,
+61,61,32,49,49,55,32,116,104,101,110,32,45,45,32,34,117,34,32,40,
+117,110,105,99,111,100,101,32,101,115,99,97,112,101,32,115,101,113,117,101,
+110,99,101,41,13,10,32,32,32,32,32,32,32,32,108,111,99,97,108,32,
+104,101,120,32,61,32,115,116,114,58,115,117,98,40,106,32,43,32,49,44,
+32,106,32,43,32,53,41,13,10,32,32,32,32,32,32,32,32,105,102,32,
+110,111,116,32,104,101,120,58,102,105,110,100,40,34,37,120,37,120,37,120,
+37,120,34,41,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,32,
32,100,101,99,111,100,101,95,101,114,114,111,114,40,115,116,114,44,32,106,
-44,32,34,99,111,110,116,114,111,108,32,99,104,97,114,97,99,116,101,114,
-32,105,110,32,115,116,114,105,110,103,34,41,13,10,32,32,32,32,32,32,
-32,32,101,110,100,13,10,13,10,32,32,32,32,32,32,32,32,105,102,32,
-108,97,115,116,32,61,61,32,57,50,32,116,104,101,110,32,45,45,32,34,
-92,92,34,32,40,101,115,99,97,112,101,32,99,104,97,114,41,13,10,32,
-32,32,32,32,32,32,32,32,32,32,32,105,102,32,120,32,61,61,32,49,
-49,55,32,116,104,101,110,32,45,45,32,34,117,34,32,40,117,110,105,99,
-111,100,101,32,101,115,99,97,112,101,32,115,101,113,117,101,110,99,101,41,
-13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,108,111,
-99,97,108,32,104,101,120,32,61,32,115,116,114,58,115,117,98,40,106,32,
-43,32,49,44,32,106,32,43,32,53,41,13,10,32,32,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,105,102,32,110,111,116,32,104,101,120,58,
-102,105,110,100,40,34,37,120,37,120,37,120,37,120,34,41,32,116,104,101,
-110,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-32,32,32,100,101,99,111,100,101,95,101,114,114,111,114,40,115,116,114,44,
-32,106,44,32,34,105,110,118,97,108,105,100,32,117,110,105,99,111,100,101,
-32,101,115,99,97,112,101,32,105,110,32,115,116,114,105,110,103,34,41,13,
-10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,110,100,
-13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,
-32,104,101,120,58,102,105,110,100,40,34,94,91,100,68,93,91,56,57,97,
-65,98,66,93,34,41,32,116,104,101,110,13,10,32,32,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,104,97,115,95,115,117,114,
-114,111,103,97,116,101,95,101,115,99,97,112,101,32,61,32,116,114,117,101,
-13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,108,
-115,101,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-32,32,32,32,104,97,115,95,117,110,105,99,111,100,101,95,101,115,99,97,
-112,101,32,61,32,116,114,117,101,13,10,32,32,32,32,32,32,32,32,32,
+44,32,34,105,110,118,97,108,105,100,32,117,110,105,99,111,100,101,32,101,
+115,99,97,112,101,32,105,110,32,115,116,114,105,110,103,34,41,13,10,32,
32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,32,32,
-32,32,32,32,101,108,115,101,13,10,32,32,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,108,111,99,97,108,32,99,32,61,32,115,116,114,105,
-110,103,46,99,104,97,114,40,120,41,13,10,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,32,32,105,102,32,110,111,116,32,101,115,99,97,112,
-101,95,99,104,97,114,115,91,99,93,32,116,104,101,110,13,10,32,32,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,101,99,
-111,100,101,95,101,114,114,111,114,40,115,116,114,44,32,106,44,32,34,105,
-110,118,97,108,105,100,32,101,115,99,97,112,101,32,99,104,97,114,32,39,
-34,32,46,46,32,99,32,46,46,32,34,39,32,105,110,32,115,116,114,105,
-110,103,34,41,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-32,32,101,110,100,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,
-32,32,32,104,97,115,95,101,115,99,97,112,101,32,61,32,116,114,117,101,
-13,10,32,32,32,32,32,32,32,32,32,32,32,32,101,110,100,13,10,32,
-32,32,32,32,32,32,32,32,32,32,32,108,97,115,116,32,61,32,110,105,
-108,13,10,13,10,32,32,32,32,32,32,32,32,101,108,115,101,105,102,32,
-120,32,61,61,32,51,52,32,116,104,101,110,32,45,45,32,39,34,39,32,
-40,101,110,100,32,111,102,32,115,116,114,105,110,103,41,13,10,32,32,32,
-32,32,32,32,32,32,32,32,32,108,111,99,97,108,32,115,32,61,32,115,
-116,114,58,115,117,98,40,105,32,43,32,49,44,32,106,32,45,32,49,41,
-13,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,104,97,115,
-95,115,117,114,114,111,103,97,116,101,95,101,115,99,97,112,101,32,116,104,
-101,110,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-115,32,61,32,115,58,103,115,117,98,40,34,92,92,117,91,100,68,93,91,
-56,57,97,65,98,66,93,46,46,92,92,117,46,46,46,46,34,44,32,112,
+105,102,32,104,101,120,58,102,105,110,100,40,34,94,91,100,68,93,91,56,
+57,97,65,98,66,93,34,41,32,116,104,101,110,13,10,32,32,32,32,32,
+32,32,32,32,32,104,97,115,95,115,117,114,114,111,103,97,116,101,95,101,
+115,99,97,112,101,32,61,32,116,114,117,101,13,10,32,32,32,32,32,32,
+32,32,101,108,115,101,13,10,32,32,32,32,32,32,32,32,32,32,104,97,
+115,95,117,110,105,99,111,100,101,95,101,115,99,97,112,101,32,61,32,116,
+114,117,101,13,10,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,
+32,32,32,32,101,108,115,101,13,10,32,32,32,32,32,32,32,32,108,111,
+99,97,108,32,99,32,61,32,115,116,114,105,110,103,46,99,104,97,114,40,
+120,41,13,10,32,32,32,32,32,32,32,32,105,102,32,110,111,116,32,101,
+115,99,97,112,101,95,99,104,97,114,115,91,99,93,32,116,104,101,110,13,
+10,32,32,32,32,32,32,32,32,32,32,100,101,99,111,100,101,95,101,114,
+114,111,114,40,115,116,114,44,32,106,44,32,34,105,110,118,97,108,105,100,
+32,101,115,99,97,112,101,32,99,104,97,114,32,39,34,32,46,46,32,99,
+32,46,46,32,34,39,32,105,110,32,115,116,114,105,110,103,34,41,13,10,
+32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,32,
+32,104,97,115,95,101,115,99,97,112,101,32,61,32,116,114,117,101,13,10,
+32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,108,97,115,
+116,32,61,32,110,105,108,13,10,13,10,32,32,32,32,101,108,115,101,105,
+102,32,120,32,61,61,32,51,52,32,116,104,101,110,32,45,45,32,39,34,
+39,32,40,101,110,100,32,111,102,32,115,116,114,105,110,103,41,13,10,32,
+32,32,32,32,32,108,111,99,97,108,32,115,32,61,32,115,116,114,58,115,
+117,98,40,105,32,43,32,49,44,32,106,32,45,32,49,41,13,10,32,32,
+32,32,32,32,105,102,32,104,97,115,95,115,117,114,114,111,103,97,116,101,
+95,101,115,99,97,112,101,32,116,104,101,110,13,10,32,32,32,32,32,32,
+32,32,115,32,61,32,115,58,103,115,117,98,40,34,92,92,117,91,100,68,
+93,91,56,57,97,65,98,66,93,46,46,92,92,117,46,46,46,46,34,44,
+32,112,97,114,115,101,95,117,110,105,99,111,100,101,95,101,115,99,97,112,
+101,41,13,10,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,32,
+32,105,102,32,104,97,115,95,117,110,105,99,111,100,101,95,101,115,99,97,
+112,101,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,115,32,61,
+32,115,58,103,115,117,98,40,34,92,92,117,46,46,46,46,34,44,32,112,
97,114,115,101,95,117,110,105,99,111,100,101,95,101,115,99,97,112,101,41,
-13,10,32,32,32,32,32,32,32,32,32,32,32,32,101,110,100,13,10,32,
-32,32,32,32,32,32,32,32,32,32,32,105,102,32,104,97,115,95,117,110,
-105,99,111,100,101,95,101,115,99,97,112,101,32,116,104,101,110,13,10,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,32,61,32,115,
-58,103,115,117,98,40,34,92,92,117,46,46,46,46,34,44,32,112,97,114,
-115,101,95,117,110,105,99,111,100,101,95,101,115,99,97,112,101,41,13,10,
-32,32,32,32,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,
-32,32,32,32,32,32,32,32,32,105,102,32,104,97,115,95,101,115,99,97,
-112,101,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,32,32,32,
-32,32,32,32,32,115,32,61,32,115,58,103,115,117,98,40,34,92,92,46,
-34,44,32,101,115,99,97,112,101,95,99,104,97,114,95,109,97,112,95,105,
-110,118,41,13,10,32,32,32,32,32,32,32,32,32,32,32,32,101,110,100,
-13,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,
-32,115,44,32,106,32,43,32,49,13,10,13,10,32,32,32,32,32,32,32,
-32,101,108,115,101,13,10,32,32,32,32,32,32,32,32,32,32,32,32,108,
-97,115,116,32,61,32,120,13,10,32,32,32,32,32,32,32,32,101,110,100,
-13,10,32,32,32,32,101,110,100,13,10,32,32,32,32,100,101,99,111,100,
-101,95,101,114,114,111,114,40,115,116,114,44,32,105,44,32,34,101,120,112,
-101,99,116,101,100,32,99,108,111,115,105,110,103,32,113,117,111,116,101,32,
-102,111,114,32,115,116,114,105,110,103,34,41,13,10,101,110,100,13,10,13,
-10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,112,97,
-114,115,101,95,110,117,109,98,101,114,40,115,116,114,44,32,105,41,13,10,
-32,32,32,32,108,111,99,97,108,32,120,32,61,32,110,101,120,116,95,99,
-104,97,114,40,115,116,114,44,32,105,44,32,100,101,108,105,109,95,99,104,
-97,114,115,41,13,10,32,32,32,32,108,111,99,97,108,32,115,32,61,32,
-115,116,114,58,115,117,98,40,105,44,32,120,32,45,32,49,41,13,10,32,
-32,32,32,108,111,99,97,108,32,110,32,61,32,116,111,110,117,109,98,101,
-114,40,115,41,13,10,32,32,32,32,105,102,32,110,111,116,32,110,32,116,
-104,101,110,13,10,32,32,32,32,32,32,32,32,100,101,99,111,100,101,95,
+13,10,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,105,
+102,32,104,97,115,95,101,115,99,97,112,101,32,116,104,101,110,13,10,32,
+32,32,32,32,32,32,32,115,32,61,32,115,58,103,115,117,98,40,34,92,
+92,46,34,44,32,101,115,99,97,112,101,95,99,104,97,114,95,109,97,112,
+95,105,110,118,41,13,10,32,32,32,32,32,32,101,110,100,13,10,32,32,
+32,32,32,32,114,101,116,117,114,110,32,115,44,32,106,32,43,32,49,13,
+10,13,10,32,32,32,32,101,108,115,101,13,10,32,32,32,32,32,32,108,
+97,115,116,32,61,32,120,13,10,32,32,32,32,101,110,100,13,10,32,32,
+101,110,100,13,10,32,32,100,101,99,111,100,101,95,101,114,114,111,114,40,
+115,116,114,44,32,105,44,32,34,101,120,112,101,99,116,101,100,32,99,108,
+111,115,105,110,103,32,113,117,111,116,101,32,102,111,114,32,115,116,114,105,
+110,103,34,41,13,10,101,110,100,13,10,13,10,13,10,108,111,99,97,108,
+32,102,117,110,99,116,105,111,110,32,112,97,114,115,101,95,110,117,109,98,
+101,114,40,115,116,114,44,32,105,41,13,10,32,32,108,111,99,97,108,32,
+120,32,61,32,110,101,120,116,95,99,104,97,114,40,115,116,114,44,32,105,
+44,32,100,101,108,105,109,95,99,104,97,114,115,41,13,10,32,32,108,111,
+99,97,108,32,115,32,61,32,115,116,114,58,115,117,98,40,105,44,32,120,
+32,45,32,49,41,13,10,32,32,108,111,99,97,108,32,110,32,61,32,116,
+111,110,117,109,98,101,114,40,115,41,13,10,32,32,105,102,32,110,111,116,
+32,110,32,116,104,101,110,13,10,32,32,32,32,100,101,99,111,100,101,95,
101,114,114,111,114,40,115,116,114,44,32,105,44,32,34,105,110,118,97,108,
105,100,32,110,117,109,98,101,114,32,39,34,32,46,46,32,115,32,46,46,
-32,34,39,34,41,13,10,32,32,32,32,101,110,100,13,10,32,32,32,32,
-114,101,116,117,114,110,32,110,44,32,120,13,10,101,110,100,13,10,13,10,
-13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,112,97,114,
-115,101,95,108,105,116,101,114,97,108,40,115,116,114,44,32,105,41,13,10,
-32,32,32,32,108,111,99,97,108,32,120,32,61,32,110,101,120,116,95,99,
-104,97,114,40,115,116,114,44,32,105,44,32,100,101,108,105,109,95,99,104,
-97,114,115,41,13,10,32,32,32,32,108,111,99,97,108,32,119,111,114,100,
-32,61,32,115,116,114,58,115,117,98,40,105,44,32,120,32,45,32,49,41,
-13,10,32,32,32,32,105,102,32,110,111,116,32,108,105,116,101,114,97,108,
-115,91,119,111,114,100,93,32,116,104,101,110,13,10,32,32,32,32,32,32,
-32,32,100,101,99,111,100,101,95,101,114,114,111,114,40,115,116,114,44,32,
-105,44,32,34,105,110,118,97,108,105,100,32,108,105,116,101,114,97,108,32,
-39,34,32,46,46,32,119,111,114,100,32,46,46,32,34,39,34,41,13,10,
-32,32,32,32,101,110,100,13,10,32,32,32,32,114,101,116,117,114,110,32,
-108,105,116,101,114,97,108,95,109,97,112,91,119,111,114,100,93,44,32,120,
-13,10,101,110,100,13,10,13,10,13,10,108,111,99,97,108,32,102,117,110,
-99,116,105,111,110,32,112,97,114,115,101,95,97,114,114,97,121,40,115,116,
-114,44,32,105,41,13,10,32,32,32,32,108,111,99,97,108,32,114,101,115,
-32,61,32,123,125,13,10,32,32,32,32,108,111,99,97,108,32,110,32,61,
-32,49,13,10,32,32,32,32,105,32,61,32,105,32,43,32,49,13,10,32,
-32,32,32,119,104,105,108,101,32,49,32,100,111,13,10,32,32,32,32,32,
-32,32,32,108,111,99,97,108,32,120,13,10,32,32,32,32,32,32,32,32,
-105,32,61,32,110,101,120,116,95,99,104,97,114,40,115,116,114,44,32,105,
-44,32,115,112,97,99,101,95,99,104,97,114,115,44,32,116,114,117,101,41,
-13,10,32,32,32,32,32,32,32,32,45,45,32,69,109,112,116,121,32,47,
-32,101,110,100,32,111,102,32,97,114,114,97,121,63,13,10,32,32,32,32,
-32,32,32,32,105,102,32,115,116,114,58,115,117,98,40,105,44,32,105,41,
-32,61,61,32,34,93,34,32,116,104,101,110,13,10,32,32,32,32,32,32,
-32,32,32,32,32,32,105,32,61,32,105,32,43,32,49,13,10,32,32,32,
-32,32,32,32,32,32,32,32,32,98,114,101,97,107,13,10,32,32,32,32,
-32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,32,32,45,45,32,
-82,101,97,100,32,116,111,107,101,110,13,10,32,32,32,32,32,32,32,32,
-120,44,32,105,32,61,32,112,97,114,115,101,40,115,116,114,44,32,105,41,
-13,10,32,32,32,32,32,32,32,32,114,101,115,91,110,93,32,61,32,120,
-13,10,32,32,32,32,32,32,32,32,110,32,61,32,110,32,43,32,49,13,
-10,32,32,32,32,32,32,32,32,45,45,32,78,101,120,116,32,116,111,107,
-101,110,13,10,32,32,32,32,32,32,32,32,105,32,61,32,110,101,120,116,
-95,99,104,97,114,40,115,116,114,44,32,105,44,32,115,112,97,99,101,95,
-99,104,97,114,115,44,32,116,114,117,101,41,13,10,32,32,32,32,32,32,
-32,32,108,111,99,97,108,32,99,104,114,32,61,32,115,116,114,58,115,117,
-98,40,105,44,32,105,41,13,10,32,32,32,32,32,32,32,32,105,32,61,
-32,105,32,43,32,49,13,10,32,32,32,32,32,32,32,32,105,102,32,99,
-104,114,32,61,61,32,34,93,34,32,116,104,101,110,32,98,114,101,97,107,
-32,101,110,100,13,10,32,32,32,32,32,32,32,32,105,102,32,99,104,114,
-32,126,61,32,34,44,34,32,116,104,101,110,32,100,101,99,111,100,101,95,
-101,114,114,111,114,40,115,116,114,44,32,105,44,32,34,101,120,112,101,99,
-116,101,100,32,39,93,39,32,111,114,32,39,44,39,34,41,32,101,110,100,
-13,10,32,32,32,32,101,110,100,13,10,32,32,32,32,114,101,116,117,114,
-110,32,114,101,115,44,32,105,13,10,101,110,100,13,10,13,10,13,10,108,
-111,99,97,108,32,102,117,110,99,116,105,111,110,32,112,97,114,115,101,95,
-111,98,106,101,99,116,40,115,116,114,44,32,105,41,13,10,32,32,32,32,
-108,111,99,97,108,32,114,101,115,32,61,32,123,125,13,10,32,32,32,32,
-105,32,61,32,105,32,43,32,49,13,10,32,32,32,32,119,104,105,108,101,
-32,49,32,100,111,13,10,32,32,32,32,32,32,32,32,108,111,99,97,108,
-32,107,101,121,44,32,118,97,108,13,10,32,32,32,32,32,32,32,32,105,
-32,61,32,110,101,120,116,95,99,104,97,114,40,115,116,114,44,32,105,44,
-32,115,112,97,99,101,95,99,104,97,114,115,44,32,116,114,117,101,41,13,
-10,32,32,32,32,32,32,32,32,45,45,32,69,109,112,116,121,32,47,32,
+32,34,39,34,41,13,10,32,32,101,110,100,13,10,32,32,114,101,116,117,
+114,110,32,110,44,32,120,13,10,101,110,100,13,10,13,10,13,10,108,111,
+99,97,108,32,102,117,110,99,116,105,111,110,32,112,97,114,115,101,95,108,
+105,116,101,114,97,108,40,115,116,114,44,32,105,41,13,10,32,32,108,111,
+99,97,108,32,120,32,61,32,110,101,120,116,95,99,104,97,114,40,115,116,
+114,44,32,105,44,32,100,101,108,105,109,95,99,104,97,114,115,41,13,10,
+32,32,108,111,99,97,108,32,119,111,114,100,32,61,32,115,116,114,58,115,
+117,98,40,105,44,32,120,32,45,32,49,41,13,10,32,32,105,102,32,110,
+111,116,32,108,105,116,101,114,97,108,115,91,119,111,114,100,93,32,116,104,
+101,110,13,10,32,32,32,32,100,101,99,111,100,101,95,101,114,114,111,114,
+40,115,116,114,44,32,105,44,32,34,105,110,118,97,108,105,100,32,108,105,
+116,101,114,97,108,32,39,34,32,46,46,32,119,111,114,100,32,46,46,32,
+34,39,34,41,13,10,32,32,101,110,100,13,10,32,32,114,101,116,117,114,
+110,32,108,105,116,101,114,97,108,95,109,97,112,91,119,111,114,100,93,44,
+32,120,13,10,101,110,100,13,10,13,10,13,10,108,111,99,97,108,32,102,
+117,110,99,116,105,111,110,32,112,97,114,115,101,95,97,114,114,97,121,40,
+115,116,114,44,32,105,41,13,10,32,32,108,111,99,97,108,32,114,101,115,
+32,61,32,123,125,13,10,32,32,108,111,99,97,108,32,110,32,61,32,49,
+13,10,32,32,105,32,61,32,105,32,43,32,49,13,10,32,32,119,104,105,
+108,101,32,49,32,100,111,13,10,32,32,32,32,108,111,99,97,108,32,120,
+13,10,32,32,32,32,105,32,61,32,110,101,120,116,95,99,104,97,114,40,
+115,116,114,44,32,105,44,32,115,112,97,99,101,95,99,104,97,114,115,44,
+32,116,114,117,101,41,13,10,32,32,32,32,45,45,32,69,109,112,116,121,
+32,47,32,101,110,100,32,111,102,32,97,114,114,97,121,63,13,10,32,32,
+32,32,105,102,32,115,116,114,58,115,117,98,40,105,44,32,105,41,32,61,
+61,32,34,93,34,32,116,104,101,110,13,10,32,32,32,32,32,32,105,32,
+61,32,105,32,43,32,49,13,10,32,32,32,32,32,32,98,114,101,97,107,
+13,10,32,32,32,32,101,110,100,13,10,32,32,32,32,45,45,32,82,101,
+97,100,32,116,111,107,101,110,13,10,32,32,32,32,120,44,32,105,32,61,
+32,112,97,114,115,101,40,115,116,114,44,32,105,41,13,10,32,32,32,32,
+114,101,115,91,110,93,32,61,32,120,13,10,32,32,32,32,110,32,61,32,
+110,32,43,32,49,13,10,32,32,32,32,45,45,32,78,101,120,116,32,116,
+111,107,101,110,13,10,32,32,32,32,105,32,61,32,110,101,120,116,95,99,
+104,97,114,40,115,116,114,44,32,105,44,32,115,112,97,99,101,95,99,104,
+97,114,115,44,32,116,114,117,101,41,13,10,32,32,32,32,108,111,99,97,
+108,32,99,104,114,32,61,32,115,116,114,58,115,117,98,40,105,44,32,105,
+41,13,10,32,32,32,32,105,32,61,32,105,32,43,32,49,13,10,32,32,
+32,32,105,102,32,99,104,114,32,61,61,32,34,93,34,32,116,104,101,110,
+32,98,114,101,97,107,32,101,110,100,13,10,32,32,32,32,105,102,32,99,
+104,114,32,126,61,32,34,44,34,32,116,104,101,110,32,100,101,99,111,100,
+101,95,101,114,114,111,114,40,115,116,114,44,32,105,44,32,34,101,120,112,
+101,99,116,101,100,32,39,93,39,32,111,114,32,39,44,39,34,41,32,101,
+110,100,13,10,32,32,101,110,100,13,10,32,32,114,101,116,117,114,110,32,
+114,101,115,44,32,105,13,10,101,110,100,13,10,13,10,13,10,108,111,99,
+97,108,32,102,117,110,99,116,105,111,110,32,112,97,114,115,101,95,111,98,
+106,101,99,116,40,115,116,114,44,32,105,41,13,10,32,32,108,111,99,97,
+108,32,114,101,115,32,61,32,123,125,13,10,32,32,105,32,61,32,105,32,
+43,32,49,13,10,32,32,119,104,105,108,101,32,49,32,100,111,13,10,32,
+32,32,32,108,111,99,97,108,32,107,101,121,44,32,118,97,108,13,10,32,
+32,32,32,105,32,61,32,110,101,120,116,95,99,104,97,114,40,115,116,114,
+44,32,105,44,32,115,112,97,99,101,95,99,104,97,114,115,44,32,116,114,
+117,101,41,13,10,32,32,32,32,45,45,32,69,109,112,116,121,32,47,32,
101,110,100,32,111,102,32,111,98,106,101,99,116,63,13,10,32,32,32,32,
-32,32,32,32,105,102,32,115,116,114,58,115,117,98,40,105,44,32,105,41,
-32,61,61,32,34,125,34,32,116,104,101,110,13,10,32,32,32,32,32,32,
-32,32,32,32,32,32,105,32,61,32,105,32,43,32,49,13,10,32,32,32,
-32,32,32,32,32,32,32,32,32,98,114,101,97,107,13,10,32,32,32,32,
-32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,32,32,45,45,32,
-82,101,97,100,32,107,101,121,13,10,32,32,32,32,32,32,32,32,105,102,
-32,115,116,114,58,115,117,98,40,105,44,32,105,41,32,126,61,32,39,34,
-39,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,32,32,32,32,
-100,101,99,111,100,101,95,101,114,114,111,114,40,115,116,114,44,32,105,44,
-32,34,101,120,112,101,99,116,101,100,32,115,116,114,105,110,103,32,102,111,
-114,32,107,101,121,34,41,13,10,32,32,32,32,32,32,32,32,101,110,100,
-13,10,32,32,32,32,32,32,32,32,107,101,121,44,32,105,32,61,32,112,
-97,114,115,101,40,115,116,114,44,32,105,41,13,10,32,32,32,32,32,32,
-32,32,45,45,32,82,101,97,100,32,39,58,39,32,100,101,108,105,109,105,
-116,101,114,13,10,32,32,32,32,32,32,32,32,105,32,61,32,110,101,120,
-116,95,99,104,97,114,40,115,116,114,44,32,105,44,32,115,112,97,99,101,
-95,99,104,97,114,115,44,32,116,114,117,101,41,13,10,32,32,32,32,32,
-32,32,32,105,102,32,115,116,114,58,115,117,98,40,105,44,32,105,41,32,
-126,61,32,34,58,34,32,116,104,101,110,13,10,32,32,32,32,32,32,32,
+105,102,32,115,116,114,58,115,117,98,40,105,44,32,105,41,32,61,61,32,
+34,125,34,32,116,104,101,110,13,10,32,32,32,32,32,32,105,32,61,32,
+105,32,43,32,49,13,10,32,32,32,32,32,32,98,114,101,97,107,13,10,
+32,32,32,32,101,110,100,13,10,32,32,32,32,45,45,32,82,101,97,100,
+32,107,101,121,13,10,32,32,32,32,105,102,32,115,116,114,58,115,117,98,
+40,105,44,32,105,41,32,126,61,32,39,34,39,32,116,104,101,110,13,10,
+32,32,32,32,32,32,100,101,99,111,100,101,95,101,114,114,111,114,40,115,
+116,114,44,32,105,44,32,34,101,120,112,101,99,116,101,100,32,115,116,114,
+105,110,103,32,102,111,114,32,107,101,121,34,41,13,10,32,32,32,32,101,
+110,100,13,10,32,32,32,32,107,101,121,44,32,105,32,61,32,112,97,114,
+115,101,40,115,116,114,44,32,105,41,13,10,32,32,32,32,45,45,32,82,
+101,97,100,32,39,58,39,32,100,101,108,105,109,105,116,101,114,13,10,32,
+32,32,32,105,32,61,32,110,101,120,116,95,99,104,97,114,40,115,116,114,
+44,32,105,44,32,115,112,97,99,101,95,99,104,97,114,115,44,32,116,114,
+117,101,41,13,10,32,32,32,32,105,102,32,115,116,114,58,115,117,98,40,
+105,44,32,105,41,32,126,61,32,34,58,34,32,116,104,101,110,13,10,32,
32,32,32,32,32,100,101,99,111,100,101,95,101,114,114,111,114,40,115,116,
114,44,32,105,44,32,34,101,120,112,101,99,116,101,100,32,39,58,39,32,
-97,102,116,101,114,32,107,101,121,34,41,13,10,32,32,32,32,32,32,32,
-32,101,110,100,13,10,32,32,32,32,32,32,32,32,105,32,61,32,110,101,
-120,116,95,99,104,97,114,40,115,116,114,44,32,105,32,43,32,49,44,32,
-115,112,97,99,101,95,99,104,97,114,115,44,32,116,114,117,101,41,13,10,
-32,32,32,32,32,32,32,32,45,45,32,82,101,97,100,32,118,97,108,117,
-101,13,10,32,32,32,32,32,32,32,32,118,97,108,44,32,105,32,61,32,
-112,97,114,115,101,40,115,116,114,44,32,105,41,13,10,32,32,32,32,32,
-32,32,32,45,45,32,83,101,116,13,10,32,32,32,32,32,32,32,32,114,
-101,115,91,107,101,121,93,32,61,32,118,97,108,13,10,32,32,32,32,32,
-32,32,32,45,45,32,78,101,120,116,32,116,111,107,101,110,13,10,32,32,
-32,32,32,32,32,32,105,32,61,32,110,101,120,116,95,99,104,97,114,40,
-115,116,114,44,32,105,44,32,115,112,97,99,101,95,99,104,97,114,115,44,
-32,116,114,117,101,41,13,10,32,32,32,32,32,32,32,32,108,111,99,97,
-108,32,99,104,114,32,61,32,115,116,114,58,115,117,98,40,105,44,32,105,
-41,13,10,32,32,32,32,32,32,32,32,105,32,61,32,105,32,43,32,49,
-13,10,32,32,32,32,32,32,32,32,105,102,32,99,104,114,32,61,61,32,
-34,125,34,32,116,104,101,110,32,98,114,101,97,107,32,101,110,100,13,10,
-32,32,32,32,32,32,32,32,105,102,32,99,104,114,32,126,61,32,34,44,
-34,32,116,104,101,110,32,100,101,99,111,100,101,95,101,114,114,111,114,40,
-115,116,114,44,32,105,44,32,34,101,120,112,101,99,116,101,100,32,39,125,
-39,32,111,114,32,39,44,39,34,41,32,101,110,100,13,10,32,32,32,32,
-101,110,100,13,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,44,
-32,105,13,10,101,110,100,13,10,13,10,13,10,108,111,99,97,108,32,99,
-104,97,114,95,102,117,110,99,95,109,97,112,32,61,32,123,13,10,32,32,
-32,32,91,32,39,34,39,32,93,32,61,32,112,97,114,115,101,95,115,116,
-114,105,110,103,44,13,10,32,32,32,32,91,32,34,48,34,32,93,32,61,
-32,112,97,114,115,101,95,110,117,109,98,101,114,44,13,10,32,32,32,32,
-91,32,34,49,34,32,93,32,61,32,112,97,114,115,101,95,110,117,109,98,
-101,114,44,13,10,32,32,32,32,91,32,34,50,34,32,93,32,61,32,112,
-97,114,115,101,95,110,117,109,98,101,114,44,13,10,32,32,32,32,91,32,
-34,51,34,32,93,32,61,32,112,97,114,115,101,95,110,117,109,98,101,114,
-44,13,10,32,32,32,32,91,32,34,52,34,32,93,32,61,32,112,97,114,
-115,101,95,110,117,109,98,101,114,44,13,10,32,32,32,32,91,32,34,53,
+97,102,116,101,114,32,107,101,121,34,41,13,10,32,32,32,32,101,110,100,
+13,10,32,32,32,32,105,32,61,32,110,101,120,116,95,99,104,97,114,40,
+115,116,114,44,32,105,32,43,32,49,44,32,115,112,97,99,101,95,99,104,
+97,114,115,44,32,116,114,117,101,41,13,10,32,32,32,32,45,45,32,82,
+101,97,100,32,118,97,108,117,101,13,10,32,32,32,32,118,97,108,44,32,
+105,32,61,32,112,97,114,115,101,40,115,116,114,44,32,105,41,13,10,32,
+32,32,32,45,45,32,83,101,116,13,10,32,32,32,32,114,101,115,91,107,
+101,121,93,32,61,32,118,97,108,13,10,32,32,32,32,45,45,32,78,101,
+120,116,32,116,111,107,101,110,13,10,32,32,32,32,105,32,61,32,110,101,
+120,116,95,99,104,97,114,40,115,116,114,44,32,105,44,32,115,112,97,99,
+101,95,99,104,97,114,115,44,32,116,114,117,101,41,13,10,32,32,32,32,
+108,111,99,97,108,32,99,104,114,32,61,32,115,116,114,58,115,117,98,40,
+105,44,32,105,41,13,10,32,32,32,32,105,32,61,32,105,32,43,32,49,
+13,10,32,32,32,32,105,102,32,99,104,114,32,61,61,32,34,125,34,32,
+116,104,101,110,32,98,114,101,97,107,32,101,110,100,13,10,32,32,32,32,
+105,102,32,99,104,114,32,126,61,32,34,44,34,32,116,104,101,110,32,100,
+101,99,111,100,101,95,101,114,114,111,114,40,115,116,114,44,32,105,44,32,
+34,101,120,112,101,99,116,101,100,32,39,125,39,32,111,114,32,39,44,39,
+34,41,32,101,110,100,13,10,32,32,101,110,100,13,10,32,32,114,101,116,
+117,114,110,32,114,101,115,44,32,105,13,10,101,110,100,13,10,13,10,13,
+10,108,111,99,97,108,32,99,104,97,114,95,102,117,110,99,95,109,97,112,
+32,61,32,123,13,10,32,32,91,32,39,34,39,32,93,32,61,32,112,97,
+114,115,101,95,115,116,114,105,110,103,44,13,10,32,32,91,32,34,48,34,
+32,93,32,61,32,112,97,114,115,101,95,110,117,109,98,101,114,44,13,10,
+32,32,91,32,34,49,34,32,93,32,61,32,112,97,114,115,101,95,110,117,
+109,98,101,114,44,13,10,32,32,91,32,34,50,34,32,93,32,61,32,112,
+97,114,115,101,95,110,117,109,98,101,114,44,13,10,32,32,91,32,34,51,
34,32,93,32,61,32,112,97,114,115,101,95,110,117,109,98,101,114,44,13,
-10,32,32,32,32,91,32,34,54,34,32,93,32,61,32,112,97,114,115,101,
-95,110,117,109,98,101,114,44,13,10,32,32,32,32,91,32,34,55,34,32,
-93,32,61,32,112,97,114,115,101,95,110,117,109,98,101,114,44,13,10,32,
-32,32,32,91,32,34,56,34,32,93,32,61,32,112,97,114,115,101,95,110,
-117,109,98,101,114,44,13,10,32,32,32,32,91,32,34,57,34,32,93,32,
-61,32,112,97,114,115,101,95,110,117,109,98,101,114,44,13,10,32,32,32,
-32,91,32,34,45,34,32,93,32,61,32,112,97,114,115,101,95,110,117,109,
-98,101,114,44,13,10,32,32,32,32,91,32,34,116,34,32,93,32,61,32,
-112,97,114,115,101,95,108,105,116,101,114,97,108,44,13,10,32,32,32,32,
+10,32,32,91,32,34,52,34,32,93,32,61,32,112,97,114,115,101,95,110,
+117,109,98,101,114,44,13,10,32,32,91,32,34,53,34,32,93,32,61,32,
+112,97,114,115,101,95,110,117,109,98,101,114,44,13,10,32,32,91,32,34,
+54,34,32,93,32,61,32,112,97,114,115,101,95,110,117,109,98,101,114,44,
+13,10,32,32,91,32,34,55,34,32,93,32,61,32,112,97,114,115,101,95,
+110,117,109,98,101,114,44,13,10,32,32,91,32,34,56,34,32,93,32,61,
+32,112,97,114,115,101,95,110,117,109,98,101,114,44,13,10,32,32,91,32,
+34,57,34,32,93,32,61,32,112,97,114,115,101,95,110,117,109,98,101,114,
+44,13,10,32,32,91,32,34,45,34,32,93,32,61,32,112,97,114,115,101,
+95,110,117,109,98,101,114,44,13,10,32,32,91,32,34,116,34,32,93,32,
+61,32,112,97,114,115,101,95,108,105,116,101,114,97,108,44,13,10,32,32,
91,32,34,102,34,32,93,32,61,32,112,97,114,115,101,95,108,105,116,101,
-114,97,108,44,13,10,32,32,32,32,91,32,34,110,34,32,93,32,61,32,
-112,97,114,115,101,95,108,105,116,101,114,97,108,44,13,10,32,32,32,32,
-91,32,34,91,34,32,93,32,61,32,112,97,114,115,101,95,97,114,114,97,
-121,44,13,10,32,32,32,32,91,32,34,123,34,32,93,32,61,32,112,97,
-114,115,101,95,111,98,106,101,99,116,44,13,10,125,13,10,13,10,13,10,
-112,97,114,115,101,32,61,32,102,117,110,99,116,105,111,110,40,115,116,114,
-44,32,105,100,120,41,13,10,32,32,32,32,108,111,99,97,108,32,99,104,
-114,32,61,32,115,116,114,58,115,117,98,40,105,100,120,44,32,105,100,120,
-41,13,10,32,32,32,32,108,111,99,97,108,32,102,32,61,32,99,104,97,
-114,95,102,117,110,99,95,109,97,112,91,99,104,114,93,13,10,32,32,32,
-32,105,102,32,102,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,
-114,101,116,117,114,110,32,102,40,115,116,114,44,32,105,100,120,41,13,10,
-32,32,32,32,101,110,100,13,10,32,32,32,32,100,101,99,111,100,101,95,
+114,97,108,44,13,10,32,32,91,32,34,110,34,32,93,32,61,32,112,97,
+114,115,101,95,108,105,116,101,114,97,108,44,13,10,32,32,91,32,34,91,
+34,32,93,32,61,32,112,97,114,115,101,95,97,114,114,97,121,44,13,10,
+32,32,91,32,34,123,34,32,93,32,61,32,112,97,114,115,101,95,111,98,
+106,101,99,116,44,13,10,125,13,10,13,10,13,10,112,97,114,115,101,32,
+61,32,102,117,110,99,116,105,111,110,40,115,116,114,44,32,105,100,120,41,
+13,10,32,32,108,111,99,97,108,32,99,104,114,32,61,32,115,116,114,58,
+115,117,98,40,105,100,120,44,32,105,100,120,41,13,10,32,32,108,111,99,
+97,108,32,102,32,61,32,99,104,97,114,95,102,117,110,99,95,109,97,112,
+91,99,104,114,93,13,10,32,32,105,102,32,102,32,116,104,101,110,13,10,
+32,32,32,32,114,101,116,117,114,110,32,102,40,115,116,114,44,32,105,100,
+120,41,13,10,32,32,101,110,100,13,10,32,32,100,101,99,111,100,101,95,
101,114,114,111,114,40,115,116,114,44,32,105,100,120,44,32,34,117,110,101,
120,112,101,99,116,101,100,32,99,104,97,114,97,99,116,101,114,32,39,34,
32,46,46,32,99,104,114,32,46,46,32,34,39,34,41,13,10,101,110,100,
13,10,13,10,13,10,102,117,110,99,116,105,111,110,32,106,115,111,110,46,
-100,101,99,111,100,101,40,115,116,114,41,13,10,32,32,32,32,105,102,32,
-116,121,112,101,40,115,116,114,41,32,126,61,32,34,115,116,114,105,110,103,
-34,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,101,114,114,111,
-114,40,34,101,120,112,101,99,116,101,100,32,97,114,103,117,109,101,110,116,
-32,111,102,32,116,121,112,101,32,115,116,114,105,110,103,44,32,103,111,116,
-32,34,32,46,46,32,116,121,112,101,40,115,116,114,41,41,13,10,32,32,
-32,32,101,110,100,13,10,32,32,32,32,108,111,99,97,108,32,114,101,115,
-44,32,105,100,120,32,61,32,112,97,114,115,101,40,115,116,114,44,32,110,
-101,120,116,95,99,104,97,114,40,115,116,114,44,32,49,44,32,115,112,97,
-99,101,95,99,104,97,114,115,44,32,116,114,117,101,41,41,13,10,32,32,
-32,32,105,100,120,32,61,32,110,101,120,116,95,99,104,97,114,40,115,116,
-114,44,32,105,100,120,44,32,115,112,97,99,101,95,99,104,97,114,115,44,
-32,116,114,117,101,41,13,10,32,32,32,32,105,102,32,105,100,120,32,60,
-61,32,35,115,116,114,32,116,104,101,110,13,10,32,32,32,32,32,32,32,
-32,100,101,99,111,100,101,95,101,114,114,111,114,40,115,116,114,44,32,105,
-100,120,44,32,34,116,114,97,105,108,105,110,103,32,103,97,114,98,97,103,
-101,34,41,13,10,32,32,32,32,101,110,100,13,10,32,32,32,32,114,101,
-116,117,114,110,32,114,101,115,13,10,101,110,100,13,10,13,10,45,45,45,
+100,101,99,111,100,101,40,115,116,114,41,13,10,32,32,105,102,32,116,121,
+112,101,40,115,116,114,41,32,126,61,32,34,115,116,114,105,110,103,34,32,
+116,104,101,110,13,10,32,32,32,32,101,114,114,111,114,40,34,101,120,112,
+101,99,116,101,100,32,97,114,103,117,109,101,110,116,32,111,102,32,116,121,
+112,101,32,115,116,114,105,110,103,44,32,103,111,116,32,34,32,46,46,32,
+116,121,112,101,40,115,116,114,41,41,13,10,32,32,101,110,100,13,10,32,
+32,108,111,99,97,108,32,114,101,115,44,32,105,100,120,32,61,32,112,97,
+114,115,101,40,115,116,114,44,32,110,101,120,116,95,99,104,97,114,40,115,
+116,114,44,32,49,44,32,115,112,97,99,101,95,99,104,97,114,115,44,32,
+116,114,117,101,41,41,13,10,32,32,105,100,120,32,61,32,110,101,120,116,
+95,99,104,97,114,40,115,116,114,44,32,105,100,120,44,32,115,112,97,99,
+101,95,99,104,97,114,115,44,32,116,114,117,101,41,13,10,32,32,105,102,
+32,105,100,120,32,60,61,32,35,115,116,114,32,116,104,101,110,13,10,32,
+32,32,32,100,101,99,111,100,101,95,101,114,114,111,114,40,115,116,114,44,
+32,105,100,120,44,32,34,116,114,97,105,108,105,110,103,32,103,97,114,98,
+97,103,101,34,41,13,10,32,32,101,110,100,13,10,32,32,114,101,116,117,
+114,110,32,114,101,115,13,10,101,110,100,13,10,13,10,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,13,10,45,45,32,69,120,112,111,
-114,116,32,116,111,32,74,105,110,46,13,10,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,13,10,45,45,32,69,120,112,111,114,116,
+32,116,111,32,74,105,110,46,13,10,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,13,10,13,10,106,105,110,46,117,116,105,108,115,46,
-106,115,111,110,32,61,32,106,115,111,110,13,10,0
+45,45,45,45,13,10,13,10,106,105,110,46,117,116,105,108,115,46,106,115,
+111,110,32,61,32,106,115,111,110,13,10,0
};
diff --git a/src/libjin-lua/scripts/utils/xml.lua b/src/libjin-lua/scripts/utils/xml.lua
index 9f10b17..bdd8d51 100644
--- a/src/libjin-lua/scripts/utils/xml.lua
+++ b/src/libjin-lua/scripts/utils/xml.lua
@@ -8,147 +8,147 @@ jin.utils = jin.utils or {}
local XmlParser = {}
function XmlParser.toXmlString(value)
- value = string.gsub(value, "&", "&amp;"); -- '&' -> "&amp;"
- value = string.gsub(value, "<", "&lt;"); -- '<' -> "&lt;"
- value = string.gsub(value, ">", "&gt;"); -- '>' -> "&gt;"
- value = string.gsub(value, "\"", "&quot;"); -- '"' -> "&quot;"
- value = string.gsub(value, "([^%w%&%;%p%\t% ])",
- function(c)
- return string.format("&#x%X;", string.byte(c))
- end);
- return value;
+ value = string.gsub(value, "&", "&amp;"); -- '&' -> "&amp;"
+ value = string.gsub(value, "<", "&lt;"); -- '<' -> "&lt;"
+ value = string.gsub(value, ">", "&gt;"); -- '>' -> "&gt;"
+ value = string.gsub(value, "\"", "&quot;"); -- '"' -> "&quot;"
+ value = string.gsub(value, "([^%w%&%;%p%\t% ])",
+ function(c)
+ return string.format("&#x%X;", string.byte(c))
+ end);
+ return value;
end
function XmlParser.fromXmlString(value)
- value = string.gsub(value, "&#x([%x]+)%;",
- function(h)
- return string.char(tonumber(h, 16))
- end);
- value = string.gsub(value, "&#([0-9]+)%;",
- function(h)
- return string.char(tonumber(h, 10))
- end);
- value = string.gsub(value, "&quot;", "\"");
- value = string.gsub(value, "&apos;", "'");
- value = string.gsub(value, "&gt;", ">");
- value = string.gsub(value, "&lt;", "<");
- value = string.gsub(value, "&amp;", "&");
- return value;
+ value = string.gsub(value, "&#x([%x]+)%;",
+ function(h)
+ return string.char(tonumber(h, 16))
+ end);
+ value = string.gsub(value, "&#([0-9]+)%;",
+ function(h)
+ return string.char(tonumber(h, 10))
+ end);
+ value = string.gsub(value, "&quot;", "\"");
+ value = string.gsub(value, "&apos;", "'");
+ value = string.gsub(value, "&gt;", ">");
+ value = string.gsub(value, "&lt;", "<");
+ value = string.gsub(value, "&amp;", "&");
+ return value;
end
function XmlParser.parseArgs(node, s)
- string.gsub(s, "(%w+)=([\"'])(.-)%2", function(w, _, a)
- node:addProperty(w, XmlParser.fromXmlString(a))
- end)
+ string.gsub(s, "(%w+)=([\"'])(.-)%2", function(w, _, a)
+ node:addProperty(w, XmlParser.fromXmlString(a))
+ end)
end
-
+
local function newNode(name)
- local node = {}
- node.___value = nil
- node.___name = name
- node.___children = {}
- node.___props = {}
-
- function node:value() return self.___value end
- function node:setValue(val) self.___value = val end
- function node:name() return self.___name end
- function node:setName(name) self.___name = name end
- function node:children() return self.___children end
- function node:numChildren() return #self.___children end
- function node:addChild(child)
- if self[child:name()] ~= nil then
- if type(self[child:name()].name) == "function" then
- local tempTable = {}
- table.insert(tempTable, self[child:name()])
- self[child:name()] = tempTable
- end
- table.insert(self[child:name()], child)
- else
- self[child:name()] = child
- end
- table.insert(self.___children, child)
+ local node = {}
+ node.___value = nil
+ node.___name = name
+ node.___children = {}
+ node.___props = {}
+
+ function node:value() return self.___value end
+ function node:setValue(val) self.___value = val end
+ function node:name() return self.___name end
+ function node:setName(name) self.___name = name end
+ function node:children() return self.___children end
+ function node:numChildren() return #self.___children end
+ function node:addChild(child)
+ if self[child:name()] ~= nil then
+ if type(self[child:name()].name) == "function" then
+ local tempTable = {}
+ table.insert(tempTable, self[child:name()])
+ self[child:name()] = tempTable
+ end
+ table.insert(self[child:name()], child)
+ else
+ self[child:name()] = child
end
-
- function node:properties() return self.___props end
- function node:numProperties() return #self.___props end
- function node:addProperty(name, value)
- local lName = "@" .. name
- if self[lName] ~= nil then
- if type(self[lName]) == "string" then
- local tempTable = {}
- table.insert(tempTable, self[lName])
- self[lName] = tempTable
- end
- table.insert(self[lName], value)
- else
- self[lName] = value
- end
- table.insert(self.___props, { name = name, value = self[name] })
+ table.insert(self.___children, child)
+ end
+
+ function node:properties() return self.___props end
+ function node:numProperties() return #self.___props end
+ function node:addProperty(name, value)
+ local lName = "@" .. name
+ if self[lName] ~= nil then
+ if type(self[lName]) == "string" then
+ local tempTable = {}
+ table.insert(tempTable, self[lName])
+ self[lName] = tempTable
+ end
+ table.insert(self[lName], value)
+ else
+ self[lName] = value
end
+ table.insert(self.___props, { name = name, value = self[name] })
+ end
- return node
+ return node
end
function XmlParser.parseXmlText(xmlText)
- local stack = {}
- local top = newNode()
- table.insert(stack, top)
- local ni, c, label, xarg, empty
- local i, j = 1, 1
- while true do
- ni, j, c, label, xarg, empty = string.find(xmlText, "<(%/?)([%w_:]+)(.-)(%/?)>", i)
- if not ni then break end
- local text = string.sub(xmlText, i, ni - 1);
- if not string.find(text, "^%s*$") then
- local lVal = (top:value() or "") .. XmlParser.fromXmlString(text)
- stack[#stack]:setValue(lVal)
- end
- if empty == "/" then -- empty element tag
- local lNode = newNode(label)
- XmlParser.parseArgs(lNode, xarg)
- top:addChild(lNode)
- elseif c == "" then -- start tag
- local lNode = newNode(label)
- XmlParser.parseArgs(lNode, xarg)
- table.insert(stack, lNode)
- top = lNode
- else -- end tag
- local toclose = table.remove(stack) -- remove top
-
- top = stack[#stack]
- if #stack < 1 then
- error("XmlParser. nothing to close with " .. label)
- end
- if toclose:name() ~= label then
- error("XmlParser. trying to close " .. toclose.name .. " with " .. label)
- end
- top:addChild(toclose)
- end
- i = j + 1
+ local stack = {}
+ local top = newNode()
+ table.insert(stack, top)
+ local ni, c, label, xarg, empty
+ local i, j = 1, 1
+ while true do
+ ni, j, c, label, xarg, empty = string.find(xmlText, "<(%/?)([%w_:]+)(.-)(%/?)>", i)
+ if not ni then break end
+ local text = string.sub(xmlText, i, ni - 1);
+ if not string.find(text, "^%s*$") then
+ local lVal = (top:value() or "") .. XmlParser.fromXmlString(text)
+ stack[#stack]:setValue(lVal)
end
- local text = string.sub(xmlText, i);
- if #stack > 1 then
- error("XmlParser. unclosed " .. stack[#stack]:name())
+ if empty == "/" then -- empty element tag
+ local lNode = newNode(label)
+ XmlParser.parseArgs(lNode, xarg)
+ top:addChild(lNode)
+ elseif c == "" then -- start tag
+ local lNode = newNode(label)
+ XmlParser.parseArgs(lNode, xarg)
+ table.insert(stack, lNode)
+ top = lNode
+ else -- end tag
+ local toclose = table.remove(stack) -- remove top
+
+ top = stack[#stack]
+ if #stack < 1 then
+ error("XmlParser. nothing to close with " .. label)
+ end
+ if toclose:name() ~= label then
+ error("XmlParser. trying to close " .. toclose.name .. " with " .. label)
+ end
+ top:addChild(toclose)
end
- return top
+ i = j + 1
+ end
+ local text = string.sub(xmlText, i);
+ if #stack > 1 then
+ error("XmlParser. unclosed " .. stack[#stack]:name())
+ end
+ return top
end
function XmlParser.loadFile(xmlFilename, base)
- if not base then
- base = system.ResourceDirectory
- end
-
- local path = system.pathForFile(xmlFilename, base)
- local hFile, err = io.open(path, "r");
-
- if hFile and not err then
- local xmlText = hFile:read("*a"); -- read file content
- io.close(hFile);
- return XmlParser.parseXmlText(xmlText), nil;
- else
- print(err)
- return nil
- end
+ if not base then
+ base = system.ResourceDirectory
+ end
+
+ local path = system.pathForFile(xmlFilename, base)
+ local hFile, err = io.open(path, "r");
+
+ if hFile and not err then
+ local xmlText = hFile:read("*a"); -- read file content
+ io.close(hFile);
+ return XmlParser.parseXmlText(xmlText), nil;
+ else
+ print(err)
+ return nil
+ end
end
------------------------------------------------------------------------------------------------------------------
diff --git a/src/libjin-lua/scripts/utils/xml.lua.h b/src/libjin-lua/scripts/utils/xml.lua.h
index 2ab4cb4..c32f699 100644
--- a/src/libjin-lua/scripts/utils/xml.lua.h
+++ b/src/libjin-lua/scripts/utils/xml.lua.h
@@ -19,261 +19,238 @@ static char xml_lua[] = {
111,99,97,108,32,88,109,108,80,97,114,115,101,114,32,61,32,123,125,13,
10,13,10,102,117,110,99,116,105,111,110,32,88,109,108,80,97,114,115,101,
114,46,116,111,88,109,108,83,116,114,105,110,103,40,118,97,108,117,101,41,
-13,10,32,32,32,32,118,97,108,117,101,32,61,32,115,116,114,105,110,103,
-46,103,115,117,98,40,118,97,108,117,101,44,32,34,38,34,44,32,34,38,
-97,109,112,59,34,41,59,32,45,45,32,39,38,39,32,45,62,32,34,38,
-97,109,112,59,34,13,10,32,32,32,32,118,97,108,117,101,32,61,32,115,
-116,114,105,110,103,46,103,115,117,98,40,118,97,108,117,101,44,32,34,60,
-34,44,32,34,38,108,116,59,34,41,59,32,45,45,32,39,60,39,32,45,
-62,32,34,38,108,116,59,34,13,10,32,32,32,32,118,97,108,117,101,32,
-61,32,115,116,114,105,110,103,46,103,115,117,98,40,118,97,108,117,101,44,
-32,34,62,34,44,32,34,38,103,116,59,34,41,59,32,45,45,32,39,62,
-39,32,45,62,32,34,38,103,116,59,34,13,10,32,32,32,32,118,97,108,
-117,101,32,61,32,115,116,114,105,110,103,46,103,115,117,98,40,118,97,108,
-117,101,44,32,34,92,34,34,44,32,34,38,113,117,111,116,59,34,41,59,
-32,45,45,32,39,34,39,32,45,62,32,34,38,113,117,111,116,59,34,13,
-10,32,32,32,32,118,97,108,117,101,32,61,32,115,116,114,105,110,103,46,
-103,115,117,98,40,118,97,108,117,101,44,32,34,40,91,94,37,119,37,38,
-37,59,37,112,37,92,116,37,32,93,41,34,44,13,10,32,32,32,32,32,
-32,32,32,102,117,110,99,116,105,111,110,40,99,41,13,10,32,32,32,32,
-32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,116,114,105,110,
+13,10,32,32,118,97,108,117,101,32,61,32,115,116,114,105,110,103,46,103,
+115,117,98,40,118,97,108,117,101,44,32,34,38,34,44,32,34,38,97,109,
+112,59,34,41,59,32,45,45,32,39,38,39,32,45,62,32,34,38,97,109,
+112,59,34,13,10,32,32,118,97,108,117,101,32,61,32,115,116,114,105,110,
+103,46,103,115,117,98,40,118,97,108,117,101,44,32,34,60,34,44,32,34,
+38,108,116,59,34,41,59,32,45,45,32,39,60,39,32,45,62,32,34,38,
+108,116,59,34,13,10,32,32,118,97,108,117,101,32,61,32,115,116,114,105,
+110,103,46,103,115,117,98,40,118,97,108,117,101,44,32,34,62,34,44,32,
+34,38,103,116,59,34,41,59,32,45,45,32,39,62,39,32,45,62,32,34,
+38,103,116,59,34,13,10,32,32,118,97,108,117,101,32,61,32,115,116,114,
+105,110,103,46,103,115,117,98,40,118,97,108,117,101,44,32,34,92,34,34,
+44,32,34,38,113,117,111,116,59,34,41,59,32,45,45,32,39,34,39,32,
+45,62,32,34,38,113,117,111,116,59,34,13,10,32,32,118,97,108,117,101,
+32,61,32,115,116,114,105,110,103,46,103,115,117,98,40,118,97,108,117,101,
+44,32,34,40,91,94,37,119,37,38,37,59,37,112,37,92,116,37,32,93,
+41,34,44,13,10,32,32,32,32,102,117,110,99,116,105,111,110,40,99,41,
+13,10,32,32,32,32,32,32,114,101,116,117,114,110,32,115,116,114,105,110,
103,46,102,111,114,109,97,116,40,34,38,35,120,37,88,59,34,44,32,115,
116,114,105,110,103,46,98,121,116,101,40,99,41,41,13,10,32,32,32,32,
-32,32,32,32,101,110,100,41,59,13,10,32,32,32,32,114,101,116,117,114,
-110,32,118,97,108,117,101,59,13,10,101,110,100,13,10,13,10,102,117,110,
-99,116,105,111,110,32,88,109,108,80,97,114,115,101,114,46,102,114,111,109,
-88,109,108,83,116,114,105,110,103,40,118,97,108,117,101,41,13,10,32,32,
-32,32,118,97,108,117,101,32,61,32,115,116,114,105,110,103,46,103,115,117,
-98,40,118,97,108,117,101,44,32,34,38,35,120,40,91,37,120,93,43,41,
-37,59,34,44,13,10,32,32,32,32,32,32,32,32,102,117,110,99,116,105,
-111,110,40,104,41,13,10,32,32,32,32,32,32,32,32,32,32,32,32,114,
-101,116,117,114,110,32,115,116,114,105,110,103,46,99,104,97,114,40,116,111,
-110,117,109,98,101,114,40,104,44,32,49,54,41,41,13,10,32,32,32,32,
-32,32,32,32,101,110,100,41,59,13,10,32,32,32,32,118,97,108,117,101,
-32,61,32,115,116,114,105,110,103,46,103,115,117,98,40,118,97,108,117,101,
-44,32,34,38,35,40,91,48,45,57,93,43,41,37,59,34,44,13,10,32,
-32,32,32,32,32,32,32,102,117,110,99,116,105,111,110,40,104,41,13,10,
-32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,
-116,114,105,110,103,46,99,104,97,114,40,116,111,110,117,109,98,101,114,40,
-104,44,32,49,48,41,41,13,10,32,32,32,32,32,32,32,32,101,110,100,
-41,59,13,10,32,32,32,32,118,97,108,117,101,32,61,32,115,116,114,105,
-110,103,46,103,115,117,98,40,118,97,108,117,101,44,32,34,38,113,117,111,
-116,59,34,44,32,34,92,34,34,41,59,13,10,32,32,32,32,118,97,108,
-117,101,32,61,32,115,116,114,105,110,103,46,103,115,117,98,40,118,97,108,
-117,101,44,32,34,38,97,112,111,115,59,34,44,32,34,39,34,41,59,13,
-10,32,32,32,32,118,97,108,117,101,32,61,32,115,116,114,105,110,103,46,
-103,115,117,98,40,118,97,108,117,101,44,32,34,38,103,116,59,34,44,32,
-34,62,34,41,59,13,10,32,32,32,32,118,97,108,117,101,32,61,32,115,
+101,110,100,41,59,13,10,32,32,114,101,116,117,114,110,32,118,97,108,117,
+101,59,13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,
+88,109,108,80,97,114,115,101,114,46,102,114,111,109,88,109,108,83,116,114,
+105,110,103,40,118,97,108,117,101,41,13,10,32,32,118,97,108,117,101,32,
+61,32,115,116,114,105,110,103,46,103,115,117,98,40,118,97,108,117,101,44,
+32,34,38,35,120,40,91,37,120,93,43,41,37,59,34,44,13,10,32,32,
+32,32,102,117,110,99,116,105,111,110,40,104,41,13,10,32,32,32,32,32,
+32,114,101,116,117,114,110,32,115,116,114,105,110,103,46,99,104,97,114,40,
+116,111,110,117,109,98,101,114,40,104,44,32,49,54,41,41,13,10,32,32,
+32,32,101,110,100,41,59,13,10,32,32,118,97,108,117,101,32,61,32,115,
116,114,105,110,103,46,103,115,117,98,40,118,97,108,117,101,44,32,34,38,
-108,116,59,34,44,32,34,60,34,41,59,13,10,32,32,32,32,118,97,108,
-117,101,32,61,32,115,116,114,105,110,103,46,103,115,117,98,40,118,97,108,
-117,101,44,32,34,38,97,109,112,59,34,44,32,34,38,34,41,59,13,10,
-32,32,32,32,114,101,116,117,114,110,32,118,97,108,117,101,59,13,10,101,
-110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,88,109,108,80,97,
-114,115,101,114,46,112,97,114,115,101,65,114,103,115,40,110,111,100,101,44,
-32,115,41,13,10,32,32,32,32,115,116,114,105,110,103,46,103,115,117,98,
-40,115,44,32,34,40,37,119,43,41,61,40,91,92,34,39,93,41,40,46,
-45,41,37,50,34,44,32,102,117,110,99,116,105,111,110,40,119,44,32,95,
-44,32,97,41,13,10,32,32,32,32,32,32,32,32,110,111,100,101,58,97,
-100,100,80,114,111,112,101,114,116,121,40,119,44,32,88,109,108,80,97,114,
-115,101,114,46,102,114,111,109,88,109,108,83,116,114,105,110,103,40,97,41,
-41,13,10,32,32,32,32,101,110,100,41,13,10,101,110,100,13,10,32,32,
+35,40,91,48,45,57,93,43,41,37,59,34,44,13,10,32,32,32,32,102,
+117,110,99,116,105,111,110,40,104,41,13,10,32,32,32,32,32,32,114,101,
+116,117,114,110,32,115,116,114,105,110,103,46,99,104,97,114,40,116,111,110,
+117,109,98,101,114,40,104,44,32,49,48,41,41,13,10,32,32,32,32,101,
+110,100,41,59,13,10,32,32,118,97,108,117,101,32,61,32,115,116,114,105,
+110,103,46,103,115,117,98,40,118,97,108,117,101,44,32,34,38,113,117,111,
+116,59,34,44,32,34,92,34,34,41,59,13,10,32,32,118,97,108,117,101,
+32,61,32,115,116,114,105,110,103,46,103,115,117,98,40,118,97,108,117,101,
+44,32,34,38,97,112,111,115,59,34,44,32,34,39,34,41,59,13,10,32,
+32,118,97,108,117,101,32,61,32,115,116,114,105,110,103,46,103,115,117,98,
+40,118,97,108,117,101,44,32,34,38,103,116,59,34,44,32,34,62,34,41,
+59,13,10,32,32,118,97,108,117,101,32,61,32,115,116,114,105,110,103,46,
+103,115,117,98,40,118,97,108,117,101,44,32,34,38,108,116,59,34,44,32,
+34,60,34,41,59,13,10,32,32,118,97,108,117,101,32,61,32,115,116,114,
+105,110,103,46,103,115,117,98,40,118,97,108,117,101,44,32,34,38,97,109,
+112,59,34,44,32,34,38,34,41,59,13,10,32,32,114,101,116,117,114,110,
+32,118,97,108,117,101,59,13,10,101,110,100,13,10,13,10,102,117,110,99,
+116,105,111,110,32,88,109,108,80,97,114,115,101,114,46,112,97,114,115,101,
+65,114,103,115,40,110,111,100,101,44,32,115,41,13,10,32,32,115,116,114,
+105,110,103,46,103,115,117,98,40,115,44,32,34,40,37,119,43,41,61,40,
+91,92,34,39,93,41,40,46,45,41,37,50,34,44,32,102,117,110,99,116,
+105,111,110,40,119,44,32,95,44,32,97,41,13,10,32,32,32,32,110,111,
+100,101,58,97,100,100,80,114,111,112,101,114,116,121,40,119,44,32,88,109,
+108,80,97,114,115,101,114,46,102,114,111,109,88,109,108,83,116,114,105,110,
+103,40,97,41,41,13,10,32,32,101,110,100,41,13,10,101,110,100,13,10,
32,32,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,110,
-101,119,78,111,100,101,40,110,97,109,101,41,13,10,32,32,32,32,108,111,
-99,97,108,32,110,111,100,101,32,61,32,123,125,13,10,32,32,32,32,110,
-111,100,101,46,95,95,95,118,97,108,117,101,32,61,32,110,105,108,13,10,
-32,32,32,32,110,111,100,101,46,95,95,95,110,97,109,101,32,61,32,110,
-97,109,101,13,10,32,32,32,32,110,111,100,101,46,95,95,95,99,104,105,
-108,100,114,101,110,32,61,32,123,125,13,10,32,32,32,32,110,111,100,101,
-46,95,95,95,112,114,111,112,115,32,61,32,123,125,13,10,13,10,32,32,
-32,32,102,117,110,99,116,105,111,110,32,110,111,100,101,58,118,97,108,117,
-101,40,41,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,95,118,
-97,108,117,101,32,101,110,100,13,10,32,32,32,32,102,117,110,99,116,105,
-111,110,32,110,111,100,101,58,115,101,116,86,97,108,117,101,40,118,97,108,
-41,32,115,101,108,102,46,95,95,95,118,97,108,117,101,32,61,32,118,97,
-108,32,101,110,100,13,10,32,32,32,32,102,117,110,99,116,105,111,110,32,
-110,111,100,101,58,110,97,109,101,40,41,32,114,101,116,117,114,110,32,115,
-101,108,102,46,95,95,95,110,97,109,101,32,101,110,100,13,10,32,32,32,
-32,102,117,110,99,116,105,111,110,32,110,111,100,101,58,115,101,116,78,97,
-109,101,40,110,97,109,101,41,32,115,101,108,102,46,95,95,95,110,97,109,
-101,32,61,32,110,97,109,101,32,101,110,100,13,10,32,32,32,32,102,117,
+101,119,78,111,100,101,40,110,97,109,101,41,13,10,32,32,108,111,99,97,
+108,32,110,111,100,101,32,61,32,123,125,13,10,32,32,110,111,100,101,46,
+95,95,95,118,97,108,117,101,32,61,32,110,105,108,13,10,32,32,110,111,
+100,101,46,95,95,95,110,97,109,101,32,61,32,110,97,109,101,13,10,32,
+32,110,111,100,101,46,95,95,95,99,104,105,108,100,114,101,110,32,61,32,
+123,125,13,10,32,32,110,111,100,101,46,95,95,95,112,114,111,112,115,32,
+61,32,123,125,13,10,13,10,32,32,102,117,110,99,116,105,111,110,32,110,
+111,100,101,58,118,97,108,117,101,40,41,32,114,101,116,117,114,110,32,115,
+101,108,102,46,95,95,95,118,97,108,117,101,32,101,110,100,13,10,32,32,
+102,117,110,99,116,105,111,110,32,110,111,100,101,58,115,101,116,86,97,108,
+117,101,40,118,97,108,41,32,115,101,108,102,46,95,95,95,118,97,108,117,
+101,32,61,32,118,97,108,32,101,110,100,13,10,32,32,102,117,110,99,116,
+105,111,110,32,110,111,100,101,58,110,97,109,101,40,41,32,114,101,116,117,
+114,110,32,115,101,108,102,46,95,95,95,110,97,109,101,32,101,110,100,13,
+10,32,32,102,117,110,99,116,105,111,110,32,110,111,100,101,58,115,101,116,
+78,97,109,101,40,110,97,109,101,41,32,115,101,108,102,46,95,95,95,110,
+97,109,101,32,61,32,110,97,109,101,32,101,110,100,13,10,32,32,102,117,
110,99,116,105,111,110,32,110,111,100,101,58,99,104,105,108,100,114,101,110,
40,41,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,95,99,104,
-105,108,100,114,101,110,32,101,110,100,13,10,32,32,32,32,102,117,110,99,
-116,105,111,110,32,110,111,100,101,58,110,117,109,67,104,105,108,100,114,101,
-110,40,41,32,114,101,116,117,114,110,32,35,115,101,108,102,46,95,95,95,
-99,104,105,108,100,114,101,110,32,101,110,100,13,10,32,32,32,32,102,117,
-110,99,116,105,111,110,32,110,111,100,101,58,97,100,100,67,104,105,108,100,
-40,99,104,105,108,100,41,13,10,32,32,32,32,32,32,32,32,105,102,32,
-115,101,108,102,91,99,104,105,108,100,58,110,97,109,101,40,41,93,32,126,
-61,32,110,105,108,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,
-32,32,32,32,105,102,32,116,121,112,101,40,115,101,108,102,91,99,104,105,
-108,100,58,110,97,109,101,40,41,93,46,110,97,109,101,41,32,61,61,32,
-34,102,117,110,99,116,105,111,110,34,32,116,104,101,110,13,10,32,32,32,
-32,32,32,32,32,32,32,32,32,32,32,32,32,108,111,99,97,108,32,116,
-101,109,112,84,97,98,108,101,32,61,32,123,125,13,10,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,32,32,116,97,98,108,101,46,105,110,115,
-101,114,116,40,116,101,109,112,84,97,98,108,101,44,32,115,101,108,102,91,
-99,104,105,108,100,58,110,97,109,101,40,41,93,41,13,10,32,32,32,32,
-32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,91,99,104,105,
-108,100,58,110,97,109,101,40,41,93,32,61,32,116,101,109,112,84,97,98,
-108,101,13,10,32,32,32,32,32,32,32,32,32,32,32,32,101,110,100,13,
-10,32,32,32,32,32,32,32,32,32,32,32,32,116,97,98,108,101,46,105,
-110,115,101,114,116,40,115,101,108,102,91,99,104,105,108,100,58,110,97,109,
-101,40,41,93,44,32,99,104,105,108,100,41,13,10,32,32,32,32,32,32,
-32,32,101,108,115,101,13,10,32,32,32,32,32,32,32,32,32,32,32,32,
+105,108,100,114,101,110,32,101,110,100,13,10,32,32,102,117,110,99,116,105,
+111,110,32,110,111,100,101,58,110,117,109,67,104,105,108,100,114,101,110,40,
+41,32,114,101,116,117,114,110,32,35,115,101,108,102,46,95,95,95,99,104,
+105,108,100,114,101,110,32,101,110,100,13,10,32,32,102,117,110,99,116,105,
+111,110,32,110,111,100,101,58,97,100,100,67,104,105,108,100,40,99,104,105,
+108,100,41,13,10,32,32,32,32,105,102,32,115,101,108,102,91,99,104,105,
+108,100,58,110,97,109,101,40,41,93,32,126,61,32,110,105,108,32,116,104,
+101,110,13,10,32,32,32,32,32,32,105,102,32,116,121,112,101,40,115,101,
+108,102,91,99,104,105,108,100,58,110,97,109,101,40,41,93,46,110,97,109,
+101,41,32,61,61,32,34,102,117,110,99,116,105,111,110,34,32,116,104,101,
+110,13,10,32,32,32,32,32,32,32,32,108,111,99,97,108,32,116,101,109,
+112,84,97,98,108,101,32,61,32,123,125,13,10,32,32,32,32,32,32,32,
+32,116,97,98,108,101,46,105,110,115,101,114,116,40,116,101,109,112,84,97,
+98,108,101,44,32,115,101,108,102,91,99,104,105,108,100,58,110,97,109,101,
+40,41,93,41,13,10,32,32,32,32,32,32,32,32,115,101,108,102,91,99,
+104,105,108,100,58,110,97,109,101,40,41,93,32,61,32,116,101,109,112,84,
+97,98,108,101,13,10,32,32,32,32,32,32,101,110,100,13,10,32,32,32,
+32,32,32,116,97,98,108,101,46,105,110,115,101,114,116,40,115,101,108,102,
+91,99,104,105,108,100,58,110,97,109,101,40,41,93,44,32,99,104,105,108,
+100,41,13,10,32,32,32,32,101,108,115,101,13,10,32,32,32,32,32,32,
115,101,108,102,91,99,104,105,108,100,58,110,97,109,101,40,41,93,32,61,
-32,99,104,105,108,100,13,10,32,32,32,32,32,32,32,32,101,110,100,13,
-10,32,32,32,32,32,32,32,32,116,97,98,108,101,46,105,110,115,101,114,
-116,40,115,101,108,102,46,95,95,95,99,104,105,108,100,114,101,110,44,32,
-99,104,105,108,100,41,13,10,32,32,32,32,101,110,100,13,10,13,10,32,
-32,32,32,102,117,110,99,116,105,111,110,32,110,111,100,101,58,112,114,111,
-112,101,114,116,105,101,115,40,41,32,114,101,116,117,114,110,32,115,101,108,
-102,46,95,95,95,112,114,111,112,115,32,101,110,100,13,10,32,32,32,32,
-102,117,110,99,116,105,111,110,32,110,111,100,101,58,110,117,109,80,114,111,
-112,101,114,116,105,101,115,40,41,32,114,101,116,117,114,110,32,35,115,101,
-108,102,46,95,95,95,112,114,111,112,115,32,101,110,100,13,10,32,32,32,
-32,102,117,110,99,116,105,111,110,32,110,111,100,101,58,97,100,100,80,114,
-111,112,101,114,116,121,40,110,97,109,101,44,32,118,97,108,117,101,41,13,
-10,32,32,32,32,32,32,32,32,108,111,99,97,108,32,108,78,97,109,101,
+32,99,104,105,108,100,13,10,32,32,32,32,101,110,100,13,10,32,32,32,
+32,116,97,98,108,101,46,105,110,115,101,114,116,40,115,101,108,102,46,95,
+95,95,99,104,105,108,100,114,101,110,44,32,99,104,105,108,100,41,13,10,
+32,32,101,110,100,13,10,13,10,32,32,102,117,110,99,116,105,111,110,32,
+110,111,100,101,58,112,114,111,112,101,114,116,105,101,115,40,41,32,114,101,
+116,117,114,110,32,115,101,108,102,46,95,95,95,112,114,111,112,115,32,101,
+110,100,13,10,32,32,102,117,110,99,116,105,111,110,32,110,111,100,101,58,
+110,117,109,80,114,111,112,101,114,116,105,101,115,40,41,32,114,101,116,117,
+114,110,32,35,115,101,108,102,46,95,95,95,112,114,111,112,115,32,101,110,
+100,13,10,32,32,102,117,110,99,116,105,111,110,32,110,111,100,101,58,97,
+100,100,80,114,111,112,101,114,116,121,40,110,97,109,101,44,32,118,97,108,
+117,101,41,13,10,32,32,32,32,108,111,99,97,108,32,108,78,97,109,101,
32,61,32,34,64,34,32,46,46,32,110,97,109,101,13,10,32,32,32,32,
-32,32,32,32,105,102,32,115,101,108,102,91,108,78,97,109,101,93,32,126,
-61,32,110,105,108,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,
-32,32,32,32,105,102,32,116,121,112,101,40,115,101,108,102,91,108,78,97,
-109,101,93,41,32,61,61,32,34,115,116,114,105,110,103,34,32,116,104,101,
-110,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,108,
-111,99,97,108,32,116,101,109,112,84,97,98,108,101,32,61,32,123,125,13,
-10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,97,98,
-108,101,46,105,110,115,101,114,116,40,116,101,109,112,84,97,98,108,101,44,
-32,115,101,108,102,91,108,78,97,109,101,93,41,13,10,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,91,108,78,97,109,
-101,93,32,61,32,116,101,109,112,84,97,98,108,101,13,10,32,32,32,32,
-32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,32,
-32,32,32,32,32,116,97,98,108,101,46,105,110,115,101,114,116,40,115,101,
-108,102,91,108,78,97,109,101,93,44,32,118,97,108,117,101,41,13,10,32,
-32,32,32,32,32,32,32,101,108,115,101,13,10,32,32,32,32,32,32,32,
-32,32,32,32,32,115,101,108,102,91,108,78,97,109,101,93,32,61,32,118,
-97,108,117,101,13,10,32,32,32,32,32,32,32,32,101,110,100,13,10,32,
-32,32,32,32,32,32,32,116,97,98,108,101,46,105,110,115,101,114,116,40,
-115,101,108,102,46,95,95,95,112,114,111,112,115,44,32,123,32,110,97,109,
-101,32,61,32,110,97,109,101,44,32,118,97,108,117,101,32,61,32,115,101,
-108,102,91,110,97,109,101,93,32,125,41,13,10,32,32,32,32,101,110,100,
-13,10,13,10,32,32,32,32,114,101,116,117,114,110,32,110,111,100,101,13,
-10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,88,109,108,
-80,97,114,115,101,114,46,112,97,114,115,101,88,109,108,84,101,120,116,40,
-120,109,108,84,101,120,116,41,13,10,32,32,32,32,108,111,99,97,108,32,
-115,116,97,99,107,32,61,32,123,125,13,10,32,32,32,32,108,111,99,97,
-108,32,116,111,112,32,61,32,110,101,119,78,111,100,101,40,41,13,10,32,
-32,32,32,116,97,98,108,101,46,105,110,115,101,114,116,40,115,116,97,99,
-107,44,32,116,111,112,41,13,10,32,32,32,32,108,111,99,97,108,32,110,
-105,44,32,99,44,32,108,97,98,101,108,44,32,120,97,114,103,44,32,101,
-109,112,116,121,13,10,32,32,32,32,108,111,99,97,108,32,105,44,32,106,
-32,61,32,49,44,32,49,13,10,32,32,32,32,119,104,105,108,101,32,116,
-114,117,101,32,100,111,13,10,32,32,32,32,32,32,32,32,110,105,44,32,
-106,44,32,99,44,32,108,97,98,101,108,44,32,120,97,114,103,44,32,101,
-109,112,116,121,32,61,32,115,116,114,105,110,103,46,102,105,110,100,40,120,
-109,108,84,101,120,116,44,32,34,60,40,37,47,63,41,40,91,37,119,95,
-58,93,43,41,40,46,45,41,40,37,47,63,41,62,34,44,32,105,41,13,
-10,32,32,32,32,32,32,32,32,105,102,32,110,111,116,32,110,105,32,116,
-104,101,110,32,98,114,101,97,107,32,101,110,100,13,10,32,32,32,32,32,
-32,32,32,108,111,99,97,108,32,116,101,120,116,32,61,32,115,116,114,105,
-110,103,46,115,117,98,40,120,109,108,84,101,120,116,44,32,105,44,32,110,
-105,32,45,32,49,41,59,13,10,32,32,32,32,32,32,32,32,105,102,32,
-110,111,116,32,115,116,114,105,110,103,46,102,105,110,100,40,116,101,120,116,
-44,32,34,94,37,115,42,36,34,41,32,116,104,101,110,13,10,32,32,32,
-32,32,32,32,32,32,32,32,32,108,111,99,97,108,32,108,86,97,108,32,
-61,32,40,116,111,112,58,118,97,108,117,101,40,41,32,111,114,32,34,34,
-41,32,46,46,32,88,109,108,80,97,114,115,101,114,46,102,114,111,109,88,
-109,108,83,116,114,105,110,103,40,116,101,120,116,41,13,10,32,32,32,32,
-32,32,32,32,32,32,32,32,115,116,97,99,107,91,35,115,116,97,99,107,
-93,58,115,101,116,86,97,108,117,101,40,108,86,97,108,41,13,10,32,32,
-32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,32,32,105,
-102,32,101,109,112,116,121,32,61,61,32,34,47,34,32,116,104,101,110,32,
-45,45,32,101,109,112,116,121,32,101,108,101,109,101,110,116,32,116,97,103,
-13,10,32,32,32,32,32,32,32,32,32,32,32,32,108,111,99,97,108,32,
-108,78,111,100,101,32,61,32,110,101,119,78,111,100,101,40,108,97,98,101,
-108,41,13,10,32,32,32,32,32,32,32,32,32,32,32,32,88,109,108,80,
-97,114,115,101,114,46,112,97,114,115,101,65,114,103,115,40,108,78,111,100,
-101,44,32,120,97,114,103,41,13,10,32,32,32,32,32,32,32,32,32,32,
-32,32,116,111,112,58,97,100,100,67,104,105,108,100,40,108,78,111,100,101,
-41,13,10,32,32,32,32,32,32,32,32,101,108,115,101,105,102,32,99,32,
-61,61,32,34,34,32,116,104,101,110,32,45,45,32,115,116,97,114,116,32,
-116,97,103,13,10,32,32,32,32,32,32,32,32,32,32,32,32,108,111,99,
-97,108,32,108,78,111,100,101,32,61,32,110,101,119,78,111,100,101,40,108,
-97,98,101,108,41,13,10,32,32,32,32,32,32,32,32,32,32,32,32,88,
-109,108,80,97,114,115,101,114,46,112,97,114,115,101,65,114,103,115,40,108,
-78,111,100,101,44,32,120,97,114,103,41,13,10,32,32,32,32,32,32,32,
-32,32,32,32,32,116,97,98,108,101,46,105,110,115,101,114,116,40,115,116,
-97,99,107,44,32,108,78,111,100,101,41,13,10,9,116,111,112,32,61,32,
-108,78,111,100,101,13,10,32,32,32,32,32,32,32,32,101,108,115,101,32,
-45,45,32,101,110,100,32,116,97,103,13,10,32,32,32,32,32,32,32,32,
-32,32,32,32,108,111,99,97,108,32,116,111,99,108,111,115,101,32,61,32,
-116,97,98,108,101,46,114,101,109,111,118,101,40,115,116,97,99,107,41,32,
-45,45,32,114,101,109,111,118,101,32,116,111,112,13,10,13,10,32,32,32,
-32,32,32,32,32,32,32,32,32,116,111,112,32,61,32,115,116,97,99,107,
-91,35,115,116,97,99,107,93,13,10,32,32,32,32,32,32,32,32,32,32,
-32,32,105,102,32,35,115,116,97,99,107,32,60,32,49,32,116,104,101,110,
-13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,114,
-114,111,114,40,34,88,109,108,80,97,114,115,101,114,46,32,110,111,116,104,
-105,110,103,32,116,111,32,99,108,111,115,101,32,119,105,116,104,32,34,32,
-46,46,32,108,97,98,101,108,41,13,10,32,32,32,32,32,32,32,32,32,
-32,32,32,101,110,100,13,10,32,32,32,32,32,32,32,32,32,32,32,32,
-105,102,32,116,111,99,108,111,115,101,58,110,97,109,101,40,41,32,126,61,
-32,108,97,98,101,108,32,116,104,101,110,13,10,32,32,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,101,114,114,111,114,40,34,88,109,108,80,
-97,114,115,101,114,46,32,116,114,121,105,110,103,32,116,111,32,99,108,111,
-115,101,32,34,32,46,46,32,116,111,99,108,111,115,101,46,110,97,109,101,
-32,46,46,32,34,32,119,105,116,104,32,34,32,46,46,32,108,97,98,101,
-108,41,13,10,32,32,32,32,32,32,32,32,32,32,32,32,101,110,100,13,
-10,32,32,32,32,32,32,32,32,32,32,32,32,116,111,112,58,97,100,100,
-67,104,105,108,100,40,116,111,99,108,111,115,101,41,13,10,32,32,32,32,
-32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,32,32,105,32,61,
-32,106,32,43,32,49,13,10,32,32,32,32,101,110,100,13,10,32,32,32,
-32,108,111,99,97,108,32,116,101,120,116,32,61,32,115,116,114,105,110,103,
-46,115,117,98,40,120,109,108,84,101,120,116,44,32,105,41,59,13,10,32,
-32,32,32,105,102,32,35,115,116,97,99,107,32,62,32,49,32,116,104,101,
-110,13,10,32,32,32,32,32,32,32,32,101,114,114,111,114,40,34,88,109,
-108,80,97,114,115,101,114,46,32,117,110,99,108,111,115,101,100,32,34,32,
-46,46,32,115,116,97,99,107,91,35,115,116,97,99,107,93,58,110,97,109,
-101,40,41,41,13,10,32,32,32,32,101,110,100,13,10,32,32,32,32,114,
+105,102,32,115,101,108,102,91,108,78,97,109,101,93,32,126,61,32,110,105,
+108,32,116,104,101,110,13,10,32,32,32,32,32,32,105,102,32,116,121,112,
+101,40,115,101,108,102,91,108,78,97,109,101,93,41,32,61,61,32,34,115,
+116,114,105,110,103,34,32,116,104,101,110,13,10,32,32,32,32,32,32,32,
+32,108,111,99,97,108,32,116,101,109,112,84,97,98,108,101,32,61,32,123,
+125,13,10,32,32,32,32,32,32,32,32,116,97,98,108,101,46,105,110,115,
+101,114,116,40,116,101,109,112,84,97,98,108,101,44,32,115,101,108,102,91,
+108,78,97,109,101,93,41,13,10,32,32,32,32,32,32,32,32,115,101,108,
+102,91,108,78,97,109,101,93,32,61,32,116,101,109,112,84,97,98,108,101,
+13,10,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,116,
+97,98,108,101,46,105,110,115,101,114,116,40,115,101,108,102,91,108,78,97,
+109,101,93,44,32,118,97,108,117,101,41,13,10,32,32,32,32,101,108,115,
+101,13,10,32,32,32,32,32,32,115,101,108,102,91,108,78,97,109,101,93,
+32,61,32,118,97,108,117,101,13,10,32,32,32,32,101,110,100,13,10,32,
+32,32,32,116,97,98,108,101,46,105,110,115,101,114,116,40,115,101,108,102,
+46,95,95,95,112,114,111,112,115,44,32,123,32,110,97,109,101,32,61,32,
+110,97,109,101,44,32,118,97,108,117,101,32,61,32,115,101,108,102,91,110,
+97,109,101,93,32,125,41,13,10,32,32,101,110,100,13,10,13,10,32,32,
+114,101,116,117,114,110,32,110,111,100,101,13,10,101,110,100,13,10,13,10,
+102,117,110,99,116,105,111,110,32,88,109,108,80,97,114,115,101,114,46,112,
+97,114,115,101,88,109,108,84,101,120,116,40,120,109,108,84,101,120,116,41,
+13,10,32,32,108,111,99,97,108,32,115,116,97,99,107,32,61,32,123,125,
+13,10,32,32,108,111,99,97,108,32,116,111,112,32,61,32,110,101,119,78,
+111,100,101,40,41,13,10,32,32,116,97,98,108,101,46,105,110,115,101,114,
+116,40,115,116,97,99,107,44,32,116,111,112,41,13,10,32,32,108,111,99,
+97,108,32,110,105,44,32,99,44,32,108,97,98,101,108,44,32,120,97,114,
+103,44,32,101,109,112,116,121,13,10,32,32,108,111,99,97,108,32,105,44,
+32,106,32,61,32,49,44,32,49,13,10,32,32,119,104,105,108,101,32,116,
+114,117,101,32,100,111,13,10,32,32,32,32,110,105,44,32,106,44,32,99,
+44,32,108,97,98,101,108,44,32,120,97,114,103,44,32,101,109,112,116,121,
+32,61,32,115,116,114,105,110,103,46,102,105,110,100,40,120,109,108,84,101,
+120,116,44,32,34,60,40,37,47,63,41,40,91,37,119,95,58,93,43,41,
+40,46,45,41,40,37,47,63,41,62,34,44,32,105,41,13,10,32,32,32,
+32,105,102,32,110,111,116,32,110,105,32,116,104,101,110,32,98,114,101,97,
+107,32,101,110,100,13,10,32,32,32,32,108,111,99,97,108,32,116,101,120,
+116,32,61,32,115,116,114,105,110,103,46,115,117,98,40,120,109,108,84,101,
+120,116,44,32,105,44,32,110,105,32,45,32,49,41,59,13,10,32,32,32,
+32,105,102,32,110,111,116,32,115,116,114,105,110,103,46,102,105,110,100,40,
+116,101,120,116,44,32,34,94,37,115,42,36,34,41,32,116,104,101,110,13,
+10,32,32,32,32,32,32,108,111,99,97,108,32,108,86,97,108,32,61,32,
+40,116,111,112,58,118,97,108,117,101,40,41,32,111,114,32,34,34,41,32,
+46,46,32,88,109,108,80,97,114,115,101,114,46,102,114,111,109,88,109,108,
+83,116,114,105,110,103,40,116,101,120,116,41,13,10,32,32,32,32,32,32,
+115,116,97,99,107,91,35,115,116,97,99,107,93,58,115,101,116,86,97,108,
+117,101,40,108,86,97,108,41,13,10,32,32,32,32,101,110,100,13,10,32,
+32,32,32,105,102,32,101,109,112,116,121,32,61,61,32,34,47,34,32,116,
+104,101,110,32,45,45,32,101,109,112,116,121,32,101,108,101,109,101,110,116,
+32,116,97,103,13,10,32,32,32,32,32,32,108,111,99,97,108,32,108,78,
+111,100,101,32,61,32,110,101,119,78,111,100,101,40,108,97,98,101,108,41,
+13,10,32,32,32,32,32,32,88,109,108,80,97,114,115,101,114,46,112,97,
+114,115,101,65,114,103,115,40,108,78,111,100,101,44,32,120,97,114,103,41,
+13,10,32,32,32,32,32,32,116,111,112,58,97,100,100,67,104,105,108,100,
+40,108,78,111,100,101,41,13,10,32,32,32,32,101,108,115,101,105,102,32,
+99,32,61,61,32,34,34,32,116,104,101,110,32,45,45,32,115,116,97,114,
+116,32,116,97,103,13,10,32,32,32,32,32,32,108,111,99,97,108,32,108,
+78,111,100,101,32,61,32,110,101,119,78,111,100,101,40,108,97,98,101,108,
+41,13,10,32,32,32,32,32,32,88,109,108,80,97,114,115,101,114,46,112,
+97,114,115,101,65,114,103,115,40,108,78,111,100,101,44,32,120,97,114,103,
+41,13,10,32,32,32,32,32,32,116,97,98,108,101,46,105,110,115,101,114,
+116,40,115,116,97,99,107,44,32,108,78,111,100,101,41,13,10,9,116,111,
+112,32,61,32,108,78,111,100,101,13,10,32,32,32,32,101,108,115,101,32,
+45,45,32,101,110,100,32,116,97,103,13,10,32,32,32,32,32,32,108,111,
+99,97,108,32,116,111,99,108,111,115,101,32,61,32,116,97,98,108,101,46,
+114,101,109,111,118,101,40,115,116,97,99,107,41,32,45,45,32,114,101,109,
+111,118,101,32,116,111,112,13,10,13,10,32,32,32,32,32,32,116,111,112,
+32,61,32,115,116,97,99,107,91,35,115,116,97,99,107,93,13,10,32,32,
+32,32,32,32,105,102,32,35,115,116,97,99,107,32,60,32,49,32,116,104,
+101,110,13,10,32,32,32,32,32,32,32,32,101,114,114,111,114,40,34,88,
+109,108,80,97,114,115,101,114,46,32,110,111,116,104,105,110,103,32,116,111,
+32,99,108,111,115,101,32,119,105,116,104,32,34,32,46,46,32,108,97,98,
+101,108,41,13,10,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,
+32,32,105,102,32,116,111,99,108,111,115,101,58,110,97,109,101,40,41,32,
+126,61,32,108,97,98,101,108,32,116,104,101,110,13,10,32,32,32,32,32,
+32,32,32,101,114,114,111,114,40,34,88,109,108,80,97,114,115,101,114,46,
+32,116,114,121,105,110,103,32,116,111,32,99,108,111,115,101,32,34,32,46,
+46,32,116,111,99,108,111,115,101,46,110,97,109,101,32,46,46,32,34,32,
+119,105,116,104,32,34,32,46,46,32,108,97,98,101,108,41,13,10,32,32,
+32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,116,111,112,58,97,
+100,100,67,104,105,108,100,40,116,111,99,108,111,115,101,41,13,10,32,32,
+32,32,101,110,100,13,10,32,32,32,32,105,32,61,32,106,32,43,32,49,
+13,10,32,32,101,110,100,13,10,32,32,108,111,99,97,108,32,116,101,120,
+116,32,61,32,115,116,114,105,110,103,46,115,117,98,40,120,109,108,84,101,
+120,116,44,32,105,41,59,13,10,32,32,105,102,32,35,115,116,97,99,107,
+32,62,32,49,32,116,104,101,110,13,10,32,32,32,32,101,114,114,111,114,
+40,34,88,109,108,80,97,114,115,101,114,46,32,117,110,99,108,111,115,101,
+100,32,34,32,46,46,32,115,116,97,99,107,91,35,115,116,97,99,107,93,
+58,110,97,109,101,40,41,41,13,10,32,32,101,110,100,13,10,32,32,114,
101,116,117,114,110,32,116,111,112,13,10,101,110,100,13,10,13,10,102,117,
110,99,116,105,111,110,32,88,109,108,80,97,114,115,101,114,46,108,111,97,
100,70,105,108,101,40,120,109,108,70,105,108,101,110,97,109,101,44,32,98,
-97,115,101,41,13,10,32,32,32,32,105,102,32,110,111,116,32,98,97,115,
-101,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,98,97,115,101,
-32,61,32,115,121,115,116,101,109,46,82,101,115,111,117,114,99,101,68,105,
-114,101,99,116,111,114,121,13,10,32,32,32,32,101,110,100,13,10,13,10,
-32,32,32,32,108,111,99,97,108,32,112,97,116,104,32,61,32,115,121,115,
-116,101,109,46,112,97,116,104,70,111,114,70,105,108,101,40,120,109,108,70,
-105,108,101,110,97,109,101,44,32,98,97,115,101,41,13,10,32,32,32,32,
-108,111,99,97,108,32,104,70,105,108,101,44,32,101,114,114,32,61,32,105,
-111,46,111,112,101,110,40,112,97,116,104,44,32,34,114,34,41,59,13,10,
-13,10,32,32,32,32,105,102,32,104,70,105,108,101,32,97,110,100,32,110,
-111,116,32,101,114,114,32,116,104,101,110,13,10,32,32,32,32,32,32,32,
-32,108,111,99,97,108,32,120,109,108,84,101,120,116,32,61,32,104,70,105,
-108,101,58,114,101,97,100,40,34,42,97,34,41,59,32,45,45,32,114,101,
-97,100,32,102,105,108,101,32,99,111,110,116,101,110,116,13,10,32,32,32,
-32,32,32,32,32,105,111,46,99,108,111,115,101,40,104,70,105,108,101,41,
-59,13,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,88,109,
-108,80,97,114,115,101,114,46,112,97,114,115,101,88,109,108,84,101,120,116,
-40,120,109,108,84,101,120,116,41,44,32,110,105,108,59,13,10,32,32,32,
-32,101,108,115,101,13,10,32,32,32,32,32,32,32,32,112,114,105,110,116,
-40,101,114,114,41,13,10,32,32,32,32,32,32,32,32,114,101,116,117,114,
-110,32,110,105,108,13,10,32,32,32,32,101,110,100,13,10,101,110,100,13,
-10,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+97,115,101,41,13,10,32,32,105,102,32,110,111,116,32,98,97,115,101,32,
+116,104,101,110,13,10,32,32,32,32,98,97,115,101,32,61,32,115,121,115,
+116,101,109,46,82,101,115,111,117,114,99,101,68,105,114,101,99,116,111,114,
+121,13,10,32,32,101,110,100,13,10,13,10,32,32,108,111,99,97,108,32,
+112,97,116,104,32,61,32,115,121,115,116,101,109,46,112,97,116,104,70,111,
+114,70,105,108,101,40,120,109,108,70,105,108,101,110,97,109,101,44,32,98,
+97,115,101,41,13,10,32,32,108,111,99,97,108,32,104,70,105,108,101,44,
+32,101,114,114,32,61,32,105,111,46,111,112,101,110,40,112,97,116,104,44,
+32,34,114,34,41,59,13,10,13,10,32,32,105,102,32,104,70,105,108,101,
+32,97,110,100,32,110,111,116,32,101,114,114,32,116,104,101,110,13,10,32,
+32,32,32,108,111,99,97,108,32,120,109,108,84,101,120,116,32,61,32,104,
+70,105,108,101,58,114,101,97,100,40,34,42,97,34,41,59,32,45,45,32,
+114,101,97,100,32,102,105,108,101,32,99,111,110,116,101,110,116,13,10,32,
+32,32,32,105,111,46,99,108,111,115,101,40,104,70,105,108,101,41,59,13,
+10,32,32,32,32,114,101,116,117,114,110,32,88,109,108,80,97,114,115,101,
+114,46,112,97,114,115,101,88,109,108,84,101,120,116,40,120,109,108,84,101,
+120,116,41,44,32,110,105,108,59,13,10,32,32,101,108,115,101,13,10,32,
+32,32,32,112,114,105,110,116,40,101,114,114,41,13,10,32,32,32,32,114,
+101,116,117,114,110,32,110,105,108,13,10,32,32,101,110,100,13,10,101,110,
+100,13,10,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,45,
-45,32,69,120,112,111,114,116,32,116,111,32,74,105,110,46,32,13,10,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,
+10,45,45,32,69,120,112,111,114,116,32,116,111,32,74,105,110,46,32,13,
+10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,13,10,106,105,110,
-46,117,116,105,108,115,46,120,109,108,32,61,32,88,109,108,80,97,114,115,
-101,114,0
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,13,10,106,
+105,110,46,117,116,105,108,115,46,120,109,108,32,61,32,88,109,108,80,97,
+114,115,101,114,0
};