使用了遞迴並搭配array , 搭配array, 使用了 row(), all().
PostgreSQL 遞迴騎士巡邏
Date:2020-09-16
create table it200916a (
id smallint generated always as identity
, x smallint not null
, y smallint not null
);
insert into it200916a(x, y)
select *
from generate_series(1,5) a
, generate_series(1,5) b;
with recursive tmp(x, y, lv, path) as (
select x
, y
, 1
, array[row(x,y)]
from it200916a
where x = 1
and y = 1
union all
select b.x
, b.y
, a.lv + 1
, a.path || row(b.x, b.y)
from tmp a
, it200916a b
where (b.x, b.y) in (
(a.x + 2, a.y + 1)
,(a.x - 2, a.y + 1)
,(a.x - 2, a.y - 1)
,(a.x + 1, a.y + 2)
,(a.x + 1, a.y - 2)
,(a.x - 1, a.y + 2)
,(a.x - 1, a.y - 2)
)
and row(b.x, b.y) != all(a.path)
)
select lv
, path
from tmp
where lv = 1
or lv = 2
or lv = 24;
+-[ RECORD 1 ]---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 1 |
| path | {"(1,1)"} |
+-[ RECORD 2 ]---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 2 |
| path | {"(1,1)","(2,3)"} |
+-[ RECORD 3 ]---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 2 |
| path | {"(1,1)","(3,2)"} |
+-[ RECORD 4 ]---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(2,3)","(3,1)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)","(2,2)","(3,4)","(5,5)","(4,3)","(5,1)","(3,2)","(4,4)","(5,2)","(3,3)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)"} |
+-[ RECORD 5 ]---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(2,3)","(3,1)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)","(3,3)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(3,4)","(5,5)","(4,3)","(5,1)","(3,2)","(4,4)","(5,2)"} |
+-[ RECORD 6 ]---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(2,3)","(3,1)","(5,2)","(3,3)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)","(2,2)","(3,4)","(5,5)","(4,3)","(5,1)","(3,2)","(4,4)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)"} |
+-[ RECORD 7 ]---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(2,3)","(3,1)","(5,2)","(4,4)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(3,4)","(5,5)","(4,3)","(5,1)","(3,2)","(2,4)","(1,2)","(3,3)","(4,1)","(5,3)","(4,5)"} |
+-[ RECORD 8 ]---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(2,3)","(3,1)","(5,2)","(4,4)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(3,4)","(5,5)","(4,3)","(5,1)","(3,2)","(2,4)","(1,2)","(3,3)","(4,5)","(5,3)","(4,1)"} |
+-[ RECORD 9 ]---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(2,3)","(3,1)","(5,2)","(4,4)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(3,4)","(5,5)","(4,3)","(5,1)","(3,2)","(2,4)","(4,5)","(5,3)","(4,1)","(3,3)","(1,2)"} |
+-[ RECORD 10 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(2,3)","(3,1)","(5,2)","(4,4)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(3,4)","(5,5)","(4,3)","(5,1)","(3,2)","(5,3)","(4,1)","(3,3)","(1,2)","(2,4)","(4,5)"} |
+-[ RECORD 11 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(2,3)","(3,1)","(5,2)","(4,4)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(3,4)","(5,5)","(4,3)","(5,1)","(3,2)","(5,3)","(4,1)","(3,3)","(4,5)","(2,4)","(1,2)"} |
+-[ RECORD 12 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(2,3)","(3,1)","(5,2)","(4,4)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(3,4)","(5,5)","(4,3)","(5,1)","(3,2)","(5,3)","(4,5)","(2,4)","(1,2)","(3,3)","(4,1)"} |
+-[ RECORD 13 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(2,3)","(3,1)","(5,2)","(4,4)","(2,5)","(3,3)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)","(2,2)","(3,4)","(5,5)","(4,3)","(5,1)","(3,2)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)"} |
+-[ RECORD 14 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(2,3)","(3,5)","(1,4)","(2,2)","(3,4)","(5,5)","(4,3)","(5,1)","(3,2)","(4,4)","(5,2)","(3,1)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)","(3,3)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)"} |
+-[ RECORD 15 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(2,3)","(3,5)","(1,4)","(2,2)","(3,4)","(5,5)","(4,3)","(5,1)","(3,2)","(4,4)","(5,2)","(3,1)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)","(3,3)","(5,4)","(4,2)","(2,1)","(1,3)","(2,5)"} |
+-[ RECORD 16 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(2,3)","(4,4)","(5,2)","(3,1)","(1,2)","(2,4)","(4,5)","(3,3)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(3,4)","(5,5)","(4,3)","(5,1)","(3,2)","(5,3)","(4,1)"} |
+-[ RECORD 17 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(2,3)","(4,4)","(5,2)","(3,1)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)","(2,2)","(3,4)","(5,5)","(4,3)","(5,1)","(3,2)","(1,3)","(2,5)","(3,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)"} |
+-[ RECORD 18 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(2,3)","(4,4)","(5,2)","(3,1)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)","(3,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(3,4)","(5,5)","(4,3)","(5,1)","(3,2)","(1,3)","(2,5)"} |
+-[ RECORD 19 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(2,3)","(4,4)","(5,2)","(3,1)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)","(3,3)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(3,4)","(5,5)","(4,3)","(5,1)","(3,2)"} |
+-[ RECORD 20 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(2,3)","(4,4)","(5,2)","(3,1)","(1,2)","(3,3)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(3,4)","(5,5)","(4,3)","(5,1)","(3,2)","(2,4)","(4,5)","(5,3)","(4,1)"} |
+-[ RECORD 21 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(1,3)","(2,1)","(4,2)","(5,4)","(3,3)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)","(2,2)","(1,4)","(3,5)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(3,1)","(5,2)","(4,4)","(2,5)"} |
+-[ RECORD 22 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(3,1)","(5,2)","(4,4)","(2,5)","(3,3)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)"} |
+-[ RECORD 23 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(3,1)","(5,2)","(4,4)","(2,5)","(3,3)","(4,1)","(5,3)","(4,5)","(2,4)","(1,2)"} |
+-[ RECORD 24 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(4,4)","(5,2)","(3,1)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)","(3,3)","(2,5)"} |
+-[ RECORD 25 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(3,1)","(5,2)","(4,4)","(2,5)","(3,3)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)","(2,2)","(1,4)"} |
+-[ RECORD 26 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(1,3)","(2,5)","(3,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(4,4)","(5,2)","(3,1)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)"} |
+-[ RECORD 27 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(1,3)","(2,5)","(3,3)","(2,1)","(4,2)","(5,4)","(3,5)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(4,4)","(5,2)","(3,1)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)","(2,2)","(1,4)"} |
+-[ RECORD 28 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(2,4)","(1,2)","(3,3)","(4,5)","(5,3)","(4,1)","(2,2)","(1,4)","(3,5)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(3,1)","(5,2)","(4,4)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)"} |
+-[ RECORD 29 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(2,4)","(1,2)","(3,3)","(4,5)","(5,3)","(4,1)","(2,2)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(3,1)","(5,2)","(4,4)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)"} |
+-[ RECORD 30 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(2,4)","(4,5)","(5,3)","(4,1)","(2,2)","(1,4)","(3,5)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(3,1)","(5,2)","(4,4)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,3)","(1,2)"} |
+-[ RECORD 31 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(2,4)","(4,5)","(5,3)","(4,1)","(2,2)","(1,4)","(3,5)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(4,4)","(5,2)","(3,1)","(1,2)","(3,3)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)"} |
+-[ RECORD 32 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(2,4)","(4,5)","(5,3)","(4,1)","(2,2)","(1,4)","(3,5)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(4,4)","(5,2)","(3,1)","(1,2)","(3,3)","(5,4)","(4,2)","(2,1)","(1,3)","(2,5)"} |
+-[ RECORD 33 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(2,4)","(4,5)","(5,3)","(4,1)","(2,2)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(4,4)","(5,2)","(3,1)","(1,2)","(3,3)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)"} |
+-[ RECORD 34 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(2,4)","(4,5)","(5,3)","(4,1)","(3,3)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(4,4)","(5,2)","(3,1)","(1,2)"} |
+-[ RECORD 35 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(4,4)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,3)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)","(2,2)","(1,4)","(3,5)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(3,1)","(5,2)"} |
+-[ RECORD 36 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(4,4)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(3,1)","(5,2)","(3,3)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)"} |
+-[ RECORD 37 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(4,4)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(3,1)","(5,2)","(3,3)","(4,1)","(5,3)","(4,5)","(2,4)","(1,2)"} |
+-[ RECORD 38 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(4,4)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(3,1)","(5,2)","(3,3)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)","(2,2)","(1,4)"} |
+-[ RECORD 39 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(4,4)","(5,2)","(3,1)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)","(3,3)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)"} |
+-[ RECORD 40 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(4,4)","(5,2)","(3,3)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(3,1)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)"} |
+-[ RECORD 41 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(4,4)","(5,2)","(3,3)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(3,1)","(1,2)","(2,4)","(4,5)","(5,3)","(4,1)","(2,2)","(1,4)"} |
+-[ RECORD 42 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(5,3)","(4,1)","(2,2)","(1,4)","(3,5)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(3,1)","(5,2)","(4,4)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,3)","(1,2)","(2,4)","(4,5)"} |
+-[ RECORD 43 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(5,3)","(4,1)","(2,2)","(1,4)","(3,5)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(3,1)","(5,2)","(4,4)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,3)","(4,5)","(2,4)","(1,2)"} |
+-[ RECORD 44 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(5,3)","(4,1)","(2,2)","(1,4)","(3,5)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(4,4)","(5,2)","(3,1)","(1,2)","(2,4)","(4,5)","(3,3)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)"} |
+-[ RECORD 45 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(5,3)","(4,1)","(2,2)","(1,4)","(3,5)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(4,4)","(5,2)","(3,1)","(1,2)","(2,4)","(4,5)","(3,3)","(5,4)","(4,2)","(2,1)","(1,3)","(2,5)"} |
+-[ RECORD 46 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(5,3)","(4,1)","(2,2)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(4,4)","(5,2)","(3,1)","(1,2)","(2,4)","(4,5)","(3,3)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)"} |
+-[ RECORD 47 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(5,3)","(4,1)","(3,3)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)","(2,2)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(4,4)","(5,2)","(3,1)","(1,2)","(2,4)","(4,5)"} |
+-[ RECORD 48 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(5,3)","(4,5)","(2,4)","(1,2)","(3,3)","(4,1)","(2,2)","(1,4)","(3,5)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(3,1)","(5,2)","(4,4)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)"} |
+-[ RECORD 49 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| lv | 24 |
| path | {"(1,1)","(3,2)","(5,3)","(4,5)","(2,4)","(1,2)","(3,3)","(4,1)","(2,2)","(4,3)","(5,5)","(3,4)","(1,5)","(2,3)","(3,1)","(5,2)","(4,4)","(2,5)","(1,3)","(2,1)","(4,2)","(5,4)","(3,5)","(1,4)"} |
+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Time: 12817.753 ms (00:12.818)